Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Luis Sempé, posted on April 09, 2002

Image Description, by Luis Sempé

This is the first demo of the game engine I've been working on for the past four months, part time, mostly. At the moment, I am the only person working on it, doing both the artwork and the coding. The engine is intended to be used to develop an action/adventure game that I'm currently designing.This demo can be thought of as an early prototype of the game, based on the current design treatment.

The engine was programmed in C++ using MSVC 6. It uses Direct3D 8 at the moment, although, Im working as API-independent as possible so that in the near future I can throw in OpenGL support easily. Visibility culling is done using octrees, as well as some line of sight tests and collision detection. Scenes are exported from 3D Studio Max to the ZCB file format, which is then imported by the engine. The engine also supports lightmapping, but a bug somewhere in the code is making the lightmap calculation time quite large, so I decided not to use it in the demo until all bugs in it are worked out, even if it did improve the visual quality by a lot :(

Some of the features included in the demo are:
  • Sky Dome
  • MD3 character support
  • 3D Positional Sound (using DirectSound)
  • First / Third person camera
  • Animated Textures (caustics, as seen on the fountain's water)
  • Data driven particle system
  • I'm currently in the process of designing a better architecture for the engine that makes use of a scene hierarchy, most likely, a scene graph, but Im experimenting with different options to find the one that suits the game's needs best. The complete engine will feature lightmaps (without the time consuming bugs!), animated characters that use bones and skin, dynamic lighting effects, dynamic shadows, and I'm sure more features will find their way into the engine along the way.

    Although, I am enjoying coding the graphics engine, I am looking forward to working on the game specific areas, but I am aiming to have a basic feature set before I work on the actual game. That is why the game is being designed concurrently with the engine's development, by the time the engine is ready I should also have a solid design to work with.

    There are some known bugs, but I won't spoil it for you, if you want to find them, you'll have to download the demo at:

    I must apologize for the rather large download size (20megs), It is mostly due to the use of a rather large sound file. I am working on resolving this issue soon.

    Finally, I just wanted to gratefully acknowledge the help of the folks at GameInstitute who have been an invaluable source of knowledge, help, ideas and at times even motivation. Thanks guys!

    Image of the Day Gallery


    Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
    Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
    Jarno Rajala

    April 09, 2002, 01:12 PM

    And I am the lucky winner of this weeks, First Post-The-First-Comment contest.

    Just had to write that... Sorry.

    The picture look good though.


    April 09, 2002, 01:20 PM

    Looks good now - would look great with those lightmaps and some more geometric detail though.


    April 09, 2002, 01:30 PM

    No it does not look good. I cannot see the particle system, the animated textures and the skydome is one color only (almost). The rest of it does not look like D3D 8 at all (considering all the D3D 8 tech demos :)).
    Even the screenshots on your site are better than those two here. Sorry, please take this as encouragement. Your engine might be worth working on and maybe this means fun to you but judging by those screenshots you have some way to go :)



    April 09, 2002, 01:32 PM

    for lightmaps: implement a ray tracer that can intersect your scene (hopefully using your octree to get some decent speed), get the colour for a number of rays on the visible hemisphere of every texel. this will give you some kinda-global-illumination (one bounce, and not-so-correct-but-looks-okay). of course you'll want to calculate the direct lighting directly too, and of course you need distance and cosine attenuation etc, but those are all details...

    anyway, nice work :)


    April 09, 2002, 01:33 PM

    Why did you chose a sky dome over a sky box?

    The picture looks good tho. All it could use now is a little bit more art and some shadows.

    Chris McArthur

    April 09, 2002, 01:34 PM

    Ignore posts like hdmx did. I think for a project that you are doing by yourself and in your spare time this is an excellent result. Keep up the great work and keep all of us updated on your progress.


    April 09, 2002, 01:35 PM

    Wow, I have to say I am indeed impressed. I looked at the screenshots before reading your comments, and I immediatly assumed that this was either a large group project to be sold, or it was a few models stuck into an already built engine. I sincerely applaud your work, and it gives me increadible motivation to get working harder on my own game.

    And four months?! That's crazy fast for what I see from one person. I dont know who you have been making deals with, but it must be costing you more than your soul.

    I have to say that this is among the best IOTDs that exist on this site. Not only because it looks good, but because this is the result of one programmer. Now how can I call this coder's art, it looks good. Whatever you do, do not under any circumstances breed. You would quickly push all of us out of the gene pool.

    Now I am off to work on my meager stuff more. BTW, do you use a consol system for testing, and how did you go about making it? If not, what did you use instead? This is something I am stuck on in my project, and I cannot seem to find any good information on the web.


    April 09, 2002, 01:40 PM

    Excellent work on the demo, though the character seems to run a bit to fast for me to control.

    As for the direct3D sound buffer mode, I have a quick question for you. Do you use DS3DMODE_HEADRELATIVE or DS3DMODE_NORMAL? I was playing with D3D sound stuff a while ago and noticed that the head relative mode gave more of a 3d feel except at the sacrifice of reverse stereo at certain rotations, and normal had a lesser 3d experience. Since the sound in yours works right, I just wanted to know what you used.


    April 09, 2002, 01:47 PM

    i downloaded and installed the demo, but when i try to run it, theres no options in the display adapter, display mode or acceleration dropdowns. if i try clicking play, it just crashes?

    AMD athlon 900Mhz
    GeForce 2 MX
    128mb RAM


    April 09, 2002, 02:01 PM

    Looks good. I like 1 man projects because it shows a little dedication to the project and it also let's you do what you want.

    Anyways, I tried the demo. I would have to agree with above that the character runs very fast.

    I also noticed that if I pull the mouse up and behind the character and than run backwards, I start taking off. I managed to get outside of the level and than started falling (gravity) but went past the level. I had to aim the camera up and through my character and run forward to get back over the wall. Just a small bug.

    But I think light maps would help increase visual quality so much. That's kinda neat that you would post without such a big feature enabled. Show's you are looking for some criticism (sp) which is always a good thing.

    Keep up the good work


    April 09, 2002, 02:05 PM

    Good results after 4 months part-time.
    You should stick with a spacial hiearchy, though - scenegraphs aren't that useful in this type of engine. Bsp's, dare I say it, will probably suit your needs more, if it's mostly indoors.
    As for using a console for debugging, use the win32 console - AllocConsole(), because it's a rock solid, ready made console, and very easy to use.

    Congratulations on your art assets - they're ok for a programmer.


    April 09, 2002, 02:07 PM

    actually, hdmx, there is even a particlesystem on the pic around somewhere if you open your closed eyes..

    i think this is some of the best stuff seen since long time here around. and why? because its PROGRAMMERS ART! some of the best programmers art ever seen..

    i can only dream how it looks like with lightmaps, but at the time you got them working i think it'll look great. will try the demo sometimes..

    great job. and only 4 months? wow.. impressed..


    April 09, 2002, 02:15 PM

    Why should he? I expressed criticism which was neither directed towards him personaly nor the engine but towards the boring and unintersting screenshots. If he ignored criticism how should he develop?
    Maybe I can't express this the way I would using my mother tongue but this should not keep me from trying.



    April 09, 2002, 02:20 PM

    I know... well at least I expected it to be the particle system. One one of the screenshots on his site is an unfortunately very small picture with a larger version of this fountain.



    April 09, 2002, 02:36 PM

    I don't know why hdmx doesn't like it. It looks excellent, and for just four months of work you have come a long way. Oh, and the art you did looks really nice.

    Excellent Job!

    Sniper BoB

    April 09, 2002, 02:39 PM

    Nice job! looks cool, pretty damn good programmer art for that ninja guy. Keep up the good work.


    Division By Zero

    April 09, 2002, 02:45 PM

    Let's say

    ********************* It's WORTH a COMMENT *********************

    but Im not sure ;p

    Shawn Kirst

    April 09, 2002, 02:53 PM

    Let's say

    ************ YOU ARE A DUMBASS *****************

    of this, i am sure ;p

    Shawn Kirst

    April 09, 2002, 02:54 PM

    Sorry :) Couldn't resist. Just having a little fun. But why do you do that every single IOTD? It's quite tiresome.


    April 09, 2002, 03:21 PM

    I don't know if anybody has introduced you into the concept of "constructive" criticism. I must admit that about a third of your post was vagly constructive, whilst the rest was just pure offensive.
    What's so important about constructive cricism is that you first try to see what's good, and then suggest several things that could be better, along with a suggestion what direction you have in mind. Thus the criticised indidual dosn't get confused about your text, and he doesn't feel as if you just want to offend him.
    You may ask what's wrong about offending somebody, and partly you could be right. There is a right to fight and offend, if it's apropriate. Critics wich are meaned as a way to improove onself are never the place to offend anybody.
    This has to do with postive and negative feedback. Positive feedback gives you a good long term motivation because it makes you feel good about what you do and you keep improving. Negative Feedback gives a shortly a boost about what you do, but you get long term frustrated.

    To make an Example:
    "I think it's good that you try to give honest feedback, but you should concider beeing more polite and constructive. Maybe you could reach this my empathize you into the criticised person."

    See, wasn't too difficult. Now you try!


    April 09, 2002, 03:27 PM

    The poor guy needs attention probably.

    If it's worth a comment, comment the beautiful art ( would like to see more than one stance of the character though ), or the fact that it's pretty darn good work for 4 months for one person part time, or anything else that has a _value_ to either the IOTD-author, or the community.

    Warren Marshall

    April 09, 2002, 03:50 PM

    Is he asking for criticism? Or is he sharing his project with the group? Maybe you don't grasp the idea behind IOTD ... it's not to have projects laid before you so you can bitch about them.


    April 09, 2002, 03:52 PM

    "What's so important about constructive cricism is that you first try to see what's good"

    you dont have to say something is good with it to call it constructive criticism...
    you only have to explain WHAT you dislike with it or so..

    like.. if someone posts an image and one guy says:
    "that sucks."
    thats not constructive criticism...
    BUT.. if he said:
    "that sucks. you use to few polygons on the foreskin of the dick so it looks like a cube instead of a cylinder" well.. then its constructive .. even if its 100% negative..

    and constructive criticism is usually alot better to get in 100% negative form imo since then when you have fixed those stuff you could ask that person if he's pleased now.. if he cant come up with something well then youre sure you did a good job:)


    April 09, 2002, 03:57 PM

    ok.. it looks BAD ! why? well:

    1) no mipmaps ? :)
    sollution: use as many as you can per texture and soften each stage and gain the depth-feeling and smoothness of objects far away..

    2) no good lightning
    sollution: you dont *need* lightmaps for your first trys.. just add some more polygons and use dynamical lightning for starters that would give it a good look even tho it would make some objects look "flying" due to lack of shadows.

    3) lowpolly
    share up and use the tesselete modifier in 3dsmax or subdiv it 3 steps with catmullclark or loop ;D

    4) add a fps counter wich takes up half the screen so people only focus on the fps instead of the pictureitself

    Hiro Protagonist

    April 09, 2002, 04:05 PM

    Just add more polys? That is absurd.
    Why implement dynamic lighting to get the feel for what a level will look like with lightmaps? Perhaps you are not aware of the amount of time it takes to model, to say "just add more polys" is pretty insane.

    "4) add a fps counter wich takes up half the screen so people only focus on the fps instead of the pictureitself"

    I am hoping that is a joke, which if it is, totally undermines the rest of your points.


    April 09, 2002, 04:08 PM

    I don't think that constructive criticism is good in a 100% negative form. Of course you can't express something beeing not good without mentioning the negative part of it. But the intention shouldn't be either to satisfy the one making the critics. Thus when you run to ask "satified now?" you missed the whole target. Critics should help you on your way to make good Critics about your own work. So you can stop running around all the time asking what's wrong. This you archieve only by making critics in a way to show the path wich should be choosen, without walking it for the other. The people have to learn to walk alone, and that's what personal critics should all be about.
    By providing it in pure negative form you give negative motivation like "aww this is shit I got to work on it". If you encourage sombody politely to work on a detail that's real bad, he doesn't needed to be said into the face that it's shit, that he can see for himself. But the motivation is different. Then he thinks "Aww he was not too satisfied with it, so somethings wrong...I got It, it's shit anyway, lets work on it!"
    See, the motivation is better because you still save your face and you can feel clever that you discovered the bad thing part on your own. Moreover you added your learing process to the thing and you are realy better afterwards in juging yourself. A target wich can't be reached with negative full direct critics.
    Thus making good critics is done if you know the person good and if you point out in a good balance between politeness and pointing a way that you allow the other to save face and learn.

    Crazy Vasey

    April 09, 2002, 04:11 PM

    I like it reminds me of a high res Daggerfall and that's not a bad thing!

    Hiro Protagonist

    April 09, 2002, 04:11 PM

    It crashes on my P3 1GHz, with GeForce3 Ti200, running XP Pro.
    Here is the debug spew. Not much to go on.

    CommandLine: c:program filessge demo v1.0sge.exe
    Loaded dbghelp extension DLL
    Loaded ext extension DLL
    Loaded exts extension DLL
    Loaded uext extension DLL
    Loaded ntsdexts extension DLL
    Symbol search path is: *** Invalid *** : Verify _NT_SYMBOL_PATH setting
    Executable search path is:
    ModLoad: 00400000 00578000 image00400000
    ModLoad: 77f50000 77ff9000 ntdll.dll
    ModLoad: 77e60000 77f45000 C:WINDOWSsystem32kernel32.dll
    ModLoad: 6d9a0000 6dac7000 C:WINDOWSSystem32d3d8.dll
    ModLoad: 6ba40000 6ba46000 C:WINDOWSSystem32d3d8thk.dll
    ModLoad: 77c70000 77cb0000 C:WINDOWSsystem32GDI32.dll
    ModLoad: 77d40000 77dcd000 C:WINDOWSsystem32USER32.dll
    ModLoad: 77dd0000 77e5b000 C:WINDOWSsystem32ADVAPI32.dll
    ModLoad: 77cc0000 77d35000 C:WINDOWSsystem32RPCRT4.dll
    ModLoad: 77c10000 77c63000 C:WINDOWSsystem32msvcrt.dll
    ModLoad: 77c00000 77c07000 C:WINDOWSsystem32VERSION.dll
    ModLoad: 6ce10000 6ce45000 C:WINDOWSSystem32DINPUT8.dll
    ModLoad: 72e20000 72ea5000 C:WINDOWSSystem32DSOUND.dll
    ModLoad: 771b0000 772ca000 C:WINDOWSsystem32ole32.dll
    ModLoad: 76b40000 76b6c000 C:WINDOWSSystem32WINMM.dll
    ModLoad: 10000000 1000e000 c:program filessge demo v1.0ZLib.dll
    ModLoad: 76390000 763aa000 C:WINDOWSSystem32IMM32.DLL
    ModLoad: 629c0000 629c8000 C:WINDOWSSystem32LPK.DLL
    ModLoad: 72fa0000 72ffa000 C:WINDOWSSystem32USP10.dll
    ModLoad: 009b0000 009c9000 C:WINDOWSSystem32NVDESK32.DLL
    ModLoad: 76b10000 76b15000 C:WINDOWSSystem32ctwdm32.dll
    ModLoad: 5ad70000 5ada4000 C:WINDOWSsystem32uxtheme.dll
    ModLoad: 00bf0000 00d67000 C:WINDOWSSystem32d3d8d.dll
    Direct3D8: (INFO) :Pentium Pro CPU features (fcomi, cmov) detected

    Direct3D8: (INFO) :Direct3D8 Debug Runtime selected.
    ModLoad: 732f0000 732f5000 C:WINDOWSSystem32mscat32.dll
    ModLoad: 76c30000 76c5b000 C:WINDOWSSystem32WINTRUST.dll
    ModLoad: 762c0000 7634a000 C:WINDOWSsystem32CRYPT32.dll
    ModLoad: 762a0000 762af000 C:WINDOWSsystem32MSASN1.dll
    ModLoad: 76c90000 76cb2000 C:WINDOWSsystem32IMAGEHLP.dll
    ModLoad: 0ffd0000 0fff2000 C:WINDOWSSystem32rsaenh.dll
    Access violation - code c0000005 (first chance)
    Access violation - code c0000005 (!!! second chance !!!)
    eax=00a85ce8 ebx=00a85a18 ecx=00000000 edx=00000258 esi=00000320 edi=009d58a0
    eip=0040bcf9 esp=0012fafc ebp=000006d0 iopl=0 nv up ei ng nz ac pe cy
    cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00000293
    *** WARNING: Unable to verify checksum for image00400000
    *** ERROR: Module load completed but symbols could not be loaded for image004000
    0040bcf9 3b342b cmp esi,[ebx+ebp] ds:0023:00a860e8=????????

    Andreas Magnusson

    April 09, 2002, 04:19 PM

    I cannot see the particle system

    Then I suggest you go get yourself a pair of stronger glasses...


    April 09, 2002, 04:19 PM

    Btw, I had a teacher in drawing wich understood this art of critics so well, that he merly spend two minutes of about a four-hour lesson at your place, showing you with some very swift strokes and polite explanations what was about to be wrong. After that you got four hours to think about it and work on it. He just took the first step for you, showing you where you had to put your next foot,and the rest you where supposed to walk alone. The art was to archieve that the studend( me n others ) understood what it was all about. And we felt great while drawing and greatly improoving ourselfes. In fact his lessons where the most peacfull and productive for everyone. And his studends always showed off the best works out of many classes.

    This thread contains 124 messages.
    First Previous ( To view more messages, select a page: 0 1 2 3 4 ... out of 4) Next Last
    Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.