Xerra's Blog

Drunken coder ramblings

Rockman development posting —

I’ve posted the following write up about the development of Rockman on both Syntax Bomb and the ItchIO page for the game so I thought I’d also put it up here as well.

Rockman is my entry in the aMAZEing code a game competion

As a kid I loved playing the original Vic 20 game so this is my re-imagining of the game for modern computers.

The game features 20 caves each containing 8 gems and lots of nasty rocks that are going to give you more than a bump on the head if you let one fall on you. Rather than the conventional idea of clearing a cave to then be shoved into the next one, like Boulderdash, Rockman was novel in that it had it’s own mini-maze of caves in a map where each cave had exits leading to specific other caves. You would have to backtrack through areas you had already cleared to get to the new caves which meant you had to have a good memory for the layout of the area or draw your own map.

The original game never supplied you with this, so you had to stumble around back and forth until you eventually managed to clear them all. Fortunately I’m not so cruel and you can get a map in this version just by pausing the game. It won’t show you which caves you’ve cleared and which ones are still left, but you do get a rough idea of the layout on each map so you can work out where you are.

A few hopefully interesting bits of trivia about the development of this game:

I started working on Rockman around 3 days after the competition theme had been announced as I wanted to give myself time to really make sure that I knew what I was going to aim for rather than run blindly into something too ambitious like I did with the previous competition. Nobody wants to fail again and I was nowhere near finishing the last competitions game – and that had two extra weeks.

Among the games I was looking at for some inspiration were the following:
Nonterraqueous, Boulderdash, Gauntlet, Pacman, Doodlebug, Rhino and Radar Rat Race.

I’ve already written Boulderdash once with GMS2 – just never released it as it’s not quite finished, so that one was ruled out.

Rhino was a very early Basic game I played again on the Vic 20, which involved trying to reach an exit in a maze while avoiding the Rhino’s that were hunting you. The only snag was the Rhino’s were not visible to you until they had you in a line of sight. A very clever game for the time but I wasn’t sure it would make for a good game now.

Doodlebug was a Pacman clone I enjoyed as a kid but didn’t feel it would bring anything interesting to the maze theme.

I felt Nonterraqueous wouldn’t really work because, even though it was a good game at the time, complete with hundreds of screens, they were all very similar and shooting stuff while moving around them isn’t that engaging these days. Besides, who wants to type Nonterraqueous all the time afterwards when you’re writing about it?

Radar Rat Race almost got decided as a safer idea to match the maze theme and I would have gone with that if Rockman wasn’t considered suitable for entry when I asked at the start of the competition if there would be an issue doing it. Maybe one day I’ll have a crack at that one as well.

As I’d written a Boulderdash remake before, which is very close to the original, gameplay-wise, I thought at first that this would give me a good leg-up in doing Rockman because the idea of collecting diamonds in caves while avoiding rocks is the core dynamic for both. Rockman also doesn’t scroll the screen and relies on exits opening when the level is clear. In the end it actually worked out to be quite a bit more challenging as I had to work out how to do the map layout and the rocks worked differently as well.

I wanted to use the original map designs from the Vic 20 game in mine so the first challenge was working out a good all-round window size and then setting it up so the layouts would be the same with much more detailed graphics. In the end I went with 64*64 pixel for all the gameplay elements apart from the exit doors which are double height or width, depending on which part of the screen they are on. My idea of re-imagining a game does mean that I don’t want to clone it exactly but keep the elements that work really well, and the map layouts actually do because you have to be very careful and think about what you are going to do to move certain rocks, or you end up being forced to restart the level. That will cost you one of your lives for that.

One of the things I realised very early on when I had a basic character moving around clearing earth on the screen was that I wanted to try and improve on the original game and pixel move the character rather than just move in each direction as a character block jump. The Vic 20 never had sprites so, unless you were very clever with with rotational assembly instructions to roll the bits in a byte thus shifting pixels in a character to simulate pixel point movement, you just moved the character one space forward in the screen memory map – which was 8 pixels a block. As the Vic 20 had a very low screen resolution this was glaringly obvious that you did that but 99% of the other games did as well, so it was acceptable. With my Boulderdash remake I did the same thing to emulate the original game but I did it the hard way with this game and it actually changed how you played the game in a big way. Not to mention making it a nightmare to get the rocks movement right at the end of development. More on this later.

