| Submitted by , posted on 29 June 2003 |

Image Description, by These are some screenshots from our cRPG game - Post Nuclear, which is inspired by Fallout 1 / 2 games. Short descriptions of screenshots and some technical details: -top: game screenshot. Game engine is tile based (like in Neverwinter Nights) it means that map is created from square tiles (1 metre x 1 metre) and of top of them I put 3d objects (everything is very similar to chessboard). This solution has some advantages and disadvantages. In tile based engine it's very easy to cull objects and to create good pathfinder - it's enough to use A* algorithm, which is fast and accurate, also creating new maps is very fast, but they can look similar, if you don't have many various tiles and objects. Now game uses DirectX x models (with skeletal animation), but it can also render quake3 md3 models (with animation). We decided not to use md3 models, as they are very large compared to binary x if you use a lot of animations (in md3 animation is keyframmed, so every new animation must contain information about all the polygons of the mesh). Currently lighting is handled by DirectX lights, but later we'll use per pixel lighting and some stencil shadows.
-bottom left: editor screenshot, creating new map. Map editor is very simple - some user interface (made with Borland C++ Builder) connected with game. Connection is made by passing editors window handle as a parameter to games executable, then the data is exchanged by sending messages to each others windows. Large data is exchanged using file mapping. Basically in editor you just place various objects using few clicks. There is an idea to remove tiles and objects, which are covered by other ones and can't be seen, but we don't know if we'll add this feature, as we plan to create a fully destroyable environment.
-bottom right: editor screenshot, creating new dialog. This tool is used for creating new dialogs and testing them. When you save your dialog game editor parses it to create a LUA script, which is later used by the game. It looks something like this:

    function n1()
        setText("Hey stranger! Hold on!")
        addReply("[you turn your head to the side of the speaking voice with surprise]",0,2)
    end

    function n2()
        ...

(Tip: it's possible to do it with a single function, but then you have to use multithreading (or something similar) wich is just a pain-in-the-ass and creates many bugs)
And in game this script will show a dialog with question "Hey stranger! Hold on!" and one reply to it: "[you turn your head to the side of the speaking voice with surprise]".
You can find out more about the game here: http://www.x-k.ten.lt
KriS & sKiD
XK Entertainment

[prev] | Image of the Day Gallery www.flipcode.com | [next]

Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
Please read our Terms, Conditions, and Privacy information.