Sunday, February 12, 2017

Araxxis Squadron Alpha Completed

I've completed the alpha build of Araxxis Squadron and plan on uploading it to get some feedback soon. Here are some screenshots...

Saturday, January 28, 2017

Araxxis Squadron

My real-time strategy Zyrtuul was probably my favourite project. However, over time I came to realize that the scope of it was too large and that, as a result, it was unlikely to ever reach completion. So I decided to cut my losses and put it on hold indefinitely.

Out of the ashes rose a new, simpler game, Araxxis Squadron. I had put in so much work on Zyrtuul, and didn't want to let all of that time and effort go to waste. So I salvaged the game and decided to convert it into something new.

This new game is called Araxxis Squadron -- Into Legend. It has the feel of an old-school arcade space shooter, but there are also strategic elements, in that you have to penetrate the enemy's base to destroy their outpost core. So it feels like what you'd get if you took the old Asteroids or Space Invaders games, and added in strategy elements.

Tuesday, June 28, 2016

Shimmerblade: A Side-Scrolling Platform Game

One of my newest and more promising game prototypes is a side-scrolling platform game, using retro 2D game mechanics (reminiscent of the 8-bit and 16-bit era of gaming where side-scrolling platformers dominated), while using 3D models and modern graphics techniques.

The game is inspired by some of my childhood gaming memories, borrowing ideas and elements from (apparently quite obscure) games like 'Wonderboy in Monster Land' and 'Wonderboy 3: The Dragon's Trap', both of which I played extensively on my Sega Master System back in the early 90s.

Wonderboy in Monsterland

Wonderboy 3: The Dragon's Trap

I started work on it in early February of this year (2016) and made significant progress between then and the end of May (realised that you can get a lot done in four months if you push really hard, start with a lot of good content, and make good re-use of code from previous projects). During the early stages the focus was on implementing basic side-scrolling platform game mechanics. I re-used some code from one of my projects from a few years ago called 'Shroomsters' (albeit with a fair bit of modification).

I'm targeting PC for a change so that I can focus on nice visuals without too many limitations. It's a nice change from mobile and allows me to not worry about overall scope and technical limitations as much.

I put a lot of work into the visuals -- tweaking materials, coding up various shaders and getting the post-processing effects looking good. The scenes are crafted by hand (with the help of some high-quality outsourced art). I've made use of various post-processing effects, including bloom, screen-space ambient occlusion, radial light scattering (sunshafts / god rays) and FXAA (anti-aliasing achieved via post-processing).

The scope of the game is quite a bit larger than other projects I've focused on in the last two years or so. Previously I had made the decision to deliberately scope down my games because my older, more ambitious projects turned out to be too much work to complete by myself in a reasonable time frame.

As such, rather than working toward a complete product, my initial goal is to finish a vertical slice -- that is, a portion of the game (a quarter of the final game, for example) that is complete and playable in something resembling its final, polished form. From there I can release it as a demo and, depending on how the cards fall, decide how to proceed. Despite some solid progress, a lot of work still remains. By the end of May I had run out of steam and progress slowed, but I hope to get back into it soon.

On a related note, others seem to share my enthusiasm for the Wonderboy games and have also begun working on similar projects. These are larger companies with teams of artists working on them full-time, so even attempting to compete with them would be futile. Fortunately, I've taken a fairly different approach and so mine has a very different look and feel.

I definitely plan on playing the aforementioned games when they're ready though (they both look amazing). One is Wonderboy: The Dragon's Trap (a modern remake of the original Wonderboy 3). The other is 'Monsterboy and the Cursed Kingdom' (inspired by the original, rather than being a remake).

Saturday, June 18, 2016

The Bloody Glade 99.9% Complete

I just realized that it has been about 9 months since I posted about the progress of The Bloody Glade. At the time I estimated it to be 80% complete. For the most part that was accurate -- as with most projects during the later phase it became difficult to maintain pace and focus, so I took a break from it to focus on other projects and allow my enthusiasm for the project to be naturally rejuvenated.

I find that pushing myself too hard with a single project for too long eventually starts to rapidly diminish how much I like the game and to hinder progress. Taking a break and coming back to it later gives some perspective and a fresh eye.