Now the original game was hard. Too hard, a lot of people, myself included, thought at the time. The reward on that, however, is it’s brilliant if you can actually nail it. I managed to complete the original game once, probably a couple of years after owning it, and the elation I got from actually doing that was amazing. And that, to me, was because it was so bloody hard. I wanted Rockman to be a tough game for people who wanted it that way but also have a way of playing for people who don’t like things so tough because modern games go that way now. So I gave this a serious amount of thought in development and, after tossing ideas like turning some features on and off, and going for a three skill levels system, I think I achieved that.

Rockman on level one does not have any static skulls on the screen, nor the moving butterflies (who are nasty as hell, even though I slowed them down to a crawl and dumbed down the AI). So what you end up with is basically a puzzle game where you shunt rocks around without distraction (unless you still kept the timer on) to get to all the gems and finish the game. That mode is how I mostly play it and will probably be the most popular. Level 2 has one Skull and one Butterfly to deal with and level 3 is two of each – for the really hardcore players. Another change almost forced upon me by going with the pixel movement was that you could no longer move through earth and support a rock directly above you because it breaks all the rules of common sense now. If I deleted the earth as I moved through it in pixels then it’s going to drop on me now whereas in the original game I’d deleted the earth and was already holding the rock in place with one movement. One of my two testers complained very negatively about me making that change but I resisted the urge to revert it back because it was both too late in the day and because I liked it. Especially when playing without the other gameplay elements as it’s still now a challenge.

Playing Rockman on level One is now a good experience, I think. Even if it does mean all the work I did on the other elements isn’t appreciated. One of the bad things about it, however, is that with no Skulls on screen then you don’t get no cake when the cave is actually cleared. Sacrifices, and all that.

Another thing I didn’t consider much back in the Vic 20 days about the original game was that there was no allowance for unfair map layouts. You could spawn in and literally have a bad guy right next to you on the map so you lost a life unfairly. Also you sometimes had levels where a skull could be positioned in such a crap position that it was impossible to actually finish that level, causing you to throw yet another life. That’s not fair and no game should ever be allowed to get away with that. I realised early on that I couldn’t get away with letting that happen as well but that coding around these situations would be nigh on impossible for me. So I remember another Rockman type game from around ten years ago had a feature where you were given a bit of time on entering a new level to quickly look at the map and decide if you wanted to play it that way or not. If you didn’t like it then you could press the restart key before the countdown finished and it would be redrawn. That seemed an acceptable solution to me so I did the same. Remember that this only changes the position of the Skulls and Butterflies, though, and you still have to contend with the rocks placement where they are.

I didn’t keep any logs of the hours I spent working on this game or blog about it, unlike my previous competition game, Envahi, where I kept detailed records. I was working with a six weeks deadline this time rather than the generous ten weeks I got to work on that one, so I kept focus. I probably worked around 80 hours or so doing this one. I probably worked a couple of hours every couple of nights and had three or four sessions where I spent a morning or afternoon on the weekends. My process was keeping a list of stuff that needed to be done, current bugs and stuff that I could implement if I had time. When it got near to the end of the competition deadline I had only one feature that I ended up not doing which was the cave editor. I was hoping to maybe have a seperate set of maps that the player could play with from a template build so they could put their own exits, gems and rocks down and lay them out in a map format like the built in ones. It’s a shame I couldn’t have kept that because it wouldn’t have been that hard to do.

Towards the end of the work on this game I kept a clear bug list and just considered every item that was on the stuff that needed to be done as a milestone and just whittled them down one by one. When I got to two days to deadline I was down to three milestones left and thought I was on easy street and could finish with a day to spare like Envahi. Then I would have time to set up a decent game page on ItchIO, update my website, blog some stuff, create a PC and Mac build, and still have plenty of time to post my entry on Syntax Bomb for the last day. As always this was not what ended up happening.

Anyone who’s ever written a game will tell you that the last 10% of any game may as well be the last 90% because that’s how much more you actually really have to put in. Something always breaks, other stuff needs to changed to work with the things you’re adding, bugs seem to come up that you’ve never seen before but should have logically been seen and fixed early on, and you always get too ambitious with that “oh, wait. Let me just add this…”

3:30pm on Sunday afternoon I’ve got the last of the graphics for my game and finally have both the playable characters in and working correctly. One of my testers reminds me that the rocks in my game still look like Oreo’s and they are still moving into each others spots and seem to be merging when there’s a few moving around. No problem, I think, because I’ve now just put in the new graphics for these rocks and I’m now down to the last bit of the game to fix, which was sorting out the object code for the rocks to stop this happening. I made a massive mistake in putting this part of the game off until the end because the original code was practically the first bit of work I did for the game and I knew it didn’t work right back then. I knew it was going to be tricky to get it working properly with the pixel movement of objects so I went off and did the rest of the game, meaning to come back to it when I was in a better frame of mind to get it done.

