Monday, September 28, 2009

Rolling natural 1s.

I seem to be rolling a natural 1 on my attempt to port Sorceror's Stripes onto the iPhone.

The Mac development environment and I really aren't getting along. Every way that I feel like it ought to work, it works differently. Everything that I do so easily in C# seems like a big to-do in Objective-C. I could write a laundry list of grievances I have with how Objective-C works, but that wouldn't be particularly productive. Suffice to say that I feel like it's fighting me every step of the way rather than cooperating with my efforts, and it's a frustration trying to work with it.

I'm also discovering that, independent of the development environment, I'm not particularly good at / don't like the porting process itself. I mean, I already wrote the entire game myself over a period of 2 1/2 months -- writing it all over again in a different (and inferior) language just feels like a tedious rehash of work I've already done. As a result, I unfortunately find that I'm not getting any enjoyment out of it, which further hampers the attempt, and really isn't what I signed up to make games for.

It had just about reached the point where I was ready to hand the task of being chief porter back to my brother, but I've managed to scrounge up enough motivation to make one last heroic attempt to get this environment to cooperate with me. Hopefully I'll roll a natural 20 this time -- I could certainly use one, with all the resistance it's putting up.

- Satellite Observatory (James)

Sunday, September 27, 2009

Progress on a number of fronts


I posted the following to my Facebook page:

Check out my Facebook page at http://www.facebook.com/mlwalker1972

Check out company Facebook page at http://www.facebook.com/pages/Superiority-Studios/137400967209?ref=mf

Superiority Studios submitted our first application to the app to Apple's App Store yesterday. It is a small, free app called Tic-Tac-Awe. It plays tic-tac-toe. We'll see if they accept it, or want any changes to the interface or other standards changes.

With translating our first big game, Sorceror's Stripes, from Windows (where James first developed it) to the iPhone. James came up with a much more efficent main graphics loop in Obective-C, much better than using an NSTimer, which is how I set the graphics up.

Note: We will be selling the Windows versions as well. We are working on a model for selling it, since we won't have the online Appstore to be our storefront. Also, with the Windows version, James and I worry about piracy. We don't want someone just throwing it out on bittorrent and giving it away.

I've also started a little artbook application, to sell some of James' art on the iPhone ad well. James is also officially a member of my development "team" in Apple's iPhone dev program.

In other words, we're making progress :) Making decent games is a lot of work!


Wednesday, September 23, 2009

About to embark on some hardcore porting.

My brother and I have pooled our resources to buy a new company computer: Specifically a Mac mini for my use. Since I have a lot more free time than my brother, I'm going to be taking over the bulk of the work on porting Sorceror's Stripes onto the iPhone, but lacking a Mac, I found myself in need of one to do the job.

It's not going to be easy. I first need to familiarize myself thoroughly with Objective-C, brush up on my C++ (I'm strongly considering writing the bulk of the code in C++ instead of Objective-C for performance reasons), apply a couple of optimization tricks, and then settle down for the long and (I suspect) largely tedious task of translating 10,000 lines of code. It's gonna be a bit painful at first, switching from the cutting-edge C# to these 1980's technologies. Then of course there's the whole memory management issue. (How painful it is, not having automated garbage collection on the iPhone).

But it needs to be done. Porting the game is a big task and I'm the only one with enough time on my hands to get it finished within a reasonable timeframe. Fortunately, my brother has already done a lot of work figuring out how to make things work on the iPhone, so the learning curve won't be quite so steep.

Hoping to have Sorceror's Stripes iPhone version completed within a month. Might be substantially less than that, as long as I don't run into any major stumbling blocks.

Ah, but first I have to wait for the iPhone SDK to finish downloading, it's over 2 GB, and the Internet is being really slow today. Stupid Internet...

Now, I'm off to play some Cross Edge.

- Satellite Observatory (James)

Sunday, September 20, 2009

Sorceror's Stripes Website is Up

And accessible at www.freewebs.com/avienlangley/sorcerorstripes

Too tired and multitask-swamped to really say much more atm.

- Satellite Observatory (James)

Friday, September 18, 2009

Sorceror's Stripes Windows Version Now Working

I solved my Windows release problems and the game now works on Windows.

Problem? Turns out, in the long list of dependencies for XNA games (.NET framework with optional components, DirectX optional components, XNA framework), one of the versions I was using was too recent and wasn't backwards-compatible, thus breaking the universe. Thanks, Microsoft. This just drives home an important lesson that I really should've already been paying closer attention to: Always check the versions of your dependencies and their compatibilities very carefully.

