I've been gone for a while, but my efforts as an iOS developer haven't been suffering. There's been a lot of buzz going on with my work:
For starters, I have a new title in production called "Blitz Blok Beatz". It's an iPad-exclusive game similar to its predecessor, Blitz Blok that made its debut for iPhone and iPod Touch in early 2009. As the name implies, "Blitz Blok Beatz" has to do with rhythm-like gameplay with music. I do not have any gameplay to show currently, but it's all starting to come together. I'll have something to put on display here very shortly.
Blitz Blok Beatz will have improvements over the original Blitz Blok in every way. One major issue I had with the first Blitz Blok was my lack of experience in developing full games with different game states, and menus. After finishing Blitz Blok, I started to think up ways to handle transitions between different screens, and how to transition between different game states which hold so much data, that only one game state can be loaded into memory at a single time.
When I first started working on Blitz Blok Beatz in mid-October 2010, I spent about 6 weeks working on new programming paradigms new to me. During this time, I wanted to establish a new menu system that would make creating new game states and screens to menus easy to accomplish. It would also allow me to add new types of game-specific widgets (such as buttons, tables, etc) without having to modify the core menu code. That way, if I wanted to add or drop a screen at a whim, it could be done with ease throughout development. Perhaps all this work in infrastructure this was my way of getting out of planning the game out more thoroughly... but I'm not complaining!
I'll provide a more in-depth explanation of this menu system as a tutorial for making an end-all game menu solution --that'll work for any game. However, not before I introduce you to game states, and how I think they should be used conceptually, and code-wise.
After developing the game state and menu systems, the results have been phenomenal! In my new menu system, I make heavy use of the more intermediate aspects of object-oriented programming (OOP). By taking advantage of C++ inheritance and polymorphism, it really made all the difference. What used to take multiple source files with hundreds of lines of code for a single game state in Blitz Blok now takes about 80 lines to do with fancier transitions and animations.
Other improvements I've made over this short period of time is my website. I rebuilt it from the ground up, and it looks great. You can check it out over at:
http://www.truesoftent.com. A little quirky, but over time, it'll be a really sleek-looking site!
Localization is now possible too! I've found this online service built around translating iOS apps for all platforms called
iCanLocalize. With my past code, I couldn't render localized text to the screen. Now, though, I have developed a C++ class that will take in an NSString of text, and convert it into an OpenGL texture. This allows me to easily print text to the screen with custom font, display it efficiently (alternatively: UILabel + EAGLView = chaotic framerates), and use localized text allowing me to reach more people in the world.
No new game is complete without Apple's new Game Center service, so I learned the ins and outs of it. Blitz Blok Beatz will have a few to keep the goal-oriented players rocking out to their music for a while.
I've also made plans to upgrade Blitz Blok using all of these new improvements. It'll add in Game Center support, localization, some new graphics, better gameplay mechanics, more optimized code, and the new game state and menu systems that have all the bells and whistles of Blitz Blok Beatz on your iPhone or iPod Touch!
I haven't figured out how to market my apps on my own, so I'll need some help on getting the word out. There's an advertising service by this guy named
Ed Turner I'd like to try out. If I can afford him ($44 a month over 12 months), then I'll give him a shot!
With all these new improvements, I can apply to a few other projects that I have been designing for over two years now... Maybe now I'm finally ready to put them into production!