Titan Attacks mobile – Developer Diary #9: Lasers and Bosses!

January 12th, 2014

Since the last update I’ve completed lots of minor things that needed to be done (see full details below), added lasers to some aliens and made all of the bosses work, which was quite a lot of work.

Here’s a video!

New Features in Detail

- Added correct death sounds for all enemies.
- Added floating text for money bonus.
- Added floating text for skill bonus for shooting critically hit enemies.
- Added Multiplier, Score and Cash to HUD. These are currently placeholders.
- Finished gidrah and entity base class loose ends.
- Collision is now radius-based instead of hitbox based.
- Made sure you can only shoot bombs/mines and not enemy bullets.
- Removed clicks from alien laser powerup sound effect. It was annoying me ;-)
- Laserbrain now works (first seen on level 66 on Jupiter).
- Added “Times X Multiplier” speech to start of level.
- Added “Multiplier Deactivated” floating text and sound.
- Added boss start and end text and “Well Done Commander” sound.
- Made sure turrets move with boss correctly.
- Made sure turrets have correct sounds, radius and hitpoints.
- Made sure turrets can be shot and destroyed and die when boss dies.
- Made turrets rotate and fire at player.
- Fixed draw order of enemies, player and bullets by taking into account layers from xml.
- Fixed draw order of Jupiter and Titan bosses/turrets/jaws.
- Made sure only front part of Jupiter boss flashes.
- Added power display to bosses and made it pulse.
- Fixed mars boss pilot offset coordinates.

Next up
- A few more animation loose ends
- Player tank upgrades
- Parachute
- Smart Bomb
- Meteors
- Pickups

Once those tasks are done all that’s needed to complete the game is:
- saucer minigame
- particle effects
- background animations
- Bitmap font
- Game screen HUD
- Shop screen, map screen and other game UI
- Texture Atlas for iOS
- iOS testing and submit to Apple!

2013 Review and 2014 Goals

January 2nd, 2014

Every year I set myself work and personal goals and then I review how well I did at the end of the year. Here’s last year’s post.

In this post I’ll review how well I did with 2013 goals, discuss extra cool stuff that happened, set 2014 goals, and review my big mistakes of the year.

In summary though, this year has been pretty damn awesome. Probably the best year in at least 5 years. I’ve really enjoyed being back in my house in the UK after living in Canada for 4 years. It’s a great house in a lovely area and we’ve fixed and improved various things around the house, which feels good. Also my workspace is really good, just how I want it. The main success of the year was Spooky Bonus, which turned out to be a much-needed hit game. I’ll do a proper postmortem on it in February or thereabouts. Also my family life has been very nice and things just seem to be going well for a change after a few difficult years.

2013 Work Goals

1) Ship Titan Attacks port for iOS. (FAILED: I’ve made good progress on the port but due to desperate finances at times, other projects and, if I’m honest, slackness on my part, it didn’t ship. It will ship very soon though.)

2) Expand Dying To Live and ship as a Flash game. (SUCCESS: Yep, I did this and you can play it here. It now has more mechanics and 10 levels. I actually originally planned to put in at least 20 levels, more mechanics and get sponsorship for it, but the bottom has fallen out of the Flash sponsorship market and so I just shipped it as one of my #onegameamonth games instead.)

3) Ship a new casual game developed by me. Probably a match-3 again. Have already planned several so it’s a case of picking one and running with it. (MASSIVE SUCCESS: Downloadable casual games for PC/Mac have been my bread and butter for years and so this summer when I got desperate for cash I made Spooky Bonus in about 3 months. I managed to get a lot of things right with this game and it turned out to be a massive hit and even won “Best holiday-themed game” on Big Fish Games and best match-3 game on another site. It’s given my company a much-needed cash-injection that will help me to go into 2014 in much less of a financial panic than normal.)

