From the ground up

Even though most of us are slightly derailed with real life shit, Arcadium Software has continued to progress on our flagship game, Zinger.

One interesting thing I keep reading on different sites is people referring to XNA as a beginner language for writing games. Although it can be interpreted this way, I have to disagree. In my opinion XNA (or C# w/ the XNA Game Studio… whatever) isn’t as much of a beginner language, but more that it has the possibility to be a rapid development language.

Yes, working with managed code is always easier than unmanaged code, but that doesn’t mean its anymore beginner friendly than the next. There is just as much of a learning curve writing C# applications as there are C++ applications. In the first few steps of writing a C++ application you echo “Hello, World!” to the console… and in C# its pretty much the same thing except you’re printing “Hello, World!” to a windows form.

Aside from that, coining it as beginner tends to assume it lacks the ability to be mastered… that there’s a skill cap on it. I’ve only been working with XNA a few months now and have already learned things I wish I knew at the start. Which is a perfect segway into the meat of this post…

When we first started writing Zinger it was with the mindset of “hurry! go go go go! do it! do it!”. We didn’t pay much attention to anything other than making leaps and bounds of progress. And it worked really well! We accomplished goals and milestones we could only dream about in the past. Only problem was the code became so concrete in its current application it made us worry. What if we want to use this code in a different game? Would we need to tear it all apart? Would it even be worth the effort?

About that same time we also started to notice a few issue with some of our implementations. There we limitations on features we knew needed adaptability down the road. Things like the GUI scaling properly as the resolutions changed while in-game… or the XML based menus requiring tricks and hacks for displaying screen resolutions. If you’re writing anything from scratch, you should NEVER have to use a trick or hack to make something work. Yes, I am personally responsible for most of the problems but hey… I’m new to the language and we didn’t set out to make an engine. That had to change.

After exploring a variety of artist styles, we’ve designed a new style of graphics we want our game to use, and we’re going to write an engine tailored to it. Why? Because we absolutely love the style and its very unique. Once we’ve completed the engine and Zinger, you will forever recognize the style to be an Arcadium Software product. Sort of how you can play almost any Source Engine game and say “yea, this is totally the Source Engine”.

As much as I would like to refrain saying we’re rewriting what we had from scratch, that’s exactly what we’re doing. Except now we already know how to do everything and have our code right in front of us to reference, which speeds things up tremendously. This time we have the right layout and I can’t even begin to explain how much better its already turning out.

In before tl;dr