Sign in to follow this  
dave

Promote Your Engine

Recommended Posts

I'm interested to see what other people have done and are doing with their engines, i know so many people on here are writing there own. So what does yours do? Mine ==== It doesn't do alot at the moment, is just under 5000 lines (!!!) but it has the foundations for something promising me thinks. Current Features ================ Direct3D -------- - Static scene only. - 3 Base primitives available to the user, quad, cube and panel. - Material system supporting Fixed Function texture blending. - Scripted texture loading, material definitions and scene description. Kernel ------ - Built in profiling. - Built in logging. Short Term ================ Direct3D -------- - More base primitives including cylinder and sphere. - Meshes. Tools ----- - wxWidgets editor for each of the scripting files. Long Term ========= - Development of dynamic scene. - Melding of static and dynamic scene into a map. - Enhance materials with shader support with multiple passes. and more...(as i think of it) Well it will do tonnes more than that when im done. I benchmarked ~250,000 triangles at 250fps giving 84 million triangles per second, so it's well on it's way.

Share this post


Link to post
Share on other sites
Hey sure, why not? This should give me a good exercise to look at stuff.

I actually have an older one which was... version 3? So the current is version 4.
Between version 2 and version 3, I picked up the Standard Library. Between version 3 and 4 I picked up parts of boost. It usually takes me 1 version of a project to get really comfortable with things...

So, Version 3: Clocks in at ~7500 lines. It was abandoned largely because some of the UI constructs were intolerably unweildy. Things like adding scroll-bars to UI objects would be painful. Still, a good portion was able to be carried forward; and I learned quite a bit, which is mostly all that matters.

Good Stuff
==========

Rendering
---------

-Direct3D setup for 2D,
-simple image rendering, text rendering.
-A few UI objects, such as a quake style console, chat-box, textinput field, lists.
-The ability to specify functors as animation sequences, with a few boxed ones like fading, and simple movement.

Networking
----------

TCP text networking used and abstracted away nicely.

Support
-------

-Input handling abstraction via functors
-Global logging via configurable interface
-non-typesafe configurable command-set class [for things like the quake style console]
-Configurable timer


Version 4 is slightly over 2500 lines.

Good Stuff
==========

Rendering - Nothing.

Networking
----------

-Expanded networking library to include text communication between threads via shared memory. Clients can now chat with local servers running in a different thread and remote servers using the same interface.
-Now allows configurable logging.

Support
-------

-Input handling changed to accept boost::functions, allowing easier member function binding.
-Input handling moved off into its own little library rather than being tied to rendering
-Logging interface improved to allow more local use.
-Typesafe, configurable string->command parser.

-Thread tracker.
-Generic thread + networking + logging + parser framework.

Sound
-----

-Proof-of-Concept sound thread using the framework above. Currently can load and play sounds.



Short Term
==========

-More utility classes, such as better sharable rect/text/color
-An 'update' class to better manage and abstract cross-thread updates and messaging
-Basic D3D 2D rendering
-Add background music to sound thread or to own thread.
-Add more features to sound thread.


Long Term
=========

Columns.

Share this post


Link to post
Share on other sites
here's mine;

Top Down City
====
code size: unknown, it is big!

Current Features
================

Opengl
--------

- Dynamic on the fly adjustment of geometry if neccesary
- HUD elements (panels, windows, buttons etc..)
- Renders raster bitmap & texture fonts, graphs
- own texture package format and editor, loads many image formats
- renders cube grid maps with multitexture shadows, etc..
- renders without any depth buffer gaining over 100% speed gain for this on older gfx cards (!!) (actually some tiny graphical glitches are caused by this but because of the way game displays scene it actually fixes more things than breaks, later i will most likely introduce a mode where depth buffer will be toggled on / off when needed)
- has probably the most powerful particle system on the planet (particles break, bounce, animate, explode, etc..)
- uses newton physics engine

Kernel
------
- Built in profiling.
- Built in logging.

To-Do
================

Opengl
--------