I recently took to fixing those bugs and issues that I had been avoiding, and added a bit more polish, tweaked the gameplay and stats a bit, and removed a few game mechanics. One of the main mechanics I disabled was quick-time events for spell-casting. Previously you'd need to perform rapid tap or swipe motions in order to successfully cast a spell. In theory it sounds good, but in practice it felt like it interfered with the flow and pace of the game. So I decided to streamline and simplify it. I find the new, simpler version more fun.

A big problem I faced was performance on mobile devices. I found that creating enemy characters on the fly, as each stage progressed, was creating lag spikes and momentary freezes. It was nothing dramatic, but enough to provide an inferior gameplay experience to what I was experiencing on PC. I eventually found a simple solution -- simply pre-spawn all characters at the start of each level and enable / disable them as needed.

I've finished creating the promotional content and have thoroughly tested it on iPad and iPhone. There was an obscure crash that was happening during the final boss battle but, I think I've fixed it now. Another round of testing should verify this (hence me not making the 100% complete claim, and saying 99.9% instead).

That makes two games pretty much ready for release: McGrimm's Time Trap (yes, I still haven't released it) and The Bloody Glade. I'm still deciding which to focus on releasing first.

Sunday, May 8, 2016

McGrimm's Time Trap

Last December I was on a plane returning from Cape Town to Durban and I spent the time contemplating game design ideas. The concept I came up with was a simple action-based evasion game where, instead of having computer-controlled opponents, it stores and repeats player-generated gameplay. Basically, you become your own opponent.

This evolved into a time-travel based concept where the player is cursed to repeat the same scenario over and over again (like in the movie Groundhog Day). Except, in my game, your previous incarnations would still be present. Occupying the same space as your previous selves would disrupt the space-time continuum, and so you must evade previous versions of yourself.

On the technical side there was a bit of work involved in order to store and replay the player's actions in a way that would not be too memory-intensive, but at a high enough resolution so as to be accurate. Fortunately it ended up working well without much hassle (basically I just store snapshots of the player character's state periodically and then, when replaying, use interpolation and extrapolation for generating state information between snapshots). The core gameplay was done over the course of the next few days.

Of course, adding polish and getting something that is bug-free and fluid enough to release ends up adding significantly more time to any project, and I (like many developers) tend to lose interest and thus neglect most of my projects after the initial creative proof-of-concept phase.

But I've been trying to be more disciplined and follow through on my projects, so I recently spent some time getting the game ready for release on iOS. It's pretty much done, I just need to push through that last cumbersome step of actually deploying it.

I struggled to think of a good name. I ended up going with "McGrimm's Time Trap". I  don't dislike the name, but don't think it's amazing either. It sounds pretty generic, but I can't think of anything better.

Thursday, September 17, 2015

The Bloody Glade Hits 80% Pre-Alpha Milestone.

What I'd ordinarily consider a reasonable bedtime (for a work night) came and went about an hour ago. However, I've been thoroughly absorbed in trying to complete a few tasks in my current pet project, The Bloody Glade.

Levelling up... you have to press the button at the top right to select new spells.

I still have 3 spells to polish off, various bugs to fix, a few extra enemies to finish off (need to make them more interesting), and a bunch of miscellaneous tidbits to deal with. But I looked at the plan I had laid out for myself and it seems to progressing well. According to my previous schedule it looks like I am 80% of the way to what I had planned for the initial "somewhat finished" alpha version.

The Earth Shatter spell spews rocks and dust from the ground around the player. This is the lowest level variant. As you level up the spell it becomes more potent and visually dramatic.

Scope creep has unfortunately kicked in, though I'm trying my best to resist it. I'm keeping to my "cool stuff can be added with updates, get the initial game out there" philosophy and trying to complete it as per my initial design. With that as the goal it looks as if I'm almost there. But, of course, when you think it's 90% complete, it tends to only be about 50% complete in reality, so don't judge me if I'm wrong here (and I probably am).

The glorious early stages were characterized by fresh ideas and cool new features rolling in hard and fast. The late stages tend involve dealing with an endless list of bug fixes and hours and hours and hours of work that doesn't yield obvious tangible results to a casual onlooker.

Anyway, I built the latest version and grabbed a few screenshots of each of the three current playable characters in action. I dumped a few screenshots above (because reading without pictures to break up the text is boring). From here on there are only screenshots...

The wizard's level 1 fireball spell. It also looks far progressively more impressive as you level it up. 