Anyway, this is good news since it means we can consider selling the game on Windows as well as the iPhone. I'll have to discuss those possibilities with my brother and get his input on it.

Now back to working on the Sorceror's Stripes website.

- Satellite Observatory (James)

Wednesday, September 16, 2009

Superiority Studios website is live

I hacked together a company website before going to bed last night. I sort of went for the compact/minimalistic, yet polished and professional look. I'm pretty happy with how it came out -- my only concern is that the advertisement I made for Sorceror's Stripes is slightly on the large side, but pretty much everybody has broadband these days, so hopefully that won't be too much of an issue.


- Satellite Observatory (James)

Tuesday, September 15, 2009

Successes & Failures

I'm the kind of guy who never hesitates to call things the way I see them. For example: I'm not shy about saying that, as far as I'm concerned, Microsoft Visual Studio and C# make for much better development tools than X-Code and Objective-C. But it's not because I'm a Microsoft loyalist. To prove it, it's time for me to reveal the other side of the card. Perhaps I can best explain with a story:

The first full version of Sorceror's Stripes is now done and, as best as my tests can reveal, running like a Mustang. I've converted all the resources for iPhone use, so the porting process should be ready to go. And, as it turns out, I'm very glad our primary deployment platform is the iPhone/iPod and not Windows.

With the first full beta ready to go, I decided I ought to compile a release version of the game so some of my friends can help with playtesting. I hadn't compiled a release version of an application in Visual Studio before, so this was new to me. I suppose compiling a normal VS app is easy enough, but it turns out, in XNA's case, it's murderously difficult.

The first thing I did was select the Publish option to try to create a prepackaged installer for the game. But for some reason, that wouldn't export my audio -- even after compression, the game has 100 MB of audio and the exported audio library was under 200 KB. That obviously wasn't going to work.

So then I tried to just build a Release instead of Debug version of the executable. But when I tried to run the Release exe, it crashed immediately, and I couldn't get it to work, despite triple-checking that the game content was all accounted for. "Okay," I thought, "last resort: Let's go with the debug exe."

The debug executable at least will run... on my computer that I developed the game on, at least. So I copied the debug exe, all the game content, and the files outputted by the compiler onto another computer to see if it would run off the development machine. Unfortunately, it crashed immediately. "Probably missing dependencies," I thought. So I found a forum post by some XNA guru listing the dependencies you need to run a game developed with the version of XNA I'm using... but when I tried to download the dependencies, they wouldn't even download right.

Not to be licked so easily, I transferred the game files onto a third computer and tried to download and install the dependencies on that one. The dependencies at least downloaded and installed on that computer, but even after that, the executable still crashed the moment I tried to run it.

...At which point, after a couple hours of wasted work, I decided to just give up. My big takeaway from this experience was that XNA games are ass when it comes to trying to deploy them, and poking around on the Internet, it seems there's widespread agreement on that point.

