Saturday 28 November 2009

#All The Single Ladies#

The...er...slightly skewed demographic of MiniSquadron (at least those watching the trailer on YouTube) (click through for larger - stupid blogger won't let me post full res jpgs - anyone?):


100% Males between the age of 18-24 + 2 girls (Mel from Livegeeks.fr and Bonnie Eisenman from 148apps.com - only 1 picture of face found).

I would ask ladies to tweet me a pic of you playing MiniSquadron but that is both highly dodgy and highly unlikely. ┐('~`;)┌

Thursday 26 November 2009

How To Make MiniSquadron - Part 2

Right - last time in this sporadic series I had just finished making the 4 week MiniSquadron demo with the red scissors versus the yellow scissors, with you as the commanding Magenta Scissor (snigger - b3ta reference). And it was at this time that I went to show Dave Ferner and who then thought he could do some pretty art to make this game look "a bit better" (how could it possibly be better than what it is already?). One of the other things I decided to do about now is to basically give the game more of a proper structure and deciding on the final scope of it. As it stands, I was of the opinion that this was a fun enough concept to make into a "half fat" game that deserved at least 3 months of my time. I like to call it going "half fat", with "full fat" basically spending a year to make. This decision only came about when I saw the potential that this game could be from looking at the art that I received. Here is one of the first drafts of Level 1, which would eventually become "Duck Island" (click through for larger):



Inspired by this, I made a few trips to North London to sit with Dave and to work out a rough "Skeleton" for the game - what we in the games industry (snarf) call a "Vertical Slice". This little plan sketched out the need for some kinda map, with a number of levels to unlock, and in particular - my idea my idea! - to include *lots* of planes. I really wanted the Pokemon "collect-them-all" feeling going on here - this was crucial. Anyway - we came up with a strong plan for a "half fat" version of the game and proceeded to create the Vertical Slice with placeholder art and me doing the basic coding so we get the structure of the game in place. It is VITAL to do this part because at the moment all I had was some kind of mad tech demo with scissors tailing each other. As an example of the level of "planning" that I did here is the flow-chart for the menu system (note again, the SCISSORS) (click through for bigger):




And also - check these never before seen placeholder pre-visualisation of some levels made by Dave:



They're super simple but that's all that's required right now. So while all this was going on I coded the Vertical Slice (mmm tasty). Many decisions were made in this period - and this is a source of a lot of fun as well as a lot of amusing jokes. MiniSquadron started off as AccelerometerGame, and it was time to change it to something more relevant. The "official" codename then became "AirRage" - players of MiniSquadron will probably understand the "AirRage!" sign that pops up in the game! In fact, playing dirty and trying to maximise our chances of being noticed in the App Store we were just thinking up names that begun with the letter A. I think at one point Dave suggested "AaaaaaaairRage".

OK, one of the things I really want to talk about is the controls of the game. When I started making the game I had this blinkered philosophy that "any iPhone game with an on-screen UI is a game that is obviously not well designed for the device". So that's why the original control for MiniSquadron was the Accelerometer and with no UI. This was RUBBISH. NO ONE could control the thing and I distinctly remember someone playing it for 2 minutes before going back to Flight Control (sigh). So, coming to my senses I reverted to what I know best which was "normal" d-pad controls - but with NO VISIBLE UI. Still sticking to my blinkered philosopy, I made the left side of the screen a virtual d-pad and the right side of the screen a shoot button (so you tap anywhere to shoot).

Now here's the interesting thing - the controls were actually usable, and would be refined to the final thing that you can see in MiniSquadron. But the most important part is the NON VISIBLE UI part. When I tried this system on people - after explaining to them about the fact that the left side of the screen is a d-pad and the right side is shoot - people started using it fine but they would always put their finger in the MIDDLE of the screen for control. What was the result of this? It completely blocked the view of the game! What's more interesting is that *I* would do that too even though I know I should be pressing the corners of the screen to "maximise visible screen area". Basically:

Without a VISIBLE d-pad and button to TELL YOU WHERE TO PUT YOUR FINGER the brain places your finger automatically in the middle of the screen!

I mean - even I did it and it was definitely an unconscious thing! This was a New Thing that I learnt whilst making the game. So in the end, in as much as the UI was visible so that no explanation was required to explain the controls, it was also used to tell you where to put your finger in order to maximise visible screen area.

OK, getting bored now, so I will end with a fairly amusing look at an early PreViz of the in game action. Things to note are the excellent animation stuff (I started frothing about how we should be more like Metal Slug!), and the beginnings of the "zoom in" effect when you get a kill.




Edit: Did I mention how difficult coding and implementing the controls were? Well they were one of the most frustrating parts of the project. Tearing my hair out at why people can't turn the plane and bombing into the ground. The controls were refined for the entire duration of the 4 month project.

Also: If you notice in those early shots you can see in every level there was always 2 runways. This was because in the early builds all the planes start off by being on the runway and taking off. This was fun to watch but actually added almost nothing to gameplay so was taken out.

Tune in next time for - Icon Fun, Illustrations, Network Tools and the Magic Plane Making Machine

Friday 20 November 2009

A Suitable Song

This song came on TV for some reason, I think it was a Carpenters documentary, and other than the fact it's an amazing tune, I found it quite fitting for where I am right now:

Wednesday 18 November 2009

Thanks the Lord it is OUT!

Today MiniSquadron is out and LIVE for you to buy on the AppStore! Amazing stuff - I have to thank everyone who has helped on it - mostly Dave "the bearded one" Ferner for providing a lot of the art. I'll probably do some behind-the-scenes pokes at the people who have all contributed but first I must grab some sleep. Why am I so tired you may ask (or not)? Have I been partying all night in my pants? No! I have instead been submitting news and writing emails all day to various websites and publications to advertise the fact that MiniSquadron is out. This, my friends is the Second War in game development - one that is AS important as the First War (making the actual game).

I shall write more once I recover brains - for now - SLEEP!

Wednesday 11 November 2009

How To Make MiniSquadron - A Tutorial In N Parts

Now That MiniSquadron is in Submission (that sounds a bit like it's gone into relapse or something), I find myself with a bit of time to consolidate. And by consolidate I mean try to become a normal part of society again and "go outside".

But it's cold outside. So instead I'm gonna tell the story of how I went from Zero Code to MiniSquadron The Game in 5 months (and less if you had artists that didn't have to fix giant pendulums hoho). You can then take this recipe and mock me at will - this article will be in N parts because I'll no doubt get bored of writing it all in one go.

The Beginning
So it was June 23rd, 2009, the last day of my contract with Sony London. I had really enjoyed my time there - great people, great location, StreetFighter 4 had just come out and was getting some proper bo sessions at lunchtime. But it ended - and I needed to execute The Plan.

The Plan was derived from the fact that I would like to try and realise an ambition to do a little game of my own, that I could find fun in, and that I could then distribute to as many people as I could who also might find it fun. The iPhone at the time suited this mode of thinking - the project itself was to be nothing too complicated, nothing too involved, and the project from start to finish should take no longer than 4 weeks. That's right, this project was initially budgeted for Four Weeks. Needless to say, things changed - but at that time, that had been the plan. And it was a good time plan - because it meant I had to execute things *immediately*. I already had an iPhone at this point, and I had also bought a cheapo second hand Mac off my mate for a really good price - so the "hardware" was all sorted. My office would be my room/living room/current position in space wherever it may be - I was just missing the actual software - the coding. As for the idea, well I was playing around with having a game that made use of the Accelerometer in the iPhone, mostly because I found it fairly amusing. I had a good few ideas of what to do for the first game, but it was important that it was going to use the Accelerometer - in fact - the XCode project of MiniSquadron to this day is called "AccelerometerGame"!

So, June 24th, 2009, I got my XCode and made a few really quick and scrappy prototypes of the games I wanted to do. One was super experimental - and thinking back on it would probably be something I will make again to enter into the Experimental Gameplay Project or some kinda Experimental Indie Festival thing. Basically it was a game based on guessing the orientation of the iPhone using nothing but sound, and as you progressed through the game you had to remember longer sequences of orientations. So, as you start the game, I generate a secret "Goal" orientation G, and then by turning the iPhone in different angles, a sound will play. This sound gets louder the closer you are to G and when it's at its loudest you can touch the screen to complete the step. You then progress onto Level 2, where there are two Goal orientations etc. And then you have a time based score. This might be what Zen Bound can be reduced to essentially maybe (with sound swapped for gfx)? I think I'm gonna make this game this w/e whilst waiting for MiniSquadron to submit anyway just for fun.

However I felt it was a bit too whacky, and I wasn't too sure about what to do with the graphics - and I wanted to do something slightly pretty. And after a couple more whacky experiments, I decided to try out some old games I had really enjoyed and see if I could "redo" them for the iPhone so I can play them myself on the move. And hence the story of Bip and Jetstrike on the Amiga as inspiraton. I actually have both on my PC (STILL!!! Bip from here: http://www.allegro.cc/depot/bip/) and thought I should just do an *exact* clone of Bip. I had no grand illusions at this point, I just wanted to make *something* and it should be fun for me. And using the Accelerometer. Needless to say, things changed.

Week 1
The first week after I finished work was basically getting a skeleton framework of a game. So by this time I had a *super* basic concept of "Screens" (and UI) in code. In fact here it is:



You can then move onto the next screen by tapping, and it'll show you some text before entering the game, which was basically just a Frame Rate Counter. This involved some basic tech such as getting an old C++ Math library to run, and getting some OpenGL fonts working, CPU timing, input etc. None of it was very advanced, so it was whacked out in a week but it was a good foundation.

Week 2
In Week 2 if I remember correctly I believe I actually implemented the basic "graphics engine". That was essentially sprite rendering and texture loading. I then used this to create the basic cloud sprites, parallax level graphics, line drawing for bullets and also a plane flying around, which was hooked up to the Accelerometer (so if you tilt left the plane rotated left and vice versa). Nothing interacted with anything at this point, and there was no real physics or movement. Everything was also hardcoded so there was no concept of "loading". Pah who needs that!

Week 3
In Week 3 I made the basic collision system for bullets, scores and the plane movement which included the "physics". Now the physics of the plane was very interesting. I started off with your basic Newtonian model F=ma, and it had nice acceleration and forces and behaved "real". But it was utterly impossible to balance or make "fun" and responsive. There was a super simplistic model of engine thrust and gravity (for Force) and then you worked out acceleration 'a' to update movement from that (presuming m=1), but that was in no way how an aircraft behaved! It was laggy and heavy and more akin to the plane in Asteroids or Gravity Force/Lunar Lander as opposed to an agile fighter. So what I did was spend a lot of time - or what I thought was a lot of time then - 4 days(!), just tinkering with the movement characteristics. And the way to do this is to break it down into "states" that the plane is in, and approximate it with a different equation in each state. So instead of F=ma all the time, when it was flying "normally" it would be a much more basic velocity vector, and when it was flying down, it would be a bunch of fudges to make it "go faster due to gravity but still easily turnable" to simulate a diving plane gaining speed but *also still being able to turn quickly*. Essentially instead of one curve to describe the plane movement, it would be loads of different ones at different intervals of speed/angle of plane. This tinkering would carry on throughout another 3 months - but I was not to know this as the game only had one more week to go before it was finished! (^⊿^)

Week 4
In the final week of the project (pfffffft) I made the enemy "AI", the win conditions (first to a certain score wins) and tied the whole game together a bit more cohesively in terms of "UI" and "Gameflow". I also put in some "special" graphics made out of google image searches and leftover art assets from previous games and BAM!

I have created the crappest looking game on earth! I thought at that time it played quite well (I was blatantly wrong it was pretty much a travesty to Game Design), in fact I thought it was so good I started to show my friends! And because they are your friends they don't want to be too harsh so I was encouraged by some ooohing from them. Here are some never before seen screenshots of "AccelerometerGame" in action. Some things to note - the background has a monkey and could be from a famous Arcade game. Your plane is actually a pair of scissors. Yes scissors from some leftover art. There are two sides so you actually had wingmen (wingwomen? wingperson? wingscissor? what?). You were the Magenta Scissor, and your buddies were the Red Scissors. The enemy are the Yellow Scissors. This game was AMAZING.




You controlled the game by rotating the iPhone, which then rotated the Magenta Scissor in it's eternal dogfight against the Yellow Scissors, aided by your decidedly stupid Red Scissor wingmen. I honestly thought this game was fun. In fact, one very important person who also thought it was fun AND amazing - and who would be crucial in the next phase of AccelerometerGame - was a man called Dave Ferner, the Man of Art. His reactions and his occurrence in the timeline of the project would lead to what would one day become MiniSquadron.

That and the fact that when my Dad saw it he laughed (WHOLE-HEARTEDLY laughed) and said to me in very loud Chinese Cantonese, "WTF is that Son??!! You spend your time doing that like fool? Can you cook yet?? Where is the money??!?" before tottering off to cook up a wicked stir-fry. And so, the making of MiniSquadron proper began...

(My face right after I hear Dad Smack Down:)



TO BE CONTINUED - CONTROL SCHEME HELL, ARTS, GOING HALF-FAT

Monday 9 November 2009

HAHA! I made it to Submission!

Well after a lot of frantic faffing (actually, frantic is completely the wrong word to use. Cutting/editting video and "making HTML" and then sitting around waiting for the upload bar to hit 100% over many hours is more like it) I have actually got MiniSquadron submitted to the App Store and also made a dang WEBSITE using HTML and these things called CSS stylesheet and ting! Check it out here www.minisquadron.com. Quite chuffed with myself getting the domain name but also highly miffed at why it doesn't come up in Google searches. Stupid blog takes the top spot instead! Gah but Yay! but Gah.

So while this is going through the approval process, I shall now attempt to work out the order I should be sending out preview/review/Promo Code/random PR material to people/contacts/twitter etc. It's pretty confusing to be honest, I have already sent out the actual submission build for review to the Top Guys & Gals, but obviously they would probably have the most news and other important stuff to run through first. Let's hope they love MiniSquadron - and the Pink Bunny Plane called Biff - that they skip the rest and shove it on their front page immediately! Come on guys - PINK BUNNY PLANE BIFF!

I leave you with my beautiful video which I lovingly crafted and even more lovingly uploaded at a rough rate of 0.001 bits per second over what felt like 2 years. Enjoy!

Saturday 7 November 2009

Why So Long?

So now that MiniSquadron has been announced for a while, and especially with the initial wave of excitement which entailed from that, I have learnt something about the world of "keeping interest going". In other words, how to make the news in a timely fashion. For all indie devs out there, and in particular one man bands like me, you should know that it takes A HUGE AMOUNT OF TIME to keep posting interesting things - including writing blogs and what have you. This is ON TOP of developing the game - which NEVER STOPS. Right now, even after the build is "finalised" (whatever that means) I am still spending HOURS playing through it REPEATEDLY (I just had a break from a 4 hour repeat playthroughs). This is on top of the beta testers (yay) that have been helping me. I do this to spot bugs but also to do one of the greatest challenges of all in making a game - making it *balanced* and *fun*. And you can almost never get it right. I can only imagine what the makers of Mario must have felt when they played such a perfect game - I hope to experience it one day but that day is far far away but at the same time nearer and nearer as I gain more experience.

And not just that, I'm also having to record and cut a new gameplay video, design and make a half decent Splash page website, make screenshots, eat etc. And also become slightly paranoid at why no one bothered with the preview builds I sent them apart from PocketGamer. I'm pretty sure I must have done some horrendous timing or something or the format was wrong or *gulp* I'm just not very news-worthy YET (where's my fame?! Maybe I should go on X-Factor).

Anyway - here's something that I did to encourage myself to finish this game. I have a pair of lovely Adidas Trainers which I bought in Tokyo which are now almost 4 years old and literally falling apart (thank you Loctite). I promised myself I wouldn't get new shoes until I've got my first pay cheque from the game and so far....it's been a rubbish incentive because they're still really comfortable. I just wanted an excuse to show you a photo of them (notice the lovely varying height of the sole - its not the angle of the photo):



My name is Tak and I give you pictures of old trainers in lieu of actual game graphics.

Thursday 5 November 2009

Complete Set Of Planes!

Well, at 2am a couple of nights ago, my artist Dave Ferner has given me the complete set of planes! So I want to share this with you, as these are the babies you can collect up, if you can get that HiScore! (I've blacked out most of them but you can guess at what they are from the silhouette :o))


On top of that - I thought I'd post some of the sprite work as well - I've always enjoyed looking at sprite pages when I played Amiga games so here are some (wow thats quite a lot - click through for more detail!):


In other news, I will spend a couple more days to tie up the stats of the planes to the actual sprite, and then SUBMIT SUBMIT (゚Д゚;≡;゚Д゚)

Monday 2 November 2009

Animal Death Noises

I've finally uploaded the unedited recording of The Whitney + Secret Laughing American Man making animal death noises for the game. I thought it was pretty amusing and embarassing so therefore I must share it with the internet world. See if you can match the sound to the animal!! And for Bonus points - name those Video Transitions!!

Pro Tip: Don't use Windows Movie Maker when you already have Adobe Premiere Pro installed on the same machine. One crashes in Vista, the other doesn't. Guess which one I tried to use for a whole hour before realising I had the other. Yes I am an idiot.

Sunday 1 November 2009

Feedbacks From Humans

It's really nice getting feedback from people who have been playing beta/preview builds of the game. Positive or negative it all helps to hone the game and to make it have that polish which I hope will distinguish it as a "professional product". It's one of the many goals I have in the back of my mind when I set out to become an "Indie Dev" - I always wanted to maintain an extremely (if not impossibly) high professional standard for as much of the development as possible - there was no way I wanted to be seen as an amateur - I would be letting myself and everyone else who have helped on the game down. Obviously - it being an impossibly high standard means there are sections of the game that are not up to my standards, but they will definitely be improved upon in time. Aim for the sky to touch the ceiling right? (Which was, incidentally, a game I used to play when I was a child - trying to touch the ceiling. Such a foolish child - playing too much Mario and expecting coins to pop out if I hit it).

Submission date is set to be 2 weeks from now MAX. Ramping up PR effort in the meanwhile...

Hello to mel and LiveGeeks.fr!

(Also - I hope to upload the raw sound clips from the SFX recording session soon!)