This almost cost me the deadline because I ended up having to recode the entire character movement for the player object and also the Butterflies so that collisions between them all would work better. It doesn’t sound much of a problem at first unless you know a bit about how gamemaker works because I wasn’t using the built in collision system but actual object searches because the whole playfield is built out of objects rather than tiles. So after frantic coding all evening trying to sort out the mess, I actually had the final Mac build not ready until about 11:20 pm. Then I had to copy all the code onto the slowest USB stick ever and fire up the old PC to create a Windows build – as per the competition rules. Of course GameMaker needed to update itself – which on Windows requires a reinstall, and not being able to find my login details because it hadn’t been used for ages.

Rockman finally got uploaded onto Itch and the forum competition post at 11:54pm – Six minutes before the deadline. I honestly thought I was going to miss it when things started going pear-shaped. I hope I never write another game that goes that close to a deadline again.

So, in retrospect, I think this is now the best game I’ve ever written. It’s probably not saying a lot but I am my worst critic so I’m secretly hoping people like it a lot more than what the realist in me is saying. However, I am hugely proud of it, because it was hard work. And I realised fairly early on that it was worth engaging a graphic artist to make it look worth it as well. It’s a competition and, as much as I’d like to win it, I’m not going to but that’s not a bad thing. The competition deadline is what I needed to actually get the game finished and at a level where I thought it was worth entering.

So now I’m looking forward to playing some of the other entries and maybe not coding anything for the next few days πŸ™‚

I hope you all enjoy playing my game as much as I enjoyed creating it. Apart from those last two days. Oh, god, no. Apart from those…

Rockman is released —

I’ve been very quiet last three months because I’ve had my head down working on my GMS2 project files and the latest Syntax Bomb competition. We had six weeks to complete a maze themed game this time and I managed to upload and post Rockman with 6 minutes to spare. Very uncomfortable the final few hours of working on that. Luckily it all came together in the end.

You can download the version I have on ItchIO with the link below. I’m not able to change or fix anything to do with the game until after the competition deadline but, if any problems crop up, then I’ll sort it after that.


Rockman is a re-imagining of the Vic 20 game from 1984. I kept the original maps and the gameplay is very similar but I’ve done many improvements in other areas. I’ve used the same graphics artist who worked on Envahi and Ram for me again.

Let me know what you think.


RAM update and moving forward —

Sorry for lack of updates the last few weeks. I was much busier than anticipated both trying to get the game finished, and the additional weekends that I’ve spent away doing stuff like weddings and stag do’s. I’m also just back from a weeks holiday in Spain so I’ve been a while away from the computer recently.

Unfortunately I never got RAM finished in time for the competition this time so I had to pull it out of the event. It was a shame as I’d invested some money into some artwork for it as well as a considerable amount of time in programming hours. I can’t use the project for a future competition as the rules are very clear in that any game I create has to fit the competition theme and something completely written from scratch, so the game is to one-side to finish outside of time dedicated to the next competition if I enter. Which I can’t see me turning down as it’s a good experience writing my own entry and voting on others.

There’s likely to be a couple of weeks or so now before the next one is announced and starts up so I’ll maybe have time to get it done there or use the time to move over some of the new stuff I’ve done in RAM into my framework to maybe save me some time working on the next game. I kept a lot of notes on stuff that I worked on for the game in the project and coded to make it easy to lift the functions more or less intact so it wasn’t a waste of effort, even if I don’t get to showcase it like I did for Envahi.

I didn’t do much on the framework while I was doing the game so it will be handy to get back to fixing some problem areas in that I noticed when I imported the current build to start on RAM. I’ve kept track of the version of the framework each time I’ve used it for a retro project on version 2, RAM used 4 and I used it last night to put together the background project for a remake of my game Infection that I’ll pick up at some point and that’s number 5. All the time I’m working on small games and modifying the framework is improving my coding no end so it’s good to be productive, even if I haven’t quite got the latest game over the line.

So where have I ended up with RAM to date?

Currently the game is at revision 16. The game cards all work fine and are shuffled and dealt correctly. There is some kind of small bug which is moving cards incorrectly to the computer hand at present along with no visual display of the cards in the stash if players draw on the stats and have to play again to win the whole pile. These 2 bugs and problems with the game round counter were left as I went on to finish the front end menus and complete the story before running out of time.

The menu’s and most of the front end stuff is now finished and I had almost finished laying out the story pages into graphics to layout in the game as well as a credits screen to put in similar to how Envahi’s worked. The code is all there to have it working fortunately.