On the other hand, my brother Lion has successfully deployed apps onto the iPhone (well, technically, iPod, but if it works on one it'll work on both). It might have been a bit of a pain, but he got it done. All of which, just to reiterate, makes me very glad that our primary deployment target is the iPhone and not Windows. And makes me hesitate not one bit to admit that deploying iPhone games works much better than XNA ones.

The important point, of course, is that at least the development version of the game is working which means that the logic is all sound and the content is all created. So there's nothing standing in the way of porting the whole game onto the iPhone as soon as the speed issues are resolved.

Next task on the to-do list: Build the company website.

- Satellite Observatory (James)

More edits to Tic-Tac-Awe

After watching my kids play Tic-Tac-Awe, I decided to make some edits. One was an obvious one - drawing a line through the path that won the game (a line going across, down, or diagonal). That way young kids can see at a glance how they won or lost.

The other was replacing some sound files for when you win or lose. It now "cheers" and a deep voice says "You win" when you win, or simply states in a deep voice "You lose" when you lose.

I have a couple more things to finish. One is the "Credits" screen, where we will credit ourselves and the author of our music. The second will be trying to squash any memory leaks. The iPhone doesn't have a garbage-collector, which means you have to explicitly release objects when you are done with them. Else you get a memory leak. On the plus side, there doesn't seem to be a penalty for "over releasing" your objects. So when you are done with them, just make sure they are really and truly released.

Well, time to get ready for work.

-the Lion

Programming Marathon

I'm tentatively declaring Quick Match mode fully functional, pending further testing. This is after

- about 2 hours spent on planning and design;

- approximately 8 hours spent writing ~1700 lines of code and 45 external data files;

- and roughly half as much time debugging the random generators (roughly a dozen bugs found and squashed so far; testing hasn't revealed any new ones yet) and tweaking the AI to account for the greater variety of circumstances it can encounter with randomized levels.

...80% of which I did today, the other 20% yesterday evening.

Quick Match mode is pretty cool. It picks a random character for each side from 30 possible characters; assigns pieces and spells based on the characters selected; either selects a pregenerated map (from 15 maps) or builds a new, randomized map from scratch; modifies the piece selections to account for the map's geography; then puts together taunts for each of the characters.

All in roughly 1.2 days work.

Now I just add the company splash screen and the first full beta of the Windows version of Sorceror's Stripes is done. Which should be an hour of work at the most even if I make the splash screen real cool, but I'm exhausted, so I'm saving that for tomorrow. Then I make the last graphics for Tic-Tac-Awe, then start building the company website, then the Sorceror's Stripes site. And I suppose TTA should have one too. Then I have about a gazillion other creative projects pending after all that. In addition to a meeting with a business consultant and a class on online marketing strategies... So much to do.

...I'm tired. Like, real tired. Going to bed now.

- Satellite Observatory (James)

Sunday, September 13, 2009

Tic-Tac-Awe nearing publishing

Okay, the game I've been working on isn't nearly as impressive as Satellite Observatory's (SO's), but it is important to note that the first game that will be out the door, Tic-Tac-Awe, is pretty much complete. All we need to do is finish up the credits screen, and that will wrap it up. Thank you to SO for drawing the graphics for me - his drawing is ever-so-slightly better than mine :) About the time he is finishing up the Windows version of his game, I will be working to launch Tic-Tac-Awe onto the AppStore. It will feel good to have that completed, and to have worked out the process of getting something published.

SO is very nervous about the slowdown in graphics on the actual iPod/iPhone devices. I'm not as much. I know the iPhone has it in her, we just need to coax out the performance. It was much more intensive designing the game itself, including the C# code, which for me is pseudocode for the for the iPhone version. I use C# at work (it is one of many languages I know), so the conversion isn't that hard. The hardest part is finding more time, which, with 6 kids and a full-time job, is not always easy.

At any rate, within a couple of months, I am hoping that both Tic-Tac-Awe, and Sorceror's Stripes, will be available.

-the Lion

Optimizing for Wimpy Hardware

I've looked into optimizing games on the iPhone/iPod Touch a bit and found some promising things to try. Apparently there is a compiler setting in XCode called "Compile for Thumb" or something along those lines that usually increases efficiency unless your code uses a lot of floating point operations, as most games (including Sorceror's Stripes) do, in which case it actually decreases your efficiency -- by a lot. Turning this option off, it seems, can result in substantial speed gains on a game.

It further seems that, surprisingly, there's really no built-in hardware acceleration for audio on the iPhone/iPod, which means it's a good idea to do everything possible to make your audio runs as efficiently as possible. One easy way to do this is to make sure all your audio files are in mpeg-4 format. Ours are currently .mp3s, so simply making this change could give a performance boost. We could also switch to the OpenAL audio library if necessary for additional efficiency.

There are also some tricks I can pull to optimize my graphics files to be less memory-intensive, which I will be doing shortly.

And my brother the Lion believes that, by tweaking the code to redraw only the part of the screen that changes each iteration, we'll squeeze still more performance out of it. My only concern here is that there are times when well over 50% of the screen is being updated every frame in Sorceror's Stripes, so we can't count too heavily on this method to boost our performance -- though, by all means, anything and everything that can increase the efficiency of our code is welcome and desirable.

If we go through all that and we still don't have optimal performance, we can switch as much of our code as possible from Objective-C to C++, because apparently Objective-C incurs a lot of processing overhead and you can improve performance still further by switching to C++. Lion would really prefer to avoid doing that if possible, so hopefully this step won't be necessary -- but it's good to know we have the option if we really need it.

If even that fails to deliver acceptable performance, we can switch our graphics API from Quartz to OpenGL, but that's an absolute measure of last resort.

Anyway, while I finish up the Windows version of Sorceror's Stripes (story mode is done, all that remains is to add Quick Match mode and the company logo splash screen), Lion is going to try implementing some of these optimization tricks to see how they work.