Hard to tell from the image, but there is a spike trap near the wizard with metal spikes that periodically thrust up and do damage to anybody foolish enough to be in close proximity. I want to add two more trap types, though doing so will add about two extra more nights of development (which, given that I only get a few nights a week to work on this, equates to about an extra week). Should be worth it though.

The wizard's fireball spell has been levelled up and now does explosive splash-damage.

 Various stats are displayed when you complete a level. I want a social aspect that allows you to compare how you did, what items you collected, which spells you used etc to other players (the 'other players' button accesses this functionality). I'm probably going to delay this for now though.

Selecting a new spell when you level up.

The abomination character is so bad-ass that skeletons pretend to be asleep as he approaches just so that he doesn't hurt them (not really though, I actually just insta-killed them with a debug cheat key).

The enchantress has an area-of-effect lightning storm spell.

If you look carefully you can see the purple-robed fella to the right dropping a ring. The inventory system is deliberately very simplistic (I want to provide non-casual aesthetics to a more casual audience).

An ice storm spell inspired by fond memories of Warcraft 2 (which happens to be one of the old-school soundtracks I've often listened to while developing this all).

The wasteland scenario -- I am very fond of the ground texture.

The little critter to the left just stole a health potion (he gives a hearty little giggle and taunts you as he does so). A friend who play-tested for me protested that it wasn't clear that you were about to be robbed -- that I should make it more obvious. "Bah! Nonsense!" was my response. I like it just the way it is. You'll know better next time.

Saturday, September 5, 2015

No Crashy Spaceship

In late January this year I was close to having Doombot Arena ready for release. At the time I wanted to focus on mini-games where I could keep the scope really small so that I could focus on actually releasing them and get familiar with the deployment process on the Apple store. I decided to leverage a lot of the work I'd done on Doombot Arena and build a similarly small-in-scope game based on time challenges. I started working on a racing game, but found that the standard techniques suggested for car physics in Unity to provide an experience that was not quite as fun, frantic and simple as I was looking for. And so I decided to change course and go for a spline-following approach. The result was No Crashy Spaceship, a game which is essentially an infinite-runner (a genre in which you attempt to dodge obstacles to see how long you can survive).

Note before I proceed: I have interspersed this wall of text with a few screenshots to make viewing this blog post less of a chore to read.

I have subsequently started working on games that are somewhat larger in scope -- games that I am more passionate about. As a result, my enthusiasm started to wane on this project (my larger projects running concurrently just offered more of a challenge). However, I recently decided (after looking at the graveyard of unfinished and almost-finished projects I have lying around) that I need to stay the course and make more of an effort to finish and release.

The overall look of the game was inspired by Tron (having watched the animated series I became quite fond of the dark background contrasted with bright lights; it's a unique sci-fi look that I feel is very effective). The initial work-in-progress name was 'Lunatic Skyway', but after chatting to some work colleagues about it we concluded that the name was a bit bland and generic. After throwing around a few names I threw out the whacky 'No Crashy Spaceship' idea (as a joke). There were laughs all-round and unanimous approval, and so I decided to go with it.

Initially it was far more fast-paced and frenetic. I played it so much during testing that to me this felt like a suitable level of challenge. User-testing confirmed that I was utterly mad -- the game was completely intimidating to first time players. So I have toned it down a lot. When I watch friends play it on my iPad I'm always commenting about how I've made it too easy (the whole point in my mind was for it to be ridiculously difficult to simply not die almost immediately -- think Flappy Bird levels of frustration). However, not a single person who has tested it agrees and the consensus seems to be that having a slightly gentler difficulty curve makes it more fun. The speed does ramp up significantly with each lap though. I laughed when people were commenting how fast it gets a few laps in (my initial speed was WAY faster than that, even on the first lap). I think I have to acknowledge that I have an overly active brain though (and the attention span of a newt) -- a wiser course action is to accept that complete sensory overload isn't palatable to everyone.

As it stands it is pretty much ready for release, though my latest play-through did uncover one or two minor bugs which I'll have to fix first. Creating the promotional screenshots (which are the images you see here) has been a bit of a trial because the Apple store requires images of various vastly differing resolutions and aspect ratios -- trying to cater for all is a bit of a nightmare. This is one of the tasks that I have been avoiding. I could have released a few months back had I not been so reluctant to just whip myself on the back (like a Catholic monk fervently self-flagellating himself) to inspire enthusiasm and force me to go through the schlep of it all.