Most of the work that needed to be done was having the play section work based on whatever game mode we were playing and to have the round sequence bug fixed so we could finally actually finish a game.

Looking at my to-do list in the project I still need a coin system for purchasing computer parts – possibly another menu system for this, or just have some buy buttons under the image of each part on a new screen. I need to still replace a few of the computer images that I did a piss-poor editing job with.

Also there needs to be some kind of basic help screen to explain each game mode and the profile save/load stuff code was in but untested until I could finalise what info I needed to actually save in it.

After that it’s mostly presentation stuff such as game completion screen for winning story mode and maybe a different AI system for the baddy of the game, Morpheus.

When it’s written down it’s quite a bit more than I actually think so, in some ways, maybe it’s better that I hadn’t tried to cram it all into 8 weeks of work after all. Realistically the 8 chapter background story to the story mode of the game that you unlock a chapter from each round could have taken all that time on its own – if I’d let it.

When I get back to it I’ll be finishing the core game stuff rather than digressing onto the front end bits as I’m not on a deadline now so can at least give it the time it needs to be done properly.

So I’ve learnt a lesson here about being realistic about what I can actually do when I’m working to a deadline. I’ve kept an hourly log of my work on RAM for all that I’ve done so far and it already far exceeds what I took for Envahi. And this game had only 8 weeks to be completed whereas that game had 10. Next time I intend to put a week into just the game idea and design before I start anything so I’m a lot better prepared and pretty certain I have the time to complete whatever I come up with.

On the plus side of this competition business, Aaron, my partner in coding games, entered this time and did get his game over the line. And, to make it even better, his game, Triss, came in second place. A very worthy achievement. You can download the game from the links on this page or just go to:

Triss by Morpheus


Some W.I.P screenshots of RAM – very early so subject to big changes —

Here I’ve got a basic mock up of how the in-game gallery of computers will work – the actual title screen at present due to no menu yet.

Also a couple here where i’m experimenting with gradients on cards – player can select whichever one they like best and I’ll save it to their profile or something.

The font doesn’t work well with the cards so that will change. Additionally there will be options to change the text colour as I can’t account for all the background colours and automatically switch to a suitable text colour for that one. Easier, and much more friendly, to let the player decide. That part will eventually work – at the moment it’s crashing due to some fault in my datatable for the colour macro’s.


At the halfway point on RAM. —

First of all, now we’re at the halfway point of the competition, my game has a name. I’ve opted for RAM – something short and to the points. Easy to remember, and you could play around with words based on the acronym. As computer people will know, RAM is an acronym for Random Access Memory – or Rabid Ageing Marshmallows – if you feel like it. I won’t judge you.

So, what started out as 36 cards actually ended up being 48 to-date. I don’t think I’ll put in any more now as I’ve already had some feedback and the images for backgrounds and cards on each one has taken a big chunk of the development time already. As it is I’m also now considering using a scaling system on just the larger images to use on the cards instead of the smaller images because I’m still not happy with them.

As detailed previously, the data setup and loading code is complete – in so much as not adding any more cards. I may have to edit some of the stats once the cards are playing against each other for balancing, but I am currently working on how the cards will look at present, so that’s once the shell game works. The cards and backgrounds looked terrible on first attempt and I’ve changed it so there are gradient effects as the background of the fronts now where the player can choose their own preference as a starting point to improve on this. The game is all about these cards so they have to look ok, even if it does take a bit more time than I would like to get it right. If I have to draw a line to get on with the game then I will need to go back to these before anything else when it’s time to polish up the game a bit.

Of the game menu options I’ve only got the gallery running at present, mainly because the large computers is the only part that’s properly done. The game doesn’t even have a menu at present so just uses the gallery on the title screen for now.

I’ve commissioned an artist to draw the super computer that will be built up in freeplay mode so hopefully will have those graphics by the 14th of June, so I have time to build it into the game. Not sure how this part of the game will work but it will be something like the total points stat turned into currency over 30 rounds of a game.

I’ll try and keep this blog updated weekly for the last four weeks of this games development.


New competition, new game —

Syntax Bombs next game coding competition started on May 4th so I’ve had this bank holiday weekend to have a think about what I’d like to do this time. There are three category mixes to go for and the idea is you have to pick one of them and follow both the types of game:

Option 1 : Retro / Strategy
Option 2 : Puzzle / Endless
Option 3 : Arcade / Open World

I had to think about this for a while as I did a retro/arcade game last time which, while not applicable this time, it would be all too easy to just do the same kind of thing again and pick an old game to remake. However, I’ve already been on and on about how I maybe shouldn’t have actually done this last time and gone for something a little more original. Certainly everyone else did and I felt that maybe Envahi might have been looked upon better if it was something truly different.