Still proceeding smoothly with the development.

- Satellite Observatory (James)

Friday, September 11, 2009

Our Games Live on the iPod

Once again thanks to Lion, who, when he's not being the business manager by getting us registered and licensed and providing funding for these efforts, wears the "assistant developer" hat by laying all the groundwork for porting our game onto the iPhone/iPod.

He's made excellent progress on this front. He's successfully duplicated all the critical functionality of the game in the iPhone environment, and now that we have a license with Apple, he's even started moving our apps onto his iPod Touch. It's pretty awesome seeing the things that we've programmed working on the iPod. I may be developing our launch game (not counting TicTacAwe) single-handedly, but there's no doubt that Lion's efforts are just as critical as mine -- and I'm really glad I only have to take a small part in the business aspects, and can leave figuring out how to get everything working in Macworld in his hands. The fact that he does all this while juggling a full-time job and a family, whereas I have nothing else to distract me, makes it even more impressive.

The only setback right now is that Sorceror's Stripes apparently runs like a gimpy snail on the iPod at the moment. But there are games with more advanced graphics than ours that run beautifully on the iPod, so apparently there's just a flaw in the port at the moment. Since Lion's gotten everything working so well so far, I have every confidence in his ability to overcome this speed issue. Still, I'll feel relieved when it's running at full power. I get stressed while critical problems in my apps remain unresolved.

What would really suck is if Quartz (the graphics library we're using because it's so easy to use) is too slow to handle the game and we need to switch to OpenGL to take full advantage of whatever graphics accelerating hardware there is in that little device. That would suck because OpenGL is a b!7ch to use, so I'm hoping Lion will be able to get it running fast while still using Quartz for our graphics API.

All this drives home that I really wish I had the funding to buy myself a low-end Mac just so I can code our next game directly in the environment it'll be deployed to, thereby bypassing most of these twitchy porting issues.

As for me, I'm almost done with story mode for Sorceror's Stripes. I will most likely have it finished tomorrow. Closer and closer...

- Satellite Observatory (James)

Thursday, September 10, 2009

Secrets & Lies

Okay, actually just secrets.

Today's topic is secrets in videogames. Secrets have been a long tradition ever since the original Mario had a bug whereby you could access the mysterious "Zero World." This wasn't an intentional secret -- as I just mentioned, it was merely a bug -- but it nevertheless captured the imaginations of players everywhere and launched a very long and proud tradition of developers intentionally putting secrets in their games.

Is this a vital aspect to making your game excellent? Well, no. But is it fun to put secrets in your games? Yes, very much so.

If you're behind schedule or otherwise in major crunch time, you probably don't have time to put secrets in your game; you're busy enough just trying to get all the essentials in. But if you're ahead of schedule, and you've got some time to spare, why not put a few secrets in?

Secrets can take all kinds of forms, from those that have a direct effect on the game, like powerful items or power-ups for your character, to secrets that provide extra content, like hidden levels, to secrets that are purely cosmetic, like hidden story scenes. There are a handful of secrets in Sorceror's Stripes, all of the latter kind. They're not really all that secret -- before each level that contains an unlockable hidden scene, the characters will have a conversation hinting at the conditions you have to meet to unlock the secret -- but still, unless you're playing in Pudding (easy) mode, it's not necessarily easy to meet the conditions even if you have a general idea what they are.

Now I'm gonna get back to work on the last story arc of the game, so I'll stop the post here.

- James (Satellite Observatory)

Wednesday, September 9, 2009

We are now licensed with Apple!

Thanks to co-owner Lion, since he takes care of most of the business matters. Having a license with Apple is obviously pretty vital to selling our game on the iPhone, so this is another big step.

In other news, I'm wrapping up the second-to-last story arc of the game. Just one to go and story mode is done! Then I just need to make the random level generator, add a splash screen for the company logo, and the first full version of the game will be done.

Almost there.

- Satellite Observatory (James)

Monday, September 7, 2009

Keeping Things Fresh

A good game is constantly introducing new elements to the player to keep things exciting. For example, in an effective RPG, every new dungeon or other map provides a new area to explore with potential dangers and rewards; every new piece of equipment has the potential to provide cool new abilities; your characters are continuously leveling up and acquiring kewl new things they can do. In an FPS, you're continually meeting new enemies with capabilities you haven't seen before and finding awesome, more powerful new weapons for blowing up said enemies. And so on.

