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


Submitted by Bernhard Glück, posted on October 18, 2001




Image Description, by Bernhard Glück



This is an early shot of our in development game „Startrek Realspace“ it will be a completly free game, and is under active development. It is based on our own “Realspace Engine” a completely modular game engine, which allows to create any game with no or little C++ coding. It is the basis for my book "Game Engine Design and implementation with DirectX 8.1" which is due out in Q1 2002 , by the German publisher "Markt & Technik"

Here are some features and facts:

General:
  • Modular architecture due to use of plugins for almost everything.
  • Runtime loading of plugins.
  • Resource manager for caching, loading and unloading data as needed making optimal use of present RAM. Also makes sure every file is only loaded once.
  • All data files [ except really standard ones, like WAV,MP3,TGA ] are saved as XML documents, making them easily understandable / convertable.
  • Abstracted inter object communication using a compact messaging system.
  • Event system using messages as backend.
  • Object system, managing all runtime created classes, and allowing standardized access to their properties.
  • Easily write new object classes in plugins and export them to scripts and the main engine core.
  • All systems are designed to be easily extendable by 3rd party plugins.
  • Easy to use debugging console. Support library: [ Useable in any project, not just Realspace ]
  • Sophisticated DLL aware RTTI System.
  • Extensive debugging support with callstack traces, memory leak detection, smart pointers and the likes.
  • Automatic bug report over the internet.
  • Detailed debug log.
  • Safe array and linked list templates [ to be independent of STL ]
  • Template and DLL aware support for Singletons.
  • Support for dynamic binding of DLL files.
  • Dynamically resizing data buffers.
  • Vector, Matrix and Quaternion math modules.
  • Multi threading primitives [ Thread class, with mutexes and semaphores ]
  • Unicode aware String class.
  • Window abstraction class.
  • DirectX helper methods.
  • Graphics:
  • Entirely written with DirectX 8.1 in mind, completely optimized for it, making heavy use of state batching, triangle strips and other optimization techniques to achive maximum performance on todayÂ’s and tomorrowÂ’s graphics cards [ geForce1 class card is required]
  • Hierarchical Scenegraph with hierarchical view frustum culling.
  • Some numbers: Pushes about 18 million triangles / sec on a P3900 with geForce3. [ using fixed function pipeline without any hardware lights ]
  • Using vertex shaders for almost everything form lighting to special effects
  • Using DirectX 7.0 style multitexture pipeline for per pixel effects
  • Highly configurable shader system supporting Textures, Detail maps, Glow maps,Per Pixel Bump mapping using Dot3 Product blending.
  • Configurable and extendable particle system, using DirectX 8.1 Point Sprites.
  • Xml based mesh format, supporting attachment points, shaders and other things.
  • Custom 3DSMAX 4.x plugin to export meshes to the custom format.
  • Skybox support, for space backgrounds.
  • Additional support for using DirectX X File meshes, and adding shaders to them.
  • Several additional special effects [ lens flares, glares ].
  • Collision detection and response.
  • Trilinear filtering.
  • Configurable alpha blending.
  • Full screen Anti Aliasing.
  • TrueType Font rendering.
  • Static Level of Detail system.
  • Standardized Orientation system allowing to control objects with so called “Orientation providers” can be anything from scripted to dynamically calculated.
  • Sound:
  • Support for WAV,MID and ADPCDM Compressed wav files.
  • Full 3D Positional sound using DirectSound3D.
  • Streamed playback of MP3 and WMA files.
  • Speech synthetization.
  • Networking:
  • Transparent networking system, automatic serialization of all objects
  • Totally transparent to the user.
  • Support for TCP/IP communication using DirectPlay.
  • Planned: Voice communication using DirectPlayVoice.
  • Planned: Messages are packed and encrypted for sending over the network.
  • Input:
  • Completely abstracted input system, allowing arbitrary input device to be assigned to different actions.
  • Keyboard and Mouse input using DirectInput.
  • Planned: Joystick support.
  • Planned: Speech recognition input device.
  • Scripting:
  • Easy to use scripting system, allowing complete customization of the engine as well as implementing complete games without writing a single line of C++ code!
  • Embeds the RUBY Scripting language [ Version 1.6.5 ], a fully object oriented, fast scripting language.
  • Derive from any of the C++ classes defined by the engine, and extend their functionality.
  • Respond to arbitrary messages, or even send out your own.
  • Internet:
  • File system accepts not only local filenames but also URLs, files are transparently loaded from the web.
  • Embedded Internet Explorer browser for display of standard information [ embedded into the graphics engine, can even be drawn as a texture on an arbitrary surface. ]
  • A demo will not be released very soon, since DirectX 8.1 is required. For more information go to http://www.realspace.at

    Ps: We are looking actively for graphics artists willing to help with the game.


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

    [next]

     
    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.
     
    Pants

    October 19, 2001, 04:50 AM

    Ah, the lesser known Borg Oblong...

    Pete

     
    Patrick2

    October 19, 2001, 05:17 AM

    One feature:

    "Safe array and linked list templates [ to be independent of STL ]"

    Why's that? STL is a part of C++.

     
    Stefan Karlsson

    October 19, 2001, 06:46 AM

    no.. you have to write it in FORTRAN.. no c/c++ :)

     
    Roch Denis

    October 19, 2001, 07:03 AM

    I was wondering, does the book cover DX 8 basics and such? I hope NOT, I've seen a lot of "advanced" books that start to teach the API, or a book on 2d engine developement that start with teaching DirectDraw. I mean WTF, as someone said in another post when you buy a vectoriel algebra book, you dont get a primer on basic algebra.

     
    Gluber

    October 19, 2001, 08:24 AM

    The book does cover the basics of DirectGraphics programming, but in a minimal form, believe me. But i have put emphasis on the sections to show how to initialize DirectGraphics the right way, to check for hardware incompatiblites. This should be a game engine that works on a wide array of hardware and that has certain implications. I show how to check for specific hardware features and how to implement fallbacks if they are not present.

    However I quickly dive into the realms of shader programming, (e.g DOT3 Product Bump mapping using the Vertex Shader ) and other more advanced topics. However the book is also a great deal about good modular programming, to show how to integrate scripting into the engine, and make some tools...

    To be independend of STL.. When I started working on the engine, there were a lot of crappy STL implementations, and would have had to use STLPORT or something else. I just didn't want to do that, and I thought teaching template programming ( which is used to a great deal in the book ) is better understand with something easy like arrays and lists before diving into the more complex things like typelists and the likes.

    RS 2.0 ( which will be undertaken after RS1.0 is out ) will use the STL .... and some other Template libs like boost...

    Hope that helps.
    Bernhard Glück

     
    Morgan

    October 19, 2001, 12:05 PM

    With regard to lawsuits, trademark, patent, and copyright holders are required to sue to protect their properties or they lose them. Even if they don't want to sue you and there's no money in it for them, they have to sue you or they end up losing their right to sue some big company who later infringes. It sucks, but that's the way the legal system works. They could give you a free license if they wanted, but they probably don't want. So make your own content.

    -m

     
    warjo

    October 19, 2001, 12:17 PM

    just few questions:

    > To be independend of STL.. When I started working on the engine,
    > there were a lot of crappy STL
    When did you start your game? The STL that comes with the VC for example hasnt been updated for some time now (will be in .NET). Unless you started your engine at the age of 16? (if this 20 is true in your profile :)
    Moreover if you are sticking with Windows which is obvious from the massive DLL & DX support and protability (OS,compilers) in the STL doesnt really concern you?
    On other hand some advance template idioms are not so commonly compilable (by all compilers) and you say you utilize them...

    I just think it is not fair for the STL. Preaching the separation of the STL from the C++ language in the mind of the "beginner" programmer through the book? (The Standart commitee will not be pleased :)

    > Collision detection and response
    This feature was in the graphics section.
    I thought it is a physics stuff.
    Dont you keep them separated?

    >Derive from any of the C++ classes defined by the engine, and extend >their functionality.
    This feature is in the scripting language part.
    I'm just interested how this is done?
    (c++ is supposed to be static type language i.e. nothing can be derived dynamicaly) I can think of several solutions but I woudnt call them "derive" and they certainly wont apply for all the classes in the engine.

    Will it be only a free- space 3D engine?
    I mean I cant see the normal in-door (out-door) stuff.
    If it is only free space, you'd better state so in the name of the book. I think in-door engine design may differ. (speaking of DESIGN)

    Great number of features.
    Good work. :)

    warjo

     
    johannesB

    October 19, 2001, 12:50 PM

    really great IOTD. I'm looking forward for some more pics.

    Paramount lawyers: I'm sure those guys will sue you even if it's freeware and makes StarTrek more popular. What they want is money. Without a contract with them, you won't be able to release a game with ST content, no matter how popular. Try looking for a contract, if you're serious about a commercial game. Or change the content. (Yes, I think it is as bad as it sounds, but if i were you, I wouldn't take the chance getting involved into legal actions)

    For explaination of Anders' comment, visit this site

    Ah, finally an Austrian game that will kick ass ;)
    Our hopes rest on you :)

    Johannes

     
    ector

    October 19, 2001, 01:07 PM

    a single book that describes both STL, advanced DX8 and game design?
    what a mess

     
    Gluber

    October 19, 2001, 01:16 PM

    1:) Hm you are right. I just did not like the STL , since it did not allow the flexibility i wanted. And I do not need the vast ammount of functionality in it. Writing my own templates I could integrate them with my debugging system which works great.
    RS2.0 will use the STL ... But you are still right, is just should have used it ...back then ......

    2)You are right second time, I will seperate this, it was just a fast rundown of features and not resistent to errors :-)

    3)E.G the Game Engine defines a C++ Class in a plugin called "Mesh" which is a renderable mesh ( hard to figure :-) now you can create meshes in Ruby like this.

    m = Rs::Mesh.new()

    but you can also derive from it in Ruby like this
    class SpaceShip < Rs::Mesh
    end

    and you can overload the C++ implemented class methods here (like Load) and write event handler methods....This is how scripted game objects are created

    RS1.0 only includes Freespace type functionality. However due to the plugin structure it is NO problem to write a terrain renderer and even plug it in at RUNTIME .. In fact a friend of mine ports his terrain renderer over to RS, using the shader system.....
    I will maybe write a Indoor Rendering Part with Octree culling and the likes lateron...

    I just already think about RS2.0 which will be portable and 3DAPI independent..... :-)

     
    Gluber

    October 19, 2001, 01:18 PM

    It does not cover GAME DESIGN and also does not cover the STL..

    It does cover GAME ENGINE DESIGN, which means shows how to implement a game engine with many features that act together well and are extensible, a topic that has not been covered very often elsewhere, Most books just show small example programs that do specific tracks but do not show how to integrate them completly in one framework

    The STL is not covered, I just teach some template programming as far as it is needed for programming the engine. Its not much but enough,

    So there should not be a mess

     
    Sordith

    October 19, 2001, 02:57 PM

    Actually, I don't believe that's the case for copyrights.

     
    pattyn

    October 20, 2001, 11:24 AM

    Hi,
    I'm currently the only one (people please help! :)), doing the graphics part of the game. The screenshot Bernhard added, consists of the Enterprise-E with about 9100 faces fleeing(!) from the borg cube with 10000 faces. This runs with about 50 fps or more on an Athlon
    1GHz with a geforce 3 in 1024*768 pixel,32bit, and bumpmapping.

    incinx: i think thats enough we want to give backward compability for lower end systems. the engine is not yet at the highest point of developement it should theoraticly show 150.000 visible polygons with 60fps (same system)

    okay so far..

    Patrick Hecht

     
    ttentacle

    October 22, 2001, 02:26 AM

    Few notes about that features list:

    - "Vector, Matrix and Quaternion math modules. " : You are making a DirectX engine, why not use the D3DX math factory? DX8.1 adds CPU optimized math factions and if you are doing a DX engine (no need for portability) why not take advantage of these functions (and classes)

    - "Window abstraction class" - You plan on using DX on a system that isnt windows?

    - "Safe array and linked list templates [ to be independent of STL ] "
    and "Unicode aware String class." - I dont understand, why not use STL?

    - When you wrote the Sound features, I would replace all of them with just "Supports DMusic and DSound". Is this a list of engine features or DX features?

    - Graphics features : You say that the engine was written with DX8.1 in mind. You also state the you use vertex shaders for effect etc. Yet you use DX7 multitexture pipeline instead of Pixel Shaders?

    - Trilinear filtering, FSAA, TrueType fonts rendering - Those are DirectX features, not engine features.


     
    Hosed

    October 22, 2001, 09:46 PM

    LMAO! Yes, yes it would.

    -Hosed

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