So I’ve no intention of going with some kind of arcade shooting game, or anything remotely like that, in all honesty. So out of the three options we’ve been given, I pretty much ruled out option 2 almost immediately. A puzzle game isn’t really a puzzle if you can’t complete it, or it goes on endlessly just extending it (is that even viable?). The categories were chosen randomly and that one is a no-brain skip. I’m glad that wasn’t the only option.

Arcade / Open World does not work for me based on my earlier decision and I’m not sure a game to be written in 8 weeks can even be made open world, as you’d have to have a clear end-goal very early on and code to the limitations of the deadline.

So, Retro / Strategy it is. Coming up with a game idea was much easier once I had that set in mind.

I did have an idea of a kind of puzzle game I wanted to recreate as a coincidence before the competition was put in place but I don’t think it would actually impress anyone so I skipped the idea as something to create myself another day, outside of a deadline and any kind of judging.

With a game idea in mind I’ve definitely set my sights high in what I can realistically get done by the submission date. I wanted to use the old home computers from the 80’s as a theme and I always thought doing it with some kind of card game might be the best way. Top Trumps was a core idea to build on, I always thought, so I’m now swinging towards that but with ideas to expand on it to have a game that has several ways to play – including a chapter-based story mode, if I can pull that off.

I don’t think I’m completely there with the whole design as yet so I’ll elaborate on some of the game modes I’m planning in a later update. For now the core mechanism is going to be the four categories of each card and picking what you think is the best stat to capture the opponents card. I’m adding a couple of extra stats onto each card which will be used for other game modes that will mean the strategy to win the game will be different. For example a seperate value stat that obviously bigger is better so you would want to hold that card and perhaps try to lose the cards that have a lower point value deliberately, even if the other stats are good. That part will still need more thinking, however, as a card with any points value is better than losing one altogether, so maybe cards are swapped instead.

Another option will be a good/evil stat on each card. Every one has a number of one type and, if you’re looking to win the game for good, then you really do want to dump the evil cards as soon as you can, and certainly before the number of rounds expires.

Over the last couple of weeks I’ve been tinkering with the start of a project framework that’s now got the the useful stage, in that it saves a fair bit of time getting a new game up and running. I’m now using this as the start point for the new game – name to be decided although I think I’m set on it now.

The first three days have been accumulating data, such as free wiki images of retro computers, and getting all the data for the four main stats that the cards are going to have. To add to this, there’s a trivia line on each one, and possibly some other information that will be used in the final csv export of this data. I’m obviously using a csv file instead of coding the data within the game as it makes it a lot easier to make adjustments once the actual card code is written and gameplay can be tested.

Yes, it’s really taken 3 days of work before I even started on the game code, there’s so much design work to do for this game. I’ve got an idea of implementing a freeplay mode additionally, which is where the player just plays matches to earn coins and has to save enoughΒ  to purchase each part of their own super computer. I might need some graphics work commissioned to be able to get that done, however.

I have until June 30th to get this done and submitted so early days yet…


And the winner was … —

Not Envahi, as it turns out, but that was to be expected as the games submitted were excellent.

Third place was a nice little bonus, however, even if it was only because the holder of the competition always discounts the votes on his own game – and his was the winner by far.

I even earned a bit of prize money for the competition result although I won’t be quitting the day job just yet. Full details of the competition can be found here.


I’m now waiting on the next competition which runs for 8 weeks starting on May 4th. No Star Wars remakes before anyone comments on the date. The theme is yet to be decided so no idea of what I’ll be doing as yet. I’m spending my coding time working on improving my GameMaker studio 2 framework and tinkering with a retro game idea until then.

Remaking another old game for the hell of it —

I was going to go straight back to the reworked Boulderdash project that I paused to code Envahi but decided to do something else first. The competition which I entered Envahi in has its voting finishing today so it will probably not be too long before the guys at Syntax Bomb start up another one and I’m pretty keen to have another try. As it stands it looks like Envahi has made third place when you discount the site owners own game as it’s only in there for voting and doesn’t count among the prize places. It sounds like a good achievement for a first time entering a competition like this but there were only six entries – and one was actually incomplete so wasn’t voted on by most people.

Anyway, I wanted to do a bit of coding in the meantime until the next competition was announced so I’m tinkering with a retro remake of something that I’ll talk more about if it works out just to test myself on something a little different. I’ve only had a couple of small sessions with it at present and it will be put to one-side if it’s not finished by the time the next competition starts, but it’s something to keep me occupied as I wanted a break from the boulders for a while anyway. I will come back and finally finish Boulderdash soon, though. It’s too far in to leave it shelved forever now.