4) Ship a new casual game that I’m helping another developer with. FAILED: This didn’t happen. I was too busy and he was too busy with other stuff. It might still happen but I’m going to remove it from my goals list for now. Weirdly, I have ended up helping another developer with a casual game and that should ship in early 2014.)

5) Ship Oz mobile, hopefully with BFG publishing it. (SUCCESS: It shipped! I haven’t had much luck with BFG publishing my mobile games despite them publishing all my PC/Mac games, and now they only want Free 2 Play games, which I don’t make. So in the end GameHouse published the iOS version and they were great. I’d recommend partnering with them if you have a suitable casual game for mobile.)

6) Relaunch Spring Bonus mobile. (SUCCESS: Yep, we did this. The relaunch involved putting it on the App Store myself this time and that meant setting up IAP stuff (for extra levels, not evil stuff) on my iTunes account and some rejigging of various code which Damien Sturdy did. It was published by Appy Nation and they were great to work with – very indie friendly and no-nonsense. The game got featured in Europe and weirdly appeared in “What’s Hot” for a week during December!)

7) Maybe make another GOLD game, probably Oz GOLD. This can be a bonus goal. (FAILED: Didn’t do this and don’t think I ever will despite the success of Holiday Bonus GOLD. I just want to focus on new games instead. As this was a bonus goal I won’t include it in my success ratio for the year (see below.))

8 ) Complete the #onegameamonth challenge. Ideally this will be 12 completely new indie games and the other stuff listed above will be extra. SUCCESS: Yep, I did it, I shipped 12 games in 2013!! In fact I “won” #onegameamonth in that I got the highest XP of 7000 devs who took part :-O. I tried to make sure that every entry was a good quality entry and not a rushed game. I also made sure that none of my games were ports from earlier games in the year, or slightly enhanced versions, or something like that. My profile links were fully completed, with art, music, game uploads where applicable instead of just shell accounts. I met all of the themes solidly and there was no ambiguity or cheating. I also met every one of the various achievements except for using Rami’s PressKit() thing. I could have slacked off on any of those points, but it’s important that I put quality into everything I do and if I was going to win it, I wanted to be satisfied with that win and not to beat someone else who deserved it more by doing a crap job. So yeah, I’m immensely proud of this and it was great fun too as well as a learning exercise. It was very TOUGH though to keep banging out a game a month and I’m not sure I’ll do it this year as I need to focus on my main work, although I’ll probably still do a few gamejams.)

Success rate = 5 out of 7 = 71%. Much better than last year and two of those successes were pretty huge (3 and 8). Note that goal 7 was optional and thus not included in the calculation.

2013 Personal Goals

1) Visit Vancouver in the Summer. I hope that Full Indie will run another game jam and, if so, I’ll fly over and spend some time with my good friends that I miss a lot. (SUCCESS: I didn’t visit until September but the weather was still great and I went on an epic road trip to The Rockies.)

2) Improve my guitar playing some more and put at least one video on youtube. (SUCCESS: I feel like I really improved my electric blues playing this year and I posted several videos on youtube like this one. In fact I even gigged 3 times with a friend!)

3) Make some electronica now I have my MIDI keyboard set up again. Probably I’ll make some music to use on my own mini-games. (PART-SUCCESS: I did make a couple of pieces of music that I put into a minigame but I didn’t do enough this year.)

4) Boost my Aikido club membership now that I’m running the local club again. (SUCCESS: Club membership has been boosted and stablised. Not by much but it’s a start.)

5) Set up Full Indie UK! This will be a meetup group for indies like the one I co-founded in Vancouver. (SUCCESS: Yep I did this! Here’s the website. In February I became Chief of Best of British, an existing UK-based indie group, and then when my 6 month term expired I offered to continue running it but as Full Indie UK instead. Everyone liked what I had been doing and supported me in the changeover and so it happened! Since then we’ve held several meetups and will be doing even more cool stuff in 2014.)