There are plenty of reasons that you want to keep throwing new elements at the player. New things are exciting because they're unfamiliar. The saying "familiarity breeds contempt" is true. We grow comfortable with things we're familiar with, and comfort breeds boredom. Dealing with new things forces you to stay on your toes; it keeps you uncomfortable, and that's a key element of interest. It appeals to the human sense of discovery and ambition. And, on a very simple level, too much repetition grows tedious and monotonous. Shaking things up with new elements helps fight this sense of repetition.

The rate at which new elements can and should be introduced varies from game to game. There was one famous game designer -- I forget his name -- who claimed that something new should be happening to the player every 20 seconds. I personally think this is excessive and impractical. But the lesson is that you should be throwing new and unexpected things the player's way fast enough that he doesn't grow bored with what he's already seen.

I've been working hard -- very hard -- to adhere to this principle in Sorceror's Stripes. I haven't done a precise level count in a while, but I'm closing in on 100 levels at this point. Even with most of the levels being fairly short in terms of playtime, that is a lot of levels, and the player would grow bored if they were all the same. It's about more than just varying the geography and piece reserves from level to level (although that's important, too). I also regularly introduce new pieces and spells, often with previously incomparable functionality, and new terrain types, some of which have active effects like killing or teleporting pieces. As you can imagine, this is a lot of work. Aside from having to draw animations and engineer sound effects for so many pieces, I have to code all the new behavior and try to make sure it's all balanced. At this point there are dozens and dozens of pieces and spells in the game thanks to my frenzy of constantly introducing new toys for the player to mess with, and new threats for him to contend with. And of course, there are the dozens of scenery backgrounds and hundreds of character portraits I've drawn for story mode.

It's tough on the developer(s) to take on this much work, but the result is a better game. Done well, this obsessive dedication to having meaty content can transform your game from a good one to a great one. More options means more possibilities, more depths, more tactical opportunities, richer gameplay. Don't skimp on the content. It's the lifeblood that keeps your game alive. And as we all know, having too little blood is a very bad thing.

In other news, the porting process from Windows to the iPhone made some more progress today, as assistant developer Lion translated the code for the title screen. Which might not sound real impressive, but it's a very cool title screen, and there was a fair bit of stuff to translate to get it working. It doesn't help that the iPhone port has to be coded in Objective-C, which -- sorry if I offend any hardcore Mac developers here, but even my brother, a self-professed Mac enthusiast, agrees with me -- sucks rhinoceros gnads compared to C#. Wow, is it easier to do... well, anything, actually... in C# than it is in Objective-C.

But that's life. It's a challenge. I'm glad he's the head of the iPhone port and not me. Developing the original version of the game almost looks like the easy part of the job from where I'm sitting at the moment -- 1226 (and counting) painstakingly hand-crafted sprites and all.

- Satellite Observatory (James)

Saturday, September 5, 2009

Gameplay vs. Gamewatch

I freely admit that I am not hip enough to be a Mac guy. The very idea of referring to myself as an "IT artist" kinda makes me want to find a convenient spike to impale in my forehead, and that's probably a good indication that the Mac subculture, as it were, isn't the right place for me. I'm more of an evil, monolithic empire, maniacal laughter and world domination kind of guy, so I feel right at home with Windows.