Evahi’s development timeline —

Over the last ten weeks I worked on Envahi to submit for a game coding competition on www.syntaxbomb.co.uk

Most of the guys who submitted entries made a seperate post about their games in a showroom forum so as not to clutter the voting thread. I did one too and posted the following message which I’m reposting here as there’s a huge amount of insight into what happened during and after nailing down the final bugs and releasing it. No need to repeat myself and type it all again.

Envahi is now released and available via ItchIO as my entry for competition 4.

You can download and look at it from this link: https://xerra.itch.io/envahi

Voting is in the competition thread but I’m interested in any and all feedback regarding the game. I kept a sporadic development diary of the process when I was creating Envahi at http://blog.xerra.co.uk/ for anyone who’s interested. It’s most of the topic of the last ten weeks as I shelved an almost complete remake of Boulderdash that I was developing at the time to enter the competition as I felt doing something to a deadline would give me some much needed focus. It worked very well it turns out.

I intend to talk a bit about the development process and about the game in this thread and, like the other guys who’ve entered, thought it would be best to keep that out of the actual voting or competition entry threads.

While working on Envahi I kept a reasonably accurate log of working hours in various areas which I will explore a bit later. I started working on the game on the 30th January, 2018 – which was the competition start date. I already had the idea in my head for remaking this game, but I hadn’t planned on starting it any time soon. However, because the theme of the competition was Movies/TV I decided to bring it to the front and use this as my project basing it on the theme of Airwolf and Dambusters. In retrospect they’re pretty loose links as I’ve basically just gone and made the remake I wanted to make and just made sure that I could get a decent copy of the Airwolf music in. I think I’ve paid the price for this – more on that later.

I developed the game using GameMaker Studio 2 – which I initially had concerns that judging wouldn’t be allowed for a dev system like this when other people were doing all their code in text editors. There was one objection but the rules of the competition were made clear that making a game is about making a game, not how you actually do it, and what tools you use. I dread to think how many lines of code I still had to use in Envahi as it’s difficult to track without breaking it all out of the objects system – but there is a lot. The GML language – part of GameMaker is used for most of the work regardless of it being a complete development system. The advantages are not having to do stuff like set up graphic screens and backgrounds with code a lot of the time, as you can drag and drop them into rooms. It doesn’t make it that much easier, I assure you.

I finished the game on the 8th of April, 2018 – which was 2 days before the end date of the competition. I was very chuffed that I still had a little time to spare. It wasn’t the end of the process, however, because I had to get some kind of instructions written up, get the project onto my crappy Windows laptop because I had to have a PC version or I’d lose out on the biggest user base, and do some screenshots etc. All that stuff took me most of the evening of the 9th before I finally got my game entry posted here in the competition thread.

One further point I would make clear – not for any defensive reason – is that Envahi is my first completed game using this system. I’ve written many games before using BlitzMax, Amos, Swift and all sorts of other languages since the early 80’s but it was a great learning curve for future projects from working on this. So, whatever the result of the competition, I’ve still gained a huge amount, so I’m very happy I entered. I do, however, suspect that I was wrong to choose remaking a retro game for a competition which is theme specific. In retrospect I would probably come up with something original to make and left the remakes for my own gratification to work on seperately.

This competition, while being a little short on entries, has had some very clever, original titles, so judging has been pretty tough for everyone so far. My game isn’t original or very clever at all so, while it would appeal to the guys who like having a quick blast, a lot of people are going to vote for the better, more creative games. I have learnt a lesson from this πŸ™‚

So, as I touched upon earlier, I did keep a working hours log that I’ve put into Excel to get an idea of how many hours I put into the game. The results shocked me as I was convinced I’d been more productive. I had six categories that I labelled for working time as follows:

Code – self explanatory. This is the grunt work. All the scripting, bug testing, events set up and the core of the game.

Refactoring. This is moving code around, borrowing snippets and routines from other stuff I’d half written. I could use some code from my unfinished Boulderdash remake and from a couple of other projects I’d half started putting together.

Research. This was mostly hunting around looking for stuff. I did a lot of playing of the original game again, watched some videos to track the bits that I didn’t see because I was concentrating on the game etc. I even bought the original Vic 20 game on Ebay so I could look at the instructions inlay. I also count the time I spent investigating the use of tilemaps for the game and locating stuff like the music.

