Notes

Home
Screenshots
Download
Links
Contact Information
Notes
Forums
SF.net page

 

To-do list

Here is a list with the next items I plan to work on:

bullet.CON files parser
bulletsound subsystem
bulletsupport for music/midi (low priority)
bulletrendering subsystem
bulletfix the recursive mirrors
bulletoptimize masking walls by grouping them by tile
bulletredo the 3dmap movement to use the new collision function
bullet3d point to (sector, pos) function ? (mainly for tools)

Old to-do items (mostly done :-)

bullettrue player collision detection
bulletmirrors (recursive mirrors?) -- DONE (recursive mirror will not work though)
bulleta fast and simple collision function: intersection between a ray or a segment and anything in the world; finding the first 'collision' -- DONE
bulletdeal with moving sectors (right now I pre-compute a static BSP tree, making this difficult) -- No more BSP
bulletsectors potential visibility determination improvements (mainly speed) -- DONE
bulletcorrect 3d portals visibility (use the camera frustum) -- DONE
bulletmasking walls -- DONE

Personal log

bullet

May 24th, 2004: New release with improvements in the player collision code, bug fixes and more:
bullet

 a new MovementController, FlyController, a 'no-clip' mode (F4 switches MovementControllers)

bullet

a 'no-clip' mode (F3)

bullet

restart position key (R)

bullet

collision with the sprites

bullet

bug fixes

bullet

May 15th, 2004: Although it was a long break with no updates (mostly due very limited free time), I haven't completely ignored the  project. I've started a new subproject that is getting closer to a real game application. The main subproject was 3dMap.exe, which is just a 3d viewer for duke3d maps, and it served well for perfecting the 3d rendering. I feel that the rendering is capable enough at this point so I created this new 'game.exe' which models the real time as well, allowing for the next steps in the engine (animations, AI, physics, networking, ...). It is still a prototype (ie. don't expect me to polish it a little and release it as the next duke3d clone) but it adds some cool stuff: animated textures and player collision, in addition to a number of bug fixes. The player collision is by far the most important addition and it took me a considerable amount of effort to get it to the point where I decided to pack a new release. One of the reasons this release took so long (beside lacking free time) was that I experimented with a few different approaches to collision detection.

But enough with talking, go grab it and send me your feedback!

bullet

Dec 27th: a simple sound subsystem is functional. Much simpler than I was planning (the 3d positional part is laughable for example), but this way I made some progress. The initial plan was too ambitious, and it wasn't looking like I was making any progress, so I had to cut it down. I wrote some simple code to load .voc and .wave files, although I may use an open source library later. Now I'll take a quick take at parsing the .con files, as they tie much of the game together, including the definitions for actors/objects.

bullet

Oct 14th: The project is going to be moved (slowly) to SourceForge! This means CVS, forums, discussion lists, and more! Check out LDuke3D project's page.

bullet

Oct 5th: After some hard work the duke3d sprites are finally here! They look good (considering that they are 2d sprites :-) and I wanted to wait until all the obvious problems were fixed before releasing anything. Right now they look very close to the original engine rendering (with some minor 'improvements' :-) Bunch of new screen-shoots.

bullet

Sep 13: The website is back online after the old server machine broke down. Now I have a new and improved server :-) but it took almost 2 weeks to put everything back together.

bullet

August 16: I finally put together an implementation for mirrors. It took more effort than I originally anticipated, mostly because the limitations in the lfc3d and in the current engine design. But it's all good, as this version is just a prototype, at some point (soon I hope :-) I will throw most of the code and switch to a better foundation.

bullet

July 21: transparent walls are now sorted correctly (back to front) so that the resulting image looks fine

bullet

July 19: masking/one-way walls are now implemented. still have to work on the transparent masking walls (have to sort them correctly before I draw them). Also I fixed a small problem with textures with 'holes' (the annoying pink border around the 'alpha' border)

bullet

July 18: It took a long time from the last update, I've been quite busy for the last month, but I finally finished some the the basic things I had on the to-do list:
- correct 3d portal visibility determination
- fixed the 'parallax' rendering
- speed optimizations (now it should run at decent fps even on the most complex maps)

bullet

May 17: revised parts of the map geometry pre-calculation, collision detection and parallax rendering. Right now the engine supports only one parallax per scene, but this should not be a serious limitation. The new code deals correctly with the portal visibility and collision when we have parallax 'walls'. (note: even the original duke3d engine seems to have some problems in this area, although it computes the visibility correctly, the collision computation is off sometimes)

Overall, I'm trying to stabilize the rendering part and move to the next steps (collision/physics, AI, ...), but there is still work to be done on the rendering...

bullet

May 12: More performance improvements with (software) portals visibility. Also added portal 'rendering' to the wireframe rendering (screenshoots)

Played with the HW portal visibility using GL_NV_occlusion_query (btw, thanks to all who reply to my post on opengl.org) The results seem to indicate that the software visibility computation will result in better performance on maps with many sectors visible at the same time, at least on my video card (GeForce4 Ti 4200). But my implementation is somehow primitive (it doesn't try to take advantage of the gpu/cpu parallelism) so I think better performance using this approach may be possible.

bullet

May 10: I implemented an idea I had for a while: group the primitives by texture, so I can reduce the number of texture binding operations (which are expensive even with a good video card). For now I'm grouping only walls/floor/ceiling within a sector, and the results looks promising. Theoretically I should get even better performance by grouping across the map, but I have to look into it to see if it's worth it (it's slightly  more difficult than to do it within each sector because sectors have different 'palettes', shading/fog, ...)

bullet

May 5: experimenting with the portal visibility code. right now it can handle 'open area' with many visible sectors at the same time much better, but I still have a list with ideas for improvements

Home | Screenshots | Download | Links | Contact Information | Notes | Forums | SF.net page

 Copyright (C) Leonard Mosescu.
For problems or questions regarding this web contact lemo1234@hotmail.com.
Last updated: 12/27/03

lemo duke3d duke nukem opengl direct3d directx