- bumpmapping
- 3d model meshes.

Physics
--------

- improve car handling, add water buoyancy

Tools
================

- several new editors were created to assist editing new file formats such as a city map editor, texture editor, car editor...

Share this post


Link to post
Share on other sites
Hi, here's some info on my current engine

The Mary Engine
General purpose game based library and engine approx 35,000 lines of code and 25,000 lines of comments.
Designed to be a cross platform based engine, with plug-in content.

Current Features

General
-------
* General resource management - Duplicates must be specified
* Supports loading from disk and libraries own package format
* ZLib compression on both resources and packages
* Streaming - Resources can be directly loaded or streamed in game

Rendering
---------
* Currently supports DirectX with empty stubs for OpenGL
* Supports various model and texture formats (animated and static) along with the engines own format (.lat files are animated texture formats with animation names and .mm1 files which are my own model file formats)
* Supports all lighting formats
* Aimated bitmap and system based fonts
* Render state management for secure state changing
* Textures and render surfaces can be used interchangably

Sound
-----
* Supports both FMod and OpenAL
* Position, orientation and velocity tracking
* Internal attenuation for cross-API compatibility

Input
-----
* System based input management
* Binding and re-binding multiple keys

Kernal
------
* Debug logging and profiling
* On screen profiling and timing of code
* Transparent file management (from disk and in memory)
* Various heap managent options

Resource Viewer
--------------
* Plug-in based
* Allows the user to view all resources currently in memory
* Displays various options based on each resource

Console
-------
* Plug-in based
* Allows definition of custom commands and system commands
* Skinable and moddable

GUI
---
* Collection of gui entries (buttons, text boxes, list boxes sliders etc.)
* Cursor support with textures based on user actions
* Win32 style tweak menu - Allows easy access to debug options

Tools
-----
* Packager - For creating resources packages with compression and encryption
* Lat Builder - Creates Lat files from all supported texture formats
* Resource View - Allows users to view what resources would look like in game

Theres a hell of a lot more in the engine, but it's all some stuff that comes together to hopefully make something thats quite easy to use.
I have had a few people use it in the past, and had some good remarkes and comments, so I'm quite happy with it.

I currently thinking about how to imcorporate XML style scripting to both the GUI and various other aspects of the system, and how to make the engine easier to use. I am hopefully going to write documentation and a few detailed tutorials within the coming months so its easier for others to use it.

It is totally fixed function pipeline based (both DirectX and OpenGL plugin's), but I hope to create a shader based plug-in with the release of DX10 (in how ever many years ;))

The Mary Engine

Spree

Share this post


Link to post
Share on other sites
Version 1: Dojjan(3d)
Done:
XML/XSLT/CSS logging
Vector & Quaternion support
Obj loading
Rendering obj mesh in open gl(intermediate) with single material(currently only texture)

Todo:
none

Version 2: Lunar lady(3d)
Done: none
Almost done: UML
Todo: alot

Green engine(2d):
Done:
image loading
animation
parralax scrolling
level file
ingame level editor
lua console

Todo:
Add more features to the renderer
sound
collision

Share this post


Link to post
Share on other sites
This is mine: Cyclops3D

Renderer:
DirectX 9
Cyclops (own renderer)

Features:

Graphics: lens flare, motion blur, bump mapping, radiosity lighting, dynamic lighting and shadowing, real-time glow effects,

Physics: gravity, fluids, interactive environment

Network: LAN, internet

AI: pathfinding, evasion, team-based action

GUI: Console, Doom3-like real-time GUI

Tools: Level Editor, 3D Max Plug-ins

--------------------------------------------------

I've gotta implement sound now... then it'll pretty much be done with...
It can recreate almost all scenes from Doom 3.

-Zubair-

Share this post


Link to post
Share on other sites
Quote:
Original post by Delfi
here's mine;

Top Down City
====
code size: unknown, it is big!...car editor...


Hey Delfi, I didn't know you did any sort of programming ;) How's Top Down City coming along?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this