By having no schedule and no boss, my development work seems to go from almost nonexistent to hectic depending upon what stage in a game I’m working on. In an effort to change that I’ve made a timeline for the next 11 months.
I am still an entry level computer programmer. Aside from my failed attempt to program some in college 10 years ago I’ve basically only been programming for 2 years now. Unlike CAD programs which take me a few hours to switch to something new, programming languages take me months if not years to master. With Microsoft’s recent transition away from XNA/C# to direcX11/C++ in Windows 8 (and WP8) I have been flustered to say the least about which direction to take. Should I learn C++ with DirectX 11.1 to make some really impressively graphical games or stick with XNA for another year? On one hand I have exhausted the possibilities of Windows Phone 7 and I crave more, but on the other, Xbox 360 still has a lot of neat tricks I need to master. A couple features that really come to mind are reflections and point lights; neither of which can really be done on the current Windows Phone 7. My games may appear to have point lights but those are baked out textures done in Autodesk Maya, and are not calculated by the phone. To create a point light travels with the ball in Bonsai Golf, to make it appear like it was glowing, I would need to use custom shaders; and Xbox 360 can use them with the same XNA code I now feel comfortable with.
If there is still so much more than can be done in XNA, why switch at all? Three reasons: C++ is more industry standard on a professional level, C++ is faster, and DirectX 11 has tessellation. I will continue making games as a profession, why not learn the industry standard now? It might be a little too much for one person to handle. If I was in a team of 3-4 where one person could just be responsible for memory management or bringing in media assets it may make more sense. As a single inexperienced developer most of my time would be going to things like this which are taken care of automatically in XNA/C#.
This brings me to the wildcard: can a developer get high end features of DirectX 11 while still using managed C# code? Yes. Many development teams are working on bringing all of DirectX 11’s features, including tessellation, into C#. SharpDX is one of those possibilities and the speed loss is nearly negligible. The problem however is that it is new and there isn’t much documentation for it yet. Eventually I’ll revisit SharpDX for Windows RT tablets but until then I will be taking the next logical step: XNA on Xbox 360.
Before I jump into that, I think it is time to polish up Bonsai Golf Coral and Hotsprings so I can get them into the marketplace. The original Bonsai Golf must also be updated to the latest Windows Phone 7.5 (mango). Once those are finished I can begin work on the game I’ve been dreaming of since I started game development. It will be called Flywheels and I will have 9-10 months to work on it before entering the Dream.Build.Play competition of 2013.
Flywheels will be a racing game on inverted planets with monocycles. I have not decided if the monocycles themselves will be alive or you will get to use your Xbox avatar to drive them (maybe both). Unlike most racing games which reward the driver for doing the same precise moves over and over again, Flywheels will be more about player interaction and finding a variety of paths to the finish line. My concept art 2 months from now should better illustrate these concepts. By December 2012 I should have a playable demo of Flywheels to test out with friends and family during the holiday season. I will try to have public betas up throughout development to get lots of feedback before the June 2013 deadline for Dream.Build.Play.
Until then, look forward to a steady release of all 3 of my current games (with updates and more levels) on the Windows Phone marketplace. It should be an excited year even though I’m holding off completely on Windows 8, Windows Phone 8, and Windows RT. Who knows, maybe by June next year there will be XNA 5.0 and everything I just talked about will be a moot point.