6) Explore the UK and possibly Europe some more in the summer. (PART-SUCCESS: We did quite a lot of local exploring including Dartmoor and Sherborne Castle as well as lots of local walks, but not enough. This was partly due to me working most of the summer on Spooky Bonus. More effort will be put in during 2014!)

7) Make a dent in my indie game collection and my Steam game collection. (PART-SUCCESS: I’m mostly too busy to play long AAA games these days but I did manage to complete a few old ones like F.E.A.R. and RAGE. I did play quite a few indie games – however, they weren’t ones from my backlog but rather ones that I bought (often due to recommendations) and played immediately. My indie game backlog did also grow a bit too but I’ve mostly stopped buying and hording games now because it’s getting ridiculous.)

8 ) Loose some weight and boost my fitness to and beyond previous levels. FAILED: I did actually loose some weight for most of the year and got reasonably fit in the summer with lots of walking and cycling, but then I put all the weight back on this Christmas, sigh. Still, at least I didn’t get any fatter.

Success rate = 5.5/8 = 69%. (note that part-successes are counted as 0.5) Not too bad. Overall I feel I had a good life/work balance this year.

Bonus Points

OK what other cool stuff did I do this year?

- I managed to get Spooky Bonus on some major new portals and some smaller ones and then I got them to take my older games too, which will generate some nice extra revenue.

- I made a couple of retail deals for German versions of my older games. Wasn’t big money but was nice.

- I made some more UK indie developer friends and hung out with old friends.

- I got a government grant from GamesLab South West (Creative England) for my next game. This is pretty damn awesome, but was hard work to get.

- As well as lots of small home repairs/improvements we renovated a room in our house to make an office for my wife who is helping with my next game as a researcher/writer/administrator.

- At the beginning of the year I made some digital artwork with a mouse, then bought a new tablet and made even better artwork. You can see it here. I surprised myself with what I was capable of and enjoyed it immensely. It was very time consuming though and fell to the wayside but I hope to pick it up again in 2014.

- I got awarded 3rd Dan in Aikido for my many years as an instructor and running Bridport Aikido club. This was a proud moment for me.

- I paid a lump sum off my mortgage early in the year. This felt amazing as I’ve never done it before.

2014 Goals

I’m going to keep things simple and specific this year to ensure more focus.

Work goals:

1) Ship Titan Attacks mobile in the 1st Quarter.

2) Ship Regency Solitaire in mid-summer. This is a new casual game that I’m working on with my wife.

3) Optional Goal: Ship another casual game before the end of the year. The reason this is optional is that it depends a lot on how well Regency Solitaire does and how the casual game market is doing. Also there’s a possibility that I might make an “indie” game instead and that might not get done until 2015.

4) Add some more levels to Techno Zombies. This was my December #onegameamonth game that I actually started in January. It’s not as complete as I’d like it to be, so I want to work on it some more.

5) Take part in at least one game jam. I love game jams and want to try out my improved Monkey X framework on another minigame.

6) Stretch Goal: Show over £125,000 ($200,000) gross income/revenue on my company’s books including grant money. Based on 2013 this should be achievable if everything goes to plan.

Personal goals:

1) Make at least 6 new pieces of digital art.

2) Do another gig either on acoustic or electric guitar.

3) Make at least 3 pieces of electronica.

4) Go on a family holiday in the UK or Europe.

5) Play at least 20 indie games from my backlog.

6) Reduce my weight from 69Kg to 65Kg by end of June and don’t put it back on at Christmas.

Mistakes

- Not shipping Titan Attacks mobile: This game really should have been done by now and it’s a bit embarrassing that I haven’t finished it yet.

