I needed to decide on a language. My initial search on where I should start with that turned up hundreds of other people asking the same question, and almost always getting the same answer. I will paraphrase a few common responses: “WHAT A STUPID QUESTION!” “YOU ARE AN IDIOT!” “THERE ARE ALREADY OTHER DISCUSSIONS ON THIS *insert broken hyperlinks*!!” Ok so it’s the internet. Ask any question and you’ll mostly get answers from people who think you are an idiot. In the end, it came down to C++, C#, or Java.
Java… Java Java Java… I am not your biggest fan. I use your applications in day-to-day middleware administration and they are slow, clunky, and suck Suck SUCK. Java sucks! There I said it. It’s out there now. So it really came down to C++ and C#. C++ looks completely doable for an amateur and has all sorts of support and existing engines. However, the general consensus I found was that it is time-consuming to get started, but runs faster and gives the programmer more control. I wanted to make something right away! So I picked C#. I still think C++ would have been fine, but C# had XNA and that made getting into the thick of things incredibly easy. I like easy! I figured I could always go to C++ later on if C# was really that horrible.
I ran through many online tutorials about how to get started with C# and fully decided that XNA was the easiest way to get into it.
Tutorials I ran thorough:
- Virtually every RB Whitaker tutorial @ http://rbwhitaker.wikidot.com/xna-tutorials.
- Riemer’s tutorials about terrain, 3D flightsim, HLSL, and about half of the advanced terrain. I tabled it to come back later when I needed to get a grip on water.
- Dozens more tutorials including game state management (of which Microsoft’s version seemed to be an excellent base).
* I found that Microsoft really picked up the ball in their examples and provided some amazing starter code. Also, XNA comes with a ton of sample templates so I checked those out. Unfortunately, since Microsoft stopped talking about XNA, there is little to no new activity on the Microsoft sites.
This took roughly the entire month of going through each tutorial, learning C#, and re-learning how to program properly. It was a boring dragdown slugout to do but I knew that if I didn’t get a good basic foundation of knowledge I would be sorry.
I then created a basic chase camera system and applied it to Riemer’s flight sim tutorial.
Not exactly what I had, but I had to recreate this from old code that had moved on past the buildings. Close enough. The ball shot fireballs at the balloons and blew them up as per the tutorial. It also rotated correctly like a flying moving dodging ball should.