#uwadv@irc.freenode.net logs for 20 Aug 2002 (GMT)

Archive Today Yesterday Tomorrow
Underworld Adventures homepage


[00:05:14] <vividos> ah, found a bug :)
[00:06:32] <Dominus> shoot
[00:07:55] <vividos> destroyed!
[00:10:35] <Dominus> what was it?
[00:11:24] <vividos> the initial map level that was set in lua was overwritten/not correctly set, but it had no visible impact
[00:13:01] <vividos> ok, I'm off for now
[00:13:18] <vividos> night!
[00:14:06] <Dominus> me too
[00:14:06] <Dominus> bye
[00:14:07] <-- Dominus has left IRC ("Exult! Exult! Exult!")
[00:14:15] <-- vividos has left IRC ("Leaving")
[10:59:04] --> wjp has joined #uwadv
[10:59:05] --- ChanServ gives channel operator status to wjp
[12:25:07] --> yot has joined #uwadv
[13:41:57] --> vividos has joined #uwadv
[13:41:57] --- ChanServ gives channel operator status to vividos
[13:42:05] <vividos> hi all
[13:45:40] <yot> lo
[13:46:00] --> Telemachos has joined #uwadv
[13:46:00] --- ChanServ gives channel operator status to Telemachos
[13:46:20] <Telemachos> ohoy
[13:48:28] <vividos> hi Telemachos
[13:49:14] <Telemachos> I've read your mail about the CD problem again.. and I begin to believe it could be a good idea to take CD back to 3d again... but I don't know if thats possible with your engine structure
[13:50:25] <vividos> hmm ...
[13:50:43] <vividos> that probably would be a solution, I think
[13:51:20] <Telemachos> the problem is that from CDs point of view the engine isnt really 2d... you'll never get sliding downwards with your model
[13:51:23] <vividos> it should be possible to generate polygons (quads, actually) from the raw tile info
[13:51:51] <Telemachos> I figured the 3d data is generated and stored somewhere for rendering
[13:52:16] <vividos> in uwadv?
[13:52:22] <Telemachos> yes
[13:52:35] <vividos> no, the polygons are just generated when a single tile is rendered
[13:52:43] <Telemachos> ok.
[13:53:32] <vividos> I could write a function that returns all polygons for a given tile
[13:54:03] <Telemachos> but why not generate a 3d mesh at loadtime ?
[13:54:16] <Telemachos> and use that for cd AND rendering
[13:54:43] <yot> just take your levels and polygons and convert to quake1 models and bsps :P
[13:54:51] <vividos> the map could change during gameplay
[13:55:26] <Telemachos> hmm.. true - it will actually.. at least in UW2 there are some triggers that moves tiles
[13:55:47] <vividos> in uw1, too. remember the bullfrog puzzle
[13:55:59] <Telemachos> yeah thats right
[13:56:24] <vividos> yot: not a good idea :) had to rewrite the renderer
[13:56:44] <vividos> s/had/would have
[13:56:49] <yot> vividos: take the one quake uses you know it's gpl :]
[13:56:59] <Telemachos> however - if you think ahead you'll get trouble later ;) what if the player stands on a tile in the bullfrog puzzle and it moves upwards
[13:57:22] <vividos> that would be a problem, yes
[13:58:06] <vividos> so we should take the cd back to 3d then
[13:58:27] <Telemachos> here's a design idea: the maps are 64x64 if I remember correctly.. thats 4k tiles.. each tile can max. have 12 polygons..
[13:58:42] <Telemachos> treat each tile as an object - or entity if you like..
[13:58:52] <Telemachos> at any time the player is linked to exactly one tile..
[13:59:07] <Telemachos> the quadtree stores tiles, the frustum culls tiles..
[14:01:30] <vividos> it already is some sort of object. a tile :)
[14:01:41] <Telemachos> ok good ;)
[14:02:05] <vividos> but is isn't stored in a quadtree, the quadtree is only "laid over" to find out visible tiles
[14:02:36] <Telemachos> yeah I saw you use a 2d frustum cull... kinda like a piece of squared paper with a triangle on ;)
[14:02:43] <vividos> yes :)
[14:02:53] <vividos> that one was much easier to implement
[14:03:50] <Telemachos> heh, only until you've tried making the 3d version ;)
[14:04:03] <vividos> back to cd ... how about rewriting cd with the original algorithm in 3d from your tut, and having a function that returns the polygons for a given tile. IMHO only the tiles near the avatar have to be checked
[14:04:18] <vividos> :)
[14:04:53] <Telemachos> you are right - only check those tiles near the player..
[14:05:26] <Telemachos> well ;) I wasnt trying to force anything down your neck... just throwing ideas around ;)
[14:05:31] <vividos> or the object to check - NPC's do have to follow physics, too :)
[14:05:44] <Telemachos> you see - I've delt with many of the same problems in U1 ;)
[14:05:46] <vividos> no, that sounds pretty good without changing too much
[14:06:06] <vividos> I guessed that - the engine is very nice
[14:06:46] <vividos> do you want to do the 3d rewrite or should I try?
[14:06:52] <Telemachos> so - you can write a function that returns all polygons for a given tile ?
[14:07:00] <vividos> yes
[14:07:28] <Telemachos> if you make such a function available from the physics module and otherwise leave the CD as it is - then I'll have a look..
[14:08:30] <vividos> I put it in the ua_level class; it is accessible from the ua_physics_model via underw->get_current_level()
[14:09:35] <vividos> I make up a ua_triangle class to store the triangle data
[14:10:05] <Telemachos> ok
[14:10:32] <vividos> oh, and a ua_vector3d class, too :)
[14:13:25] <Telemachos> oh - one more thing.. whats the scale in the engine ?
[14:13:46] <vividos> do you mean the size of a "tile"?
[14:14:28] <Telemachos> I mean - how many openGl "units" per meter in the world ?
[14:14:36] <vividos> ah ok
[14:15:11] <vividos> 1.0 meter is 1.0 opengl units is the length of a tile, but I thought about making that configurable
[14:16:44] <Telemachos> thats fine ;) As long as its something thats easy to calculate with
[14:17:16] <vividos> the ua_vector3d will go into uamath.hpp; if you need to add functions, just do so
[14:18:30] <Telemachos> ok
[14:20:22] <vividos> the function in ua_level returns a std::vector<ua_triangle3d>, I hope that's ok for you
[14:22:26] <Telemachos> sure, thats fine
[14:22:48] <Telemachos> all I need is the 3 3d points of each triangle
[14:23:25] <vividos> should the normal vector face inside the scene or outside?
[14:23:34] <vividos> of the triangle
[14:24:43] <Telemachos> that depends on if its a frontside triangle or backside..
[14:24:51] <wjp> hi vividos, Telemachos
[14:24:56] <vividos> hi wjp :)
[14:25:04] <Telemachos> the normal vector of the triangle should point to the front side
[14:25:05] <Telemachos> hi
[14:25:26] <vividos> ok, we just have fronside triangles, since the backside ones would be culled anyway
[14:27:26] * vividos just thinks about a way to simplify the renderer :)
[14:29:31] <Telemachos> always useful to simplify the renderer ;)
[14:30:21] <vividos> if I also collect texture coordinates, I just had to call the triangle function and render all resulting triangles
[14:31:14] <vividos> a question: if I use GL_QUADS and texture it, does it look better (without seams) than using GL_TRIANGLES?
[14:31:37] <vividos> basically, quads are subdivided into triangles, but may it have a visual impact?
[14:31:52] <Telemachos> it shouldnt
[14:32:09] <yot> vividos: GL_QUADS is faster afaik but cannot remember
[14:33:23] <Telemachos> in which file are the triangles being rendered ?
[14:33:35] <vividos> in level.cpp
[14:36:42] <Telemachos> ok
[14:37:47] <vividos> just added the get_tile_triangles() function to ua_level (it doesn't do anything yet)
[14:39:09] <Telemachos> ok.. question: why isnt the backwards movement key enabled ?
[14:39:53] <vividos> it isn't done yet :)
[14:40:17] <vividos> that would be the next thing to do
[14:40:55] <vividos> do you need it? I could add it
[14:41:19] <Telemachos> I'll add it myself ;)
[14:41:55] <vividos> I'm already about it
[14:44:51] <vividos> btw, if you want to change the "screen" that is shown at startup, change uwadv_menu.cpp (the last function)
[14:45:54] <vividos> another thing: F11 = quicksave, F12 = quickload, but only when compiled with HAVE_DEBUG
[14:47:39] <vividos> backwards key is in, just update ingame_orig.cpp
[14:52:07] <wjp> time for me to go; bye
[14:52:12] <-- wjp has left IRC ("gtg")
[14:52:26] <Telemachos> nice ;)
[14:52:47] <vividos> does it actually work? :)
[14:53:03] <Telemachos> seems like it ;)
[14:55:09] <vividos> ok then
[15:27:38] --> wjp has joined #uwadv
[15:27:38] --- ChanServ gives channel operator status to wjp
[15:31:04] <vividos> re
[15:31:29] <wjp> did you continue the makefile cleanup from last night, btw?
[15:32:39] <vividos> no, I didn't do much after that
[15:45:18] <-- Telemachos has left IRC (Read error: 110 (Connection timed out))
[16:18:51] <vividos> using the new renderer cuts the framerate in half :-(
[16:30:18] * vividos is away for dinner
[17:08:35] <-- yot has left IRC (Read error: 110 (Connection timed out))
[17:26:35] <-- vividos has left IRC (Read error: 110 (Connection timed out))
[17:31:16] --> vividos has joined #uwadv
[17:31:16] --- ChanServ gives channel operator status to vividos
[17:33:16] <vividos> re
[18:00:20] --- vividos is now known as vividos|away
[18:55:35] --> phlask has joined #uwadv
[18:55:35] --- ChanServ gives channel operator status to phlask
[18:56:02] <wjp> hi
[18:56:28] <phlask> hi there... what's new?
[18:56:47] <wjp> hm, not much, I guess :-)
[18:56:55] <phlask> that isn't good :)
[18:57:38] * wjp is kind of busy with various types of work today
[18:57:46] <wjp> so I didn't really get around to finishing up the Makefile-cleanup yet
[18:57:59] <wjp> (removing redundancy between Makefile.mingw/Makefile.am, specifically)
[18:58:06] <phlask> oh well... I guess it can wait a bit huh...
[18:59:10] <phlask> I'm almost done with the create character bit (it was about time too)... I just have to finish a few last things in the script and it is ready to go
[19:21:13] --- vividos|away is now known as vividos
[19:21:39] <vividos> hi phlask!
[19:45:36] <wjp> vividos: I just found the filter/filter-out functions in make
[19:45:48] <wjp> they allow you to easily filter out all the .hpp/.h files
[19:46:03] <vividos> nice :)
[19:46:14] <wjp> uwadv_CPPs = $(filter %.cpp %.c,$(uwadv_SOURCES))
[19:46:17] <-- phlask has left IRC (Read error: 113 (No route to host))
[19:46:33] <vividos> do you add the line? or should I test it?
[19:46:51] <wjp> better test it first, yes
[19:46:54] <vividos> ok
[19:47:13] <wjp> I'm doing the tools/ subdir now, btw
[19:47:21] <vividos> another thing that came to my mind ... how about uninstalling? rpm's do handle that automatically, right?
[19:47:34] * wjp nods
[19:47:37] <wjp> rpm -e uwadv
[19:47:58] <vividos> but what is with autoconf/automake installed stuff?
[19:48:02] <wjp> and automake has an 'uninstall' target too, so 'make uninstall' will uninstall if you built from source
[19:48:25] <vividos> really?
[19:48:30] <wjp> yeah :-)
[19:48:53] <vividos> nice
[19:49:23] <vividos> although it's a bit cumbersome to keep the old sources for every package once installed
[19:49:46] <wjp> yeah
[19:50:47] <vividos> have to reboot :/
[19:50:48] <-- vividos has left IRC ("Leaving")
[19:53:28] --> vividos has joined #uwadv
[19:53:28] --- ChanServ gives channel operator status to vividos
[19:53:36] <wjp> wb
[19:53:53] <wjp> k, I now have the following for cnvdasm:
[19:54:03] <wjp> cnvdasm_CPPs = $(filter %.cpp,$(cnvdasm_SOURCES))
[19:54:04] <wjp> cnvdasm_OBJS = $(cnvdasm_CPPs:.cpp=.o)
[19:54:45] <wjp> oh, wait, missed the source/tools/ part
[19:56:04] <wjp> we could even merge the two lines, but I don't think that'll improve readability much :-)
[19:56:23] <vividos> :)
[20:03:27] <wjp> did 'filter' work ok?
[20:07:45] <wjp> if so, I have a new Makefile.mingw/Makefile.common/Makefile.am combo that might just work :-)
[20:07:51] <wjp> (including source/tools)
[20:08:12] <vividos> it did
[20:08:49] <wjp> ok, committed
[20:08:58] <wjp> I hope it'll work :-)
[20:09:22] <vividos> did you already commit Makefile.mingw?
[20:09:35] <wjp> yeah
[20:09:40] <vividos> oh ok
[20:10:33] <vividos> did you add uwadv_CPPs = $(filter %.cpp %.c,$(uwadv_SOURCES)) or uwadv_CPPs = $(filter %.cpp,$(uwadv_SOURCES)) ?
[20:10:41] <vividos> (without a %.c
[20:11:32] <wjp> without the %.c
[20:11:49] <vividos> why that?
[20:11:52] <wjp> with the .c I'd also have to add a .c->.o line later on
[20:12:16] <wjp> and since there aren't any .c's there, I thought it wasn't really worth the trouble :-)
[20:12:16] <vividos> does that mean .c sources are not compiled now?
[20:12:24] <vividos> ah ok :)
[20:12:28] <wjp> there's .c sources in tools/ ?
[20:12:42] <wjp> hm, didn't check the main list, come to think of it
[20:12:46] <vividos> no, but I thought we talk about uwadv_CPPs :)
[20:13:10] <wjp> hm, there's no .c files in uwadv_SOURCES either, AFAICT
[20:13:20] <vividos> ah ok
[20:13:38] <vividos> all .c's are in the zziplib or lua files
[20:13:52] * wjp nods
[20:14:45] <vividos> ok then forget about all that :)
[20:16:36] <wjp> and IIRC lua and zziplib don't contain any .cpp files, so we only need to do a .c->.o there
[20:16:51] <vividos> yes
[20:17:06] <vividos> ok have to go then. 'till later!
[20:17:11] <wjp> bye
[20:18:18] * vividos just notices some compile problems for the tools, but unrelated to the current changes. he fixes that later
[20:18:40] <-- vividos has left IRC ("Leaving")
[20:22:42] <wjp> hm, oops, something tells me actualling including Makefile.common might be a good idea
[20:22:49] <wjp> s/ling/ly/
[20:22:56] * wjp is talking to himself again it seems :-)
[21:17:14] --> phlask has joined #uwadv
[21:17:14] --- ChanServ gives channel operator status to phlask
[21:17:44] <-- phlask has left IRC (Client Quit)
[21:30:05] --> yot has joined #uwadv
[22:10:23] --> vividos has joined #uwadv
[22:10:23] --- ChanServ gives channel operator status to vividos
[22:10:28] <vividos> re :)
[22:10:53] <wjp> wb :-)
[22:13:27] <vividos> wow: http://www.happypenguin.org/show?Underworld%20Adventures
[22:14:39] <vividos> uwadv also has a news item on the main page. nice :)
[22:15:58] <wjp> hm, indeed :-)
[22:16:04] <vividos> btw, tools compiling works with mingw32 now
[22:16:06] <wjp> heh, version 0.4b :-)
[22:17:46] <vividos> uwadv is also linked from a german editorial about "retro engineering": http://www.gamezone.de/specials_detail.asp?id=68&page=5
[22:18:21] <wjp> nice, lots of press coverage :-)
[22:18:32] <wjp> ooook... time to brush up on my german :-)
[22:19:23] <vividos> :) do you understand it a little?
[22:22:20] <wjp> yeah, enough
[22:28:33] <vividos> http://www.linuxgaming.co.uk/modules.php?name=News&file=article&sid=200
[22:28:48] <wjp> kind of strange that gamezone.de article
[22:29:06] <wjp> it's about abandonware, while things like uwadv are _not_ about abandonware at all
[22:32:13] <vividos> the author thought it would be good to link in some projects
[22:33:36] <vividos> http://www.classicgaming.com/newsarchive.asp?month=7&day=31&year=2002
[22:33:53] <-- yot has left IRC (lerouge.openprojects.net irc.openprojects.net)
[22:33:53] <-- wjp has left IRC (lerouge.openprojects.net irc.openprojects.net)
[22:33:58] <vividos> third one
[22:34:12] <vividos> huh?
[22:34:58] --> wjp has joined #uwadv
[22:34:58] --> yot has joined #uwadv
[22:35:14] <-- yot has left IRC ()
[22:35:30] * vividos also uses capek, strange
[22:35:57] <vividos> the classicgaming news item lists our project as "Ultima Adventures" :)
[22:37:21] <wjp> the split messages always say (your_server irc.openprojects.net), btw
[22:37:56] <wjp> time for me to go
[22:37:56] <vividos> do you directly connect to capek?
[22:37:58] <wjp> g'night
[22:38:01] <vividos> ok bye!
[22:38:04] <wjp> no, I'm on vinge
[22:38:11] <vividos> ah ok
[22:38:13] <wjp> (eu.openprojects.net)
[22:38:19] <wjp> (is what I connect to)
[22:38:36] <-- wjp has left IRC ("Zzzz...")
[22:45:02] <-- vividos has left IRC ("Leaving")
[23:14:58] --> phlask has joined #uwadv
[23:14:58] --- ChanServ gives channel operator status to phlask
[23:15:00] <-- phlask has left #uwadv ()
[23:49:05] --> blizzard has joined #uwadv
[23:51:29] <blizzard> Sup