Graphics. Again, this seems obvious, but I purchased some assets for this game and even ended up employing two freelancers to work on the sprites and the big helicopter you can see with the other screeenshots. The time here is for me putting images into sprite sheets, editing photo’s to remove backdrops so they worked with the sky colours etc. I put in and ripped out a lot of images that were originally planned for the game. Longer sprite animations and originally drew my own sprites – which were terrible. Coming into this game I was very poor at working with graphics at all. I’m now a lot better at it but I still can’t draw for toffee. I would use freelancers again even if it does mean I’m out of pocket because you take a bit more pride if your graphics look ok. I’m very much in the minority it does appear on the graphics for Envahi, however. I like them but there’s quite a few voters who didn’t. I will definitely take a lot more input on this next time.

Sound. All the sound effects in the game were created by me using BFXer. I’d never used it for so many effects before but, again, it looks like I could have done better with this.

Writing. Mostly blog posts about what I’ve been doing – and pretty irregular they ended up. Not a bad thing, in some ways, as I needed to get on with the actual game but I think I could have made more time, judging by the totals below.

Code – 71.05 hours.
Refactoring – 1.5 hours.
Research – 4.75 hours.
Graphics – 16.5 hours.
Sound – 2.0 hours.
Writing 3.75 hours.

Total development time was 99.55 hours. I was absolutely convinced I’d put in a lot more than this until I did the count.

Another shocking statistic was looking at my date entries so I could work out what kind of slacking gaps I had. The first two weeks I put in hours for almost every single day. After 17th February I didn’t do any work on the game again until 3rd March – that’s around 3 weeks off. Whatever was I thinking there?

And then I had 3 days work which was 4th, 10th, 16th of March. Almost a week off between each day. I don’t even remember this but I know I was pretty accurate with the logging.

I worked on the 21st March and then didn’t come back until the 30th although, in my defence, I put in the serious slog then and was coding every day until completion on the 8th of April.

In total, despite having 10 weeks to finish the game, I could have put my head down and got it done in 5. Or, as I should really be looking at it, I could have worked steady for the entire 10 weeks on the game and made it much, much better. I’ve never tracked stuff like this when working on a game before but you can bet I certainly will be doing so from now on. Another valuable lesson learned.

About the game itself:

Envahi came out in 1983 and was written for the Vic 20 +8K expansion. It was written by a chap called Jeremy Walker and, like the Virgin games of the day used to have, had a little bio about himself in the cassette inlay. In those days authors of games were more well known than now. I don’t recall ever seeing his name on another game, however.

The game itself puts you in charge of a futuristic helicopter that is tasked with protecting a city and a dam that’s been built right next to it from an unending alien invasion.

There are Nibblers who move across the screen from right to left , trying to bite chunks out of the dam wall.

Also present is an indestructible UFO that moves Right to left and back again at the top of the screen. He’s there to launch Droppers.

These Droppers move randomly left and right while falling, and have the sole aim of reaching the city so they can “Invade” it.

The Zoomer intermittently comes into play and will “Zoom” right and left between the edge of the screen and the dam wall, dropping down a little each time. If this guy reaches the city then it’s “Invasion” yet again.

You also have clouds appear randomly that drop bursts of acid rain. These clouds can be shot if you can shoot a path through the acid.

Finally there’s the Grabber. His sole purpose is to launch down the screen and grab you so he can take you off screen. Once he does then the game goes into warp mode where you can do nothing but wait while the aliens do there thing.

If you let the Nibblers eat through the dam then you’re going to need an umbrella. Your city, however, is going to have a much worse time of it.

Players helicopter can only shoot up, and there’s no scrolling, so you’re moving around lots of shifting aliens which makes a pretty challenging game. Every minute the difficulty increases too – which probably doesn’t help.

The final thing to take note of is that both your helicopter and the city have their own shields. Too much acid rain hitting the city and it’s going to get destroyed. And the same fate befalls you if your shield depletes too. Sometimes it’s a more than viable tactic to use your helicopter to absorb large bursts of the rain to save the city, if your shield is greater. Especially if the offending cloud is behind a UFO as that enemy being indestructible will protect the cloud while it’s in range.

That’s pretty much it apart from the usual three lives are given and you get an extra every 5000 points. Harder skill levels (there are four) will give you greater points so playing suicide is much more rewarding for the high score – as long as you can hack the pace. Additionally the game will save your high score, level selection and sound settings for the next time you play.

Two more things I will talk about which I have been doing since the launch of the game. Getting visibility was pretty important to me so I’ll explain some of the things I did for that but first here’s some analytics data I’ve got about the project from ItchIO where the game is hosted. I’m sure this stuff is boring to most people so I’m just going to highlight five bits of info that I found interesting after the game has been online for four days.

