Over several years I've coded in C++, Java, some Processing, HTML, PHP (which I do for a job right now), and currently C#. I got into the XNA when it was entering its middle years, and my first game with that framework is still a goal that's not close yet. So I am not sure how I would feel about releasing an Xbox Indie Game well into the twilight years, but for now I'm sticking to XNA. I've already managed to build a basic graphics framework while learning DirectX 9, and moving to XNA helped me approach more advanced concepts without a lot of the low-level fuss.
With that said, I'm building a graphics engine and a game to go with it. They will be worked on at the same time, so if there's something my game needs from the engine, for now I will give that feature a priority for the engine if it helps on finishing the game.
Engine thingies include:
- Component-based rendering system, meaning each rendering step is contained in its own class. The steps are chained together with inputs and outputs, just in code for now.
- Mesh instancing and frustum culling by instance (I plan to add quadtrees eventually but brute-force culling isn't a botteneck right now)
- Blended cascaded shadow mapping for directional lights
- Post processing effects like FXAA and soft-focus DOF (again, as discrete rendering step components)
I plan to make an off-road racing game, which will be more quick arcade-like action than sim racer. Think MotorStorm with a bit of Excite Truck. I have already started a separate project for the game, but for now it's nothing more than an empty terrain with a first attempt at getting the physics engine (BEPU Physics) working with the graphics. Here's the current list of my important things to do.
- EVERYTHING!!! (but especially starting on the physics)
- A rudimentary level editor (at first), will not have a very visual interface at first
- A controllable physical body, just as another way to move the camera for now
- Easier manipulation of mesh instances
- Forward rendering
- Impostor/billboard drawing
- Easier-to-configure shaders