I'd just like to start off by saying that there is some real talent here. I for one have absolutely no artistic ability, but I can appreciate the fine work many of you have shown off. My skills are pretty much 100% technical, so while its not quite art, I hope this is still relevant to the forum.
I've been working on the second generation of an XNA based video game engine for a few weeks now, and I'm kinda running out of motivation to continue. It's entirely a hobbie, but I would like to complete and release it in Xbox Live. The first gen engine was a school project titled "Project Garuda", and the Zephyr Engine is entirely new, but based on what I learned from Proj. Garuda.
[ame="
http://www.youtube.com/watch?v=X-IIutD4clc"]XNA Zephyr Engine (YouTube 1:43)[/ame]
[ame="
http://www.youtube.com/watch?v=aZLETVgvJZw"]Project Garuda (YouTube 1:35)[/ame]
The Zephyr Engine has seen quite a bit of development since that video, but I didn't feel like making another. The reason I'm losing inspiration to work on it is because I have a lot of great ideas, and am completely capable of implementing them technically, but I lack the ability to realize them in a 3D environment. The result is a lot of ugly place-holders.
I'm juggling 2 main ideas for the game. The first being a KOTOR-type RPG with a Sci-Fi universe based a hundred or so years in the future. The story was written by a friend of mine, and its simply amazing. I'm not sure I can do it justice, which brings us to the 2nd idea which is a bird's eye shooter similar to [ame="
http://www.youtube.com/watch?v=i-zSi0xt9fY"]Ikaruga[/ame], again with a sci-fi theme.
If anyone is interested in modeleing, lighting, and/or level design with a sci-fi theme (think Mass-Effect), please PM me. Levels and animations can be partially or entirely constructed in 3DS Max, Google Sketchup, or any other major 3D Software im sure, and then imported into the engine. Since it's just a hobbie, your always free to do as much or as little as you like, and when it gets released you'll share equally in the proceeds.
As always, C&C is welcome.
Thanks!
Replies
I think I may work on a weather system next.
How does it handle data, what kind of support does it have for different things, what kind of entity-system, limitations, flexibilities, is it easy to add new functionalilty, how maps are built up etc.
All content is pre-processed and loaded via the Content Pipeline provided by XNA. Model's are exported from something like 3DS Max and directly loaded. With Audio, no pre-processing is required so I have made the design choice to load it at runtime. There is support for things like fonts. The Particle system is capable of drawing over 100,000 particles using textures and their behavior is defined in XML.
At the core of the engine is the Level Object which is then operated upon many different ways. Levels are are defined in XML, and constructed at runtime from the various necessary objects. Each level will have a single model for all static objects such as terrain, buildings, etc, and dynamic objects will be loaded and placed according to the XML. Objects must explicitly decide to cast shadows or be subject to the physics engine.
Model instancing is supported capable and capable of drawing thousands of objects in a batch as opposed to sequentially. Model animations are not supported when instanced.
The event system allows for events that can be triggered on a timer, randomly, from a collision, or another event.
I'm not sure of the exact figures, but the engine can handle at least 100k polygons at 60fps, probably no more than 500k.
Lights can be placed in the 3DS Max, or created from the XML Level definition. The Diffuse lighting, Point Lights, and Directional Lights are supported. Lighting is calculated per-vertex, or per-pixel depending on the objects distance from the camera.
Diffuse texturing can be done in 3DS Max, or in XML. Normal mapping is supported, and is defined in XML. When normal maps are provided, per-pixel specular lighting is supported. I have attached samples of the various types of lighting and their results.
The Unordered List of Features
Enemies
Programmable AI
Path finding capabilities
3D Positional Audio
Sound Effects
Music
Static Level Models
Animated Level Models
Level Skybox
Lighting
Event System
Collision Detection
Physics Engine
- Mesh based physics and collision detection
Menu System
Post Processing
Camera System
3rd Person
First Person
Path-Defined
User Input
Player Management System
Stats Logger
Menu System
Post Processing
Bloom
Glow
Blur
Depth of field
Motion Blur
Particle System - 100K Particles
Weather System
Snow/Rain/Clouds/Lightning/etc
2D HUD Overlay
And finally, I cannot take credit for everything. I am working with the 2 following frameworks which are quite amazing.
http://xen.codeplex.com/
http://oopsframework.codeplex.com/
Any questions?
On here you will probably find quite some people who are interested in that kind of information, since most people here have some experience with different engines
good information!
Also, it should be noted that the items in the list aren't necessarily integrated into the Zephyr engine. I tend to implement stuff in related groups, and I haven't gotten around to porting some features from Project Garuda to Zephyr yet.