Moving on. I've just completed the 8th story arc for Sorceror's Stripes, with 2 left to go. (What's a story arc in this context, you ask? Basically just a series of levels with common thematic elements and a common numeric prefix; e.g. 8-1, 8-2, etc., and the associated story segments.)

In this last story arc, I found myself having to present a lot of story material to the player, because there are a lot of plot revelations getting dropped at this point in the story. This had me thinking about the issue of how much time the player should spend playing the game vs. how much time the player should basically just be sitting around, watching a story unfold. Or, to say that in a lot less words, the issue of gameplay vs. gamewatch.

It's an issue that all games have to think about. The genre and target audience are major factors in where the right balance lies. For example, many FPS (First-Person Shooter) gamers have little patience for detailed story presentations and will grow bored and reach for the "skip movie" button if they have to spend too much time sitting around, watching cinematics. Conversely, RPG fans are not only tolerant of detailed story elements but expect them, and will feel cheated if a game skimps on story too much. These are generalizations and there are exceptions, of course, but the point is that different genres should have different gameplay vs. gamewatch ratios. In the most extreme case, there is the "visual novel" genre where there is literally no gameplay and you spend the whole time watching a story, although it's debatable whether these properly deserve to be called videogames.

In the case of Sorceror's Stripes' story mode, I'm shooting for a generous mix where there is a detailed story, but the player rarely has to read through more than a couple dozen lines of dialogue at a time before starting on the next level. (Though there are a handful of longer story segments here and there, the longest of which is in the 3rd story arc.) Players who get bored with the story can just click their mouse (or, in the case of the iPhone version, touch their screen) a whole bunch of times to skip ahead. And then there are some parts where the story takes a back seat for a while and the player goes through a rapid succession of levels with very little narration or dialogue.

The 8th story arc presented an interesting challenge because I had so much story material that I wanted to present, but I didn't want to make the player wade through half an hour worth of story before getting to play the next level. Fortunately, the nature of this part of the plot is such that it was relatively easy to break it into segments and separate those with levels to keep things interesting. But that, too, was a bit of a challenge because I didn't want to sustain the "next part of this extended backstory, now a level, next part of the backstory, another level" pattern for too long or it would become monotonous and contrived. So that, too, required aiming for a good balance to try to give the player the most satisfying experience possible.

To other budding game designers, I would urge you to carefully consider these matters as well. Think about your audience and how detailed a story they expect. Try to estimate your average player's patience for extended story segments. Remember that sitting through too much story at a time can get tedious, and yet so can playing for too long without taking a breather to advance the plot. Balance is key in all things!

- Satellite Observatory (James)

Friday, September 4, 2009

Introducing the cool "Mac" guy

I enjoyed my brother's initial post. Now I will talk a little bit about myself. James and I are the typical "Mac" versus "Windows" pair, though he is younger, taller, and better-looking. Go figure. I'm still cooler. After all, I use a Mac. As Lester says on NBC's Chuck, I am an "IT Artist".

While James has been working on the Sorceror's Stripes game, I have been figuring out iPhone development. This means learning how to program in Objective-C, and mimicking each of the features (animation, sound, input, etc). I am pretty confident that as the C# programming finishes up, it will be a pretty quick task to get the game to run on the iPhone. In doing so, I've created a much simpler game - Tac-Tac-Toe. We will be giving my version of tic-tac-toe away for free on the App Store once our account is set up.

I've also been spearheading getting the company set up (registered, bank account set up, working with Apple to get the Developer Program going). This is why I've been dubbed the Business Manager. Though both James and I are capable to both roles - we're both programmers, we can both work on business activities. We do truly complement each other.

As my brother indicated, we should be ready to deploy our flagship game (not counting tic-tac-toe) in about 2 months. It is something I am very much looking forward to, seeing our own software running on the iPhone.

-The Lion (Martin)

Inaugural Post

First ever post to the official company blog!

Hello out there, Internetland. I'm James Walker, co-owner and lead developer of Superiority Studios -- but on this blog, I'll be going by the clever, inside-joke monicker Satellite Observatory instead.

So what do I do as lead developer? Well, at the moment, I'm pretty much the only developer. This means I do all the programming, scripting, scenario writing, graphics work, and audio engineering. Good thing I'm multitalented. And have way too much time on my hands.

My current project is finishing our launch game, Sorceror's Stripes. It's sort of a tactics-puzzle game that we're targeting primarily at the iPhone (currently in the process of getting a license with Apple). Buuut, I'm a Windows user, not a Mac user, so I'm actually developing the game in Windows using C# and XNA. That's where my brother, the other half of our company, will come into the development equations: He's taught himself how to develop in Objective-C and Quartz, and he's going to spearhead the effort to port the game from Windows to Mac.

Anyway, the core game engine has been done for some time now and I've been creating levels (along with lots of new pieces, terrain types, spells, etc.) for story mode. There are currently 80+ levels and, coincidentally, I'm also about 80% of the way done with story mode. After that, all that will remain is to code a random level generator for quick match mode, a task that I'm really looking forward to, because I love making random level generators. Looking at 2-3 weeks of work still 'til the game is finished.

Then we'll simultaneously commence in-house beta testing and porting the game to the iPhone. I'm guessing it will be about another month after the Windows version is done before we have a deployable Mac version.

And that's pretty much what I've got on my plate at the moment. In between playing Mana Khemia 2. Which, btw, is an awesome game and I heartily recommend it to any RPG fan who owns a PS2.

Well, now I've introduced myself. Hopefully my co-owner, brother, and comedic foil (!) Martin will stop by to introduce himself as well before too long.

- Satellite Observatory (James)