- Working on Titan Attacks mobile: I like the project, it’s fun and I’m learning a lot but I’m not particularly confident that it will make much money on mobile. Of course I hope it will, but past experience of the mobile market and other data I’ve seen doesn’t bolster my confidence. So I that believe working on this project could be a large financial mistake in terms of opportunity cost. For example I could have made another hit casual game by now instead. “But it’s not all about money!” I hear some of you say. Well when you have a wife, 2 kids, 3 pets, a mortgage, a car and lots of bills, money is pretty damned important – not to wave about and go “woohoo”, but just to survive. If you don’t understand this yet, then you probably will do one day. Having said that, I do make games just for fun, which is why I took part in #onegameamonth. It’s just that if I’m going to spend time on a commercial project, it should be one that maximises revenue as well as being satisfying to work on because this is my day job, not just a hobby. Of course if Titan Attacks mobile does really well then I’ll take all this back :-)

- Shipping casual mobile games: I shipped two casual mobile games this year: Spring Bonus and The Wonderful Wizard of Oz. Other people did the ports so it was just a case of me directing the developers, testing builds and dealing with publishers, which didn’t take that much time. However, it was distracting from my main work and in the scope of things they didn’t make that much money. That’s why I didn’t make a mobile version of Spooky Bonus – I just wanted to focus on the PC/Mac versions instead, which proved to be a good decision. I don’t have any plans for further mobile games at this point.

- Doing #onegameamonth: This is only a minor mistake from a work point of view, not from a personal point of view. Instead of doing #onegameamonth I probably could have shipped Titan Attacks mobile this year (maybe), and I could have spent more time on a commercial casual game instead. However, the total time spent on #onegameamonth wasn’t that much, probably no more than one month in total and it was hugely rewarding.

- Not working hard enough: I slacked off early in the year and during some good weather in the early summer. I enjoyed myself but it wasn’t great from a work point of view. Also once Spooky Bonus shipped I wasn’t super-productive afterwards for a while. Any of you who have shipped a game will know that experiencing a “dip” after shipping a game is normal though. Normal it may be, but I wish it didn’t keep happening to me! I plan to fix this by switching back to caffeinated tea in 2014 because that seems to work great Cliff Harris ;-)

- Emptying my company bank account: At the start of the year I had quite a lot of money in my company account and I knew that it was making me complacent. I decided to take it all out and pay off some of my mortgage, even though I had large debts on 0% credit cards from moving back from Canada. “Why would I do something so dumb?” you may ask. Well, unfortunately I get motivated by running out of cash and I knew that stick works better than carrot with me – I wish this wasn’t the case, but it is. However, paying off some of the mortgage means that in the long term I’ll pay *way* less interest and that money isn’t being wasted now on something else. The 0% credit cards aren’t a big deal, in fact when one deal expired I just transferred it to another card for a small fee. They are gradually getting paid down and if the bank wants to offer me practically free credit, then I’ll take it for cash flow purposes. What became a problem was that I didn’t earn any new money quickly enough and so we had to live off credit cards in the summer and hope that Spooky Bonus did well (which luckily it did – to be fair it was a gamble with good odds). Anyway, I seem to have found new motivation in just wanting to repeat the success of Spooky Bonus and so I don’t feel the need to use the stick any more. I’m trying out a new system of paying myself a regular salary instead of irregular dividends and if I need any credit, then I’ll try to get it through my company instead of personally (it’s way easier to get personal debt than a company loan by the way).

- Not improving my fitness: It’s getting fairly obvious as I approach 40 that my body isn’t as fit and healthy as it has been in the past and letting it slip for year is clearly not a good idea. I can’t let it keep on slipping otherwise it’ll be too hard to get back…

And thus another year ends! It’s been a great year and I think 2014 is going to equally, if not more so, awesome!

I wish you all both work and personal success in 2014.

Please tell me how your year went in the comments.

Maze Generation code in Monkey

December 30th, 2013


Click image to see it full size

I decided to add a random maze to a game I’m working on called Cyber Citadel (coming soon).

I’m using the cross-platform Monkey language and thought I’d post the code in case other people found it useful. The code uses a stack and a recursive backtracking algorithm.