Downloads 20. Most of these will be from people trying the game for the competition.

Views 100. So i’ve got a download rate of 20% from people looking at the game. Again, misleading, because a lot of people went there specifically to download the game anyway.

Impressions 517. I’m not sure what this actually relates to but it’s a high number so I like it πŸ™‚

Ratings 2. It’s a well known fact that nobody bothers rating stuff they download much. I wouldn’t expect many people to rate the game. One of these ratings came from my friend, for example. Both ratings have been 5, though, which is nice.

Purchases 0. Not unexpected as it’s a free game. People can donate if they want to but I wouldn’t have expected that for this game.

To finish off here’s some things I did to try and get my game some visibility. I’m no marketing guy but I’ve made games before and talked to a lot of people who do it for a living, so I was curious to see how much I could do with no budget and no financial motive.

Tweeted about the game to my followers. I think i have around 100, or so. Probably most of them are women from abroad looking for potential husbands so I wouldn’t expect much joy there. I do have some game dev friends, however, but they are, totally understandably, all about pushing their own games, and I wouldn’t ask them to retweet for a free game. Retweets obviously amounted to zero.

Posted on Facebook about me finishing the game on my own status at first. I then also pushed out a post in the a dedicated page for GameMaker Studio users. That got me around 20 likes and a few comments. You can’t tell how many downloads came from Facebook but the analytics screen of ItchIO does tell you how many of your page visitors came from Facebook itself. It is currently holding around 30% of the visits so far – the most by far.

I already had a you tube video up of a gameplay from the middle of development on my own youtube channel which I posted here on Syntaxbomb in the competition discussion thread. I put a post on there to say the game is now complete. I then also searched for every video of the vic 20 original that’s up there (3 as I recall) and put in a comment to say I’d made my own remake.

After this I searched out the wiki page for game remakes and created an account so I could put my remake in. There was only one other Vic 20 game in there, Gridrunner, I think.

I sent a message to the freelancer who did my graphics and also the author of the theme music saying I had now finished my game and they can look at the result if they wished. Both did and liked it. I made it clear that I’m very happy for both of them to use the game as an advert for their work in any way they wish, should they want to. No idea if they will, and I wouldn’t push it, but it could help.

I have a blog site and my website so both sites now host the game. I ensure I link to the ItchIO download rather than host it myself because: analytics, baby.

Any relevant forum signatures now have a link to the game and I put a note in my normal email signature to state that the game is available to download too. You never know who you might email next.

I checked for a showcase forum for my development system and put Envahi up there too.

As mentioned earlier, I’m primarily a Mac user but I have a Windows laptop specifically for building games for PC because I know that there’s more PC’s than Mac’s out there and I don’t want to get no votes just because someone couldn’t play the game.

A couple of quick points about ItchIO. When you list your games up there then fill in as much info as you can. And by this I do mean get the right size images that are optional uploads so that there’s a chance your game goes into the browsing window. I found the search function on the site didn’t even find my game, only the direct link worked, until I did that part. You also have an option to use tags for your game when you submit it. Use these. I tagged mine Helicopter, Overrun, Remake, Vic 20, Retro game, Competition etc. I know i’ve had hits from those as I got a follow from someone who specifically hunts out retro games and sent me a nice tweet as well.

Hope this has given you all some insight into doing something like this. And I hope even more that the next competition will encourage even more of you to submit your own entries as well. Because , believe me, if I can make a game and do all this on the back of it, then anyone can. Good luck to all the guys who submitted entries πŸ™‚

Envahi is finished —

After a marathon coding session over Saturday and Sunday I finally got the game finished. It’s not perfect but it’s still a great pick-up game considering I sacrificed a few things at the end to make the deadline.

Most of the time on Sunday was spent tracking down some real pain-in-the-butt bugs from new stuff I put in on the Saturday to replace the text box notifications that I’d been using until now for events. Due to the way the game state was written and my extremely stupid management of the project with the number of objects, it really was a job adding in new stuff and getting it working with stuff already there. By the time I closed off on the code and fixed the last bug, it was something like 02:30 am and I had to be up in four hours for work. I wasn’t very useful yesterday, that’s for sure.

Learning from this, future games I write will be a lot more thought out because I had the same problem with Boulderdash which, while mostly finished, I made a tentative start a few weeks back on reworking most of the code at the same time as switching to an objects system due to the AI problems.

Monday I spent some time getting a PC build together on my crappy laptop which involved all sorts of visual studio fiddling but eventually the project was uploaded on ItchIO – as you can see from the link above. The widget will take you to the page if you want to play the final game.

We’ll see how it does in the competition in a week or so…