Wednesday, 5 September 2012

Power Up - Halfway There!

I was playing about with possible subject matter for this next blog installment, when it occurred to me that I'd better stick everything else on hold and take a moment to appreciate the fact that somewhere in the last few weeks, I probably hit the half-way point in my Power Up project.

I've decided to take this opprtunity to have a look around and consider what I've done, what I've got to do, what I probably should have done and what I'll take with me for whatever I work on next. That's the plan anyway, so here goes...

---

Looking back: (Waaaay Back)

Let's go back to last November (it's 2012, at the time of writing). There I was, sat at this very computer, feeling more than a little dejected considering I'd wasted quite a lot of time having made a series of Shockwave games which were now sat on various websites, waiting for people to play them... and waiting, and waiting.

My abillity to get the word out about these games seemed to be sub-optimal at best and any advertising income I'd made from the games was constantly below the line of what I needed to make to actually claim the cash (somewhere around $5, US). Ultimately, I was looking at a collection of games that constisuted a good 5 years of my spare time and had gained me precisely zero returns. "If I ever get stuck without a day-job and need to support myself, this games thing is probably not the best way to make a living" I thought.

Yeah, so some of the games could do with an audio/visual overhaul here and there, but generally they were pretty good work... So what was I doing wrong? Time for a head-scratch and a spot of re-evaluation...



Some of the Psychotic games the world never saw. Still, these were a great source of experience and inspiration to draw from.

As I've mentioned before, my coder-friend's words were ringing in my ears "These are good games. you should re-make them for xbox live. It's not as hard as you think it is." (Yeah, so I paraphrased that, but you get the idea, right?). As those of you who've been keeping up with my recent interviews with various websites will know, since 1999, I was using Director to create Shockwave games. As the format died out, interest dwindled and eventually I found myself at the point where people were simply unwilling to download the Shockwave player to even look at my games. Reason enough to move on, I supposed. Xbox games don't have any such problems. There's also  generally only one outlet for them so it should be much harder to get swallowed up in an infinite mass of other games online. I tentatively got the Visual Studio software I needed, ordered the usb pad, hunted down some promising looking tutorials, and had a crack at it. And do you know what?... It wasn't as hard as I thought it was!

It turns out, those wasted years of Shockwave coding weren't so wasted once I altered my perspective a little. Yes, the developing environment of C# and XNA was much less visual. Gone were the timelines and cast libraries, and the code was much less intuitive. The little nuances were much trickier to commit to memory and though I'm ashamed to admit it, there were points at which I found myself sitting, forhead on the desk, seconds away from giving in. But I didn't! And that's all that matters really. Once I got the momentum going, it was much the same process that I knew and loved in Director, except that now my art, sound and music were a little better and I was coding in a big boy (and girl) language!

But this we know. (Those last couple of paragraphs were for the benefit of those who missed the interviews). Let's have a closer look at Power Up's development process and progress between January - when I committed to the project, and today.

Developing Power Up was an organic, shifting process and was always intended as such. I had no intention of inflicting it on any other artists, musicians, developers or designers. Only I was to be held accountable for the state of it. If it went off the rails into chaos half way through, it was my problem and I could start again.

As it happens, I seem to be holding the project together adequately enough so here's a little brainstorm of where I started and where it's got me so far...

---

Looking Back: (Not so way back)

*So first up, I had this tutorial thing. I followed it to the letter and had reproduced a simple game in which you can use the left xbox thumbstick to move a spaceship, which auto-fires while baddies fly from right to left and run an animation against a paralaxing background. That was litterally it, but it contained the core of what I wanted to do. The rest was up to me.

*Once I'd figured out how to attach shooting to a pad-button, a change of graphics was next up. I simply couldn't get the darned player ship to do animations so after a week fighting with that, I gave in and moved on. It just doesnt do to dwell on one thing too long. I decided I'd figure it out before the project was done and left the ship with it's first frame of 2D animation, "fly straight".

* Next, I altered the tutorial's baddies. As they were moving in a straight line from right to left, then removing themselves from existence upon leaving the screen to save memory, I decided that these would constitute the basic non-inteligent hazzard type enemies. Soon, I had 5 kinds of these, drawing them as rotating pieces of space debris which moved at different speeds toward the player and required different ammounts of shots to destroy.


the basic ship and bits of rotating debris... it all starts here!

* It was at this point that my thoughts went toward quantizing these things. This came in the form of giving the enemies/hazzards an ammount of energy while the player's laser/bullet had an ammount of damage that it does. For example, if the hazzard's energy is, say "8" and the player's bullet is "5", then two shots would kill the hazzard. I figured that this would support the whole power up system in my game, and as I was basically re-making my little demo game from years back (see earlier blog post), there WOULD be power ups! I would just have to figure that out. As for the player, it was to be a one-hit-death and that was final! Sometimes, you just have to make a decision and call it time saved. Adding player energy brought too many unknown factors to the upcoming game-balance phases and besides, one-hit-death is a simple rule, easy to grasp and adds to the impact of the enemy attacks.

*But first, I wanted to play with the bits of space debris I'd made and start to give the game a little exposition... The beginnings of a backstory crept in.


Adding some story through text and character pictures. Most important here was to make it all clearly skippable!


Winging it, my thought process went something like this: "So, you start in debris because it's easy to dodge, doesn't shoot and is a good way of warming the player up for the game to come... not to mention warming my programming up. Ok, how about this: Your mother ship has just been destroyed and you're the last survivor. Obviously, you're in the ultimate space fighter. You've just got to power it up to see what it can do...".
The destruction of the mother ship was the catalyst. I realised I'd need a sequence that comes before the debris and decided that a little opening segment with dialogue and character faces would do the trick, you know. RPG style.

As I didn't have a voice actor budget and this sort of stuff was a bit beyond my remit, I made do with text boxes... skippable text boxes..... VERY skippable text boxes... VERY skippable everything that wasn't fun shoot-em-up action, actually. With every itteration, the opening sequence became more elaborate, but also more skippable. "Y" would skip a character's line of dialogue while "Start" would skip straight to the action. These kinds of decisions can only be properly made by playing and replaying bits of your game until you'tre sick of the sight of them. It's the closest you as the developer can get to putting yourself in the place of the player is to remove the affection you have through the weeks of work you put in and replace that with an urge to just get on with it.


Working backward from the scrap of game I'd made: Here's a moment from the haunting intro story text.


*Soon, I'd inadvertently made a system for moving from one section of my game to another by just numbering them, a bit like chapters. I know there's a name for this but I don't seem to have retained it yet. Oh well. I'm sure I will and there's plenty of time for that later. As long as the concept's there, then I'm satisfied. The intro sequence spread to a big scrolly text opening, a bit like Star Wars, but in the form of the last message SOS from the mothership. Working back further still, I created the basics of the front end, complete with buttons, (though to this day only the start game button actually works. The rest is TO-DO garnish).



Getting stuck into the front end, I got the title screen to look something like this.It still needs polish but it's a start.


Then I got my head around the coding technicalities of adding music tracks and video sequences for my Psychotic Psoftware company logo. So far, so good... But hang on. I'd gotten so wrapped up in this front end lark that I'd been completely neglecting the game.

* To familiarise myself with the game once more, I drew out a load of bullet types, from straight shot lasers of varying sizes to one very strange and ambitious bullet which was to circle the player like a shield, moving outward until it faded. (This was replaced quickly with the much more realistic short-range, weak, but fast repeating plasma cannon).


 
Sketching out the bullet ideas. Some of these were more feasible than others... 


Using those health and damage values, I spent weeks drawing, redrawing, tweaking and retweaking the player bullets until I had 5 different types of gun, each with 10 different levels of power. 50 power-ups in total. Seemed pretty reasonable for a first go at a power-up based game. I also realised that once I'd mastered these guns and tightened up the buttons for shooting and swapping between them, I'd have the whole basic mechanics of the player in place early on.


Developing some of the player weapon types. The side shot, pictured, is particularly effective for clearing attackers from above and below.


* Next was the power ups. These were basically variants of the baddies. They moved from right to left, though seemed a little static, moving in a straight  line as they did. I couldn't get my rubbish code to make them float. Again, I promised myself I'd figure this out later and made them wobble in animation. The downside to this was that the collision box wouldn't move with them as all the frames were the same size... However, the upside here was that this was a pick up. As such, it needed to be very pickup-able. I left that bounding box nice and big and it didn't seem to matter that the game was being a little generous with the beneficial stuff. Nice trick! Then again, I wouldn't want that to happen with floaty baddies later on. I made a mental note to suss this in code and moved on.

*So, power ups - check! bullets and speed ups - check! Time for some more baddies. It was about here that I realised I was losing unnecessarry days to attempting to draw these spaceships at various angles of rotation in 2D. This really was sub-optimal... and besides, I'd recently learned a fairly compitent level of 3D and was pretty sure I could make these ships as models. If I was working in 4 hour evening stints, roughtly 2-a-week with the odd hour thrown in here and there when I could get them, I decided that 8 hours per new baddie ship-type should be ok. that includes design (both visual and functional), modelling, texturing, rendering, post production and basic coding. I'd generally allow a bit more time for tweaking later, but even so, this gave me very little time for messing about. I didn't do much maths on this but estimated that I'd realistically be able to add 3 to 4 new types of enemy space ship per level in a game of 5 levels. This way, I might see a release of the game this side of my retirement!!


One of the baddies mid process: This is the textured model of the MISCraft. From here it goes on to be rendered in situ, having dirt and detail added by hand before going into the game.


* So far, it seemed a winning plan. For every baddie type I created, I decided I would later add a Red version of it further into the game. The Red version would simply be a retweak of the original baddie with some extra danger. Some would move faster, some would shoot at a higher rate, some might fly at the player, sneak up from behind, shoot homing missiles, you get the idea. In a nutshell, the Red baddie was to be an evolution of the original baddie and should be achieveable in a 4 hour stint rather than 8-12 hours. Suddenly productivity increased and I was able to add new scenarios with varying combinations of baddies which demanded the use of different player weapons! Mint! ...I even sussed that baddie wobble thing and got my head around the update method that was stopping my player ship from animating.

*I was testing as I went, populating the game with enemies, balancing the power of the players weapons with the types of atack waves which the player would encounter. Obviously, I wanted to encourege a balanced power-up of all weapons, but I was determined to leave that choice to the player. (Risky I know, but there it is. Future balance passes will have to make this work properly).


The MISCraft, as seen in game. All nice and post-produced.


*As I reached the end of the first level, I laft a gap in the code for a level boss and had the game skip it for now, knowing that I'd come back later and fill it in with "The Cleaner", a ship I designed on paper and in theory. The intention was to come back around to bosses when I've learned more about enemy AI from coding in all the grunts, intermediate enemies, and finally the elite guard toward the end of the game. This way, I could take some of the finer features, attack patterns, bullet types, etc that I'd learned along the way and make something special of the bosses in a second pass.

* Was also designing level environments as I went. Basically, I'd started with a list of 10 levels, which I whittled down to 5 as I began to realise the enormity of what I'd bitten off. I decided that these 5 locations would tell the story adequately while giving the game the right variations in colour and setting. As well as making sure that my paralax layers and affects all worked well enough within my time constraints, I soon learned that the most important thing in a shooter of this genre was to be explicit with the visibility of bullets against these background colours. Adding flashes and getting the speed and size of the bullets was essential here, as was making their collision suitably small to ensure fair deaths on contact. While other coders had made some brilliant alternative collision suggestions, I realised that my basic box collision would work with a little latteral thinking atound the size of the boxes. The real enemy was time. Square collision it would have to be!


Testing the Alien city - a predominantly green level, for its compatibility with the player's green lasers.


*Back to the bosses, while I wasn't adding yet, I knew I'd have to be conceptualising early on. I wanted to introduce something different with each boss. The Cleaner is basically a massive garbage craft designed for chewing up enemy debris after the extermination operation. It also comes equipped with some of the weapons you've encountered on Level 1, just bigger and tougher.

Level 2 would pit you against Orbital Defence-01, a great big flying mech which defends the enemy planet. (basically, yeah, as you've probably gathered by this point, the story of the game is a revenge mission. Those pesky lizards destroyed mother earth and all her escape vessels so you, the last human are taking a can of whoop-ass back to them).

Level 3 progresses into the desert world of the enemy planet, at the end of which you take on The Worm, a giant mechanised, subterranian, flying er, worm.... but a welcome shift in visual motif from the previous levels.

Level 4 throws you into battle with The Walker, a great big pod on legs that chases you through the alien metropolis while unleashing hell from behind!

As for the final level, well........ That would be telling. If you get good enough, you'll find out.

You can see all of the boss sketches on my twitter feed if you look through my images there. No doubt they'll also turn up in other places on the internet as time passes. Seek them out. They're quite fun and give you a good idea of what I have in mind. I'll let you be the judge of how well I pulled them off a bit further down the line.


My sketch for The Walker. As you can see, there's a little information on how I realistically intend to break this up and make it work. Hopefully, my coding skills at this stage are up to it.


*I'm adding the sound in batches as I go, making lists and leaving plenty of gaps for later passes.
Usually the sound effects start with orchestral instruments, which I then distort to within an inch of their lives. I bought a pack a while back and they've proved surprisingly versatile, especially percussion. A pitch-shifted triangle with reverse echo makes for a great laser sound while cymbal combinations with chorus make the basis for great explosions.

*With the music... Well, when I come up with a suitable melody for that, I hum it into my iPhone audio recorder for later reference in production. The lack of in game music is my main reason for ot releasing anything that moves as of yet. (I also might have to price up some decent video capture software).

Music is a major sub-project in itself but at this point I have put some basic musical undercurrents into the game here and there just to make sure I can. I will, in fact, be making a start on the music proper soon, so stay tuned and you might soon be reading a blog on it, not to mention hearing some!

Which pretty much leads us to where we are now...

---

Looking Forward:

I'm still hellbent on getting Power Up submitted in the new year and hopeful that it'll get through the process by spring. If it doesn't, I can only appologise and keep pushing forward but lets wait and see eh. I know you guys will stick by me regardless and I appreciate that a great deal so I'll be giving it my best shot. To keep you in the loop, here's a bit of what I'll be getting myself into between now and then, in no particular order...

*Music! A big part of the plan. Each level is to have it's own track and at present there'll be a boss theme and a final boss theme. The front end will also have something all moody and haunting, but in keeping. A while ago, I did a game soundtrack with techno and orchestral score, topped off with a spot of theramine. I'm thinking something similar, but this time I'm tempted to crack out my guitar and my big Marshall amp to throw in a little industrial edge. Like I said, melodies are taking form, though like Mozart, at present they're mostly in my noodle... Did I just compare myself to Mozart??... well, the 1980's movie Mozart, at least. There'll also be a few musical stabs and bridges between events to work out. Half of the game's charm is in how I cut things together. I think I can do a bit better than start level, play music. We'll have to just wait and see. Either way, I'm giving it a lot of care and thought and hoping to put in a couple of additional week ends here and get through the full, consistent soundtrack in a couple of weeks.

*Complete the first pass! This basically means get all the baddies into the game from level 1 to 5, making sure that the difficulty roughly ramps up as I go, as do the player's opportunitites to power-up their weapons. This is really the biggest individual job of all as it consists of coding in the real meat of the game, it's enemies AI and how the player and our many bullets interract with them. I'm midway through level 4 of 5 at the moment and will only be pausing for the music task... well, you do want some video footage, right?

*Second pass.This will partly be to balance the baddies and weapons again, but will aslo be for adding cutscenes, dialogue, and pretty much anything else I've got in mind. I'll generally be re-using game art here but might be adding some end of level warp effects, etc. Again, we'll see. Also, I'll be adding in the dialogue pictures for all required baddies and a maybe a couple of goodies too. This is 2D art and each character will probably take a 4 hour evening or-so to get right. I'll find a few more hours here if I have to.
This pass might finally include the addition of a few simple baddie craft that I have in mind, here and there to help solidify the action a bit. I hope to finetune the balance of furious action with moments that allow the player to breathe and compose themselves too. Relentlessness does not a good game make.

*Boss pass. This is pretty much where I take all those boss ideas, tidy up around them and make them actually happen. I'm hoping for about a week-per boss, with a week or so to clean them all up, making for something like a 6-week boss process in total.

*Additionally, there's a load of small but important jobs to fit in. Drawing up the last level, the ending sequence/s, running through a Game Over sequence to the front end, getting all those Front end buttons working, not to mention the vast ammounts of sparkles, flashbangs, background animation and general garnish I'm planning on adding into the game. There may well be the mandatory screen-clearing Special weapon for arkward tight spots too. I've coded in the pick up. A couple of nights' work and I'm sure I can have a screen-clearing explosion working!

* Then there's marketing materials, high res images, videos, logos, even icons if I follow through and actually make a Windows version. I know some of you would like to see that and I think I'm just a bit of research away from making it a reality. Other post production stuff includes the actual, infamous xbox submission process. This is something I'm going into blind. If I get incredibly lucky, people will jump in, test it, come back with a few quck fix bugs and BOOM! Game's out!... Meanwhile, back in the real world, even three months for this might be optimistic. I mean, how the heck do I even do a demo mode?? Complications are going to become prominent around this phase. Once again, we wait and see... and most importantly, LEARN from it all so that the next game will be slicker and better.

---

To Conclude: (Quite quickly, cause let's face it, I've gone on a bit).

I realise I haven't covered all of the stuff I wanted to.

With regards to things I should/shouldn't have done or did stupidly wrong overall, well that might have to be a blog post all of its own and one for another day.

With regards to the subject of where my experience with Power Up will take me in my future games, that's definitely a post for another day but there's no shortage of ideas there.

This rundown of things I've done and things to do seems to have been written as more of a stream of consciousness rather than an ordered, organised plan. I'd like to think that it has some value though as an insight into the constant chattering and buzzing of my developer's mind on the subject of my first little xblig project... Don't worry though, As the jobs become more immediate they tend to become clearer and the immediate schedule becomes quite ordered.

In short, I remain confident. Nieve, but confident.

6 comments:

  1. Great read. I think many independent developers can see themselves in this. I know I've had those "forehead on keyboard" moments. I'm a bit ashamed to admit, I've gone the other way most of the time and gave up.

    I love the way you planned the development. I think I can learn a few lessons from what you've done so far, so thanks! The stream of consciousness helped show that process, so don't worry about that.

    I can't wait to see it. I'll try to be there to do the peer review in XBLIG. However, I might cancel my subscription until we're closer to release. If you release on Windows too, I'll be happy to give it a good once over for bugs.

    Keep up the great work!

    ReplyDelete
    Replies
    1. Hi Dan. Thanks for leaving the comment. I'm glad you persisted with it in the end. Means a lot to hear I'm doing things right. Don't berate yourself for giving up on the odd project. Usually that just means it's time to move on and take your experience with you to the next project. It's not such a bad thing.

      As for planning, well, I have several little games in my head at the moment. Some are extensions of what I've learned with Power Up, some are completely different and to be honest, at this point I've no idea how I'll manage to make them. Still, that's no reason not to scribble notes and drawings of characters, bits of environments and general mechanics. I find that doing that all makes things a lot easier when you come to actually code the thing and I'm building up quite a collection of half-filled notebooks and sketchpads in my study.

      Know what you mean about xblig subscriptions too. I'm not paying a penny until I'm ready to submit. I figure it's a year's subscription and I'd like to try and have another game out before it expires. Big companies tend to forget that we're not all big companies. Our budgets are TIGHT!

      Delete
  2. I have had many of those giving up moments, and unfortunately I have given in many times, leaving half-done projects just sitting on my drive. Maybe it's just being to ambitious, I don't know. My current project I'm expecting to take some time, but I have the right motive this time, making a game that I would want play, instead of focusing on how to make a game that's something everyone else wants.
    Reading this, I can't wait to play this. I too will try to get on the peer review for this game. One nice thing about working in the XNA Studio is that you can make the game Windows compatible with very simple code changes. So it'd be cool to see options for this (and with Steam Greenlight, you can publish pretty fast there too!)
    Good luck with it!
    P.S- What sites did you release those other games on? I know it's a crap-shoot to get them noticed, but have you put them on Newgrounds, Armor Games or Kongragate? I've seen some games do well on these sites.

    ReplyDelete
    Replies
    1. Hi Danny. Nothing wrong with ambition. Like I said to Dan, half finished projects pretty much constitute a bucketload of experience. I'll bet that if you were to make something simple like Power Up you'd be able to throw all kinds of cool effects and baddie ideas at it.
      You're dead right though, making something you'd like to play is the way to go. I think the reason my stuff is mostly retro styled is because as a kid/teenager I wanted so badly to make those Spectrum and Amiga games I was playing.
      I made several design documents for my own Moonstone clone, pretty much wore out my copy of the Shoot-Em-Up construction kit and fell head over heels in love with Deluxe Paint, creating whole game asset sets of art with no idea how to code it.
      This meant that when I came to making my own games I didn't waste time looking at what was in demand.

      I tend to think about what gave me that warm fuzzy feeling. Imagine I was about to make that game. Once I get started I build in it. Eventually I find myself still having fun and at a point where it makes more sense to move forward than back. That seems to be pretty much the art of getting to the end of a personal project... not that you have to finish them all the time.

      Cheers for the advice with publishing. I'll have to make sure the game is up to scratch before I jump in there but I think I'll give it a shot after xblig.
      Those older games I made were in Shockwave and a lot of the sites you mentioned preferred Flash games. I had quite a good relationship with the other users of Kong but my stuff didn't do too well. I think it was a combination of the shockwave thing and a few loose ends in the game designs. Hopefully I'm improving on that front though.

      Delete
  3. First of all, I am no game programmer, only game consumer. I do program stuff for my living, but I am doing boring client/server enterprise stuff. So I come from that background.

    While I can see that you've made more than several advances in your game design/programming skills/working ability and more, I think that you should consider what brought you to the place you are now. I mean the start of the story.

    "My abillity to get the word out about these games seemed to be sub-optimal at best and any advertising income I'd made from the games was constantly below the line of what I needed to make to actually claim the cash (somewhere around $5, US). Ultimately, I was looking at a collection of games that constisuted a good 5 years of my spare time and had gained me precisely zero returns" you said.

    As it is quite possibly that the platform you've chosen and its dwindling at the time was the main reason, as you've said yourself, the games you previously made were not bad games per se. So other than the obscure platform, what else was the reason so that your games were not making money and the name for themselves?

    I would say that you need to flex out your marketing skills, or maybe try and get someone with good marketing skillset on your side. Not only that - you need to realize what is special and unique about Power Up and why the people would and should flock to it. Tight controls? Addictiveness? Great soundtrack? Some never(rarely)-before-seen gimmick?

    Do consider two things: one - what will separate your game from the rest. Compare Power Up to its role models (I'm guessing Gradius, R-Type) but also compare it with modern contemporaries.
    Two - how to generate interest and get more people to realize that you are making something that will interest them. Use power of social media, do some research how social media work and start the ball rolling. Go classic route by releasing demo to gaming sites/magazines. Maybe even pay for some advertisement or some high profile sites?

    Dunno, but these are all options that you need to explore or you might end up making another good game that you'll feel hasn't returned your invested time and effort.

    ReplyDelete
    Replies
    1. Hi Rocky. Thanks very much for your comment. There's some very good advice to be found there...

      Marketing and social media were definitely at the forefront of my mind when I revised my approach to making my little games. Once I got Power Up underway, the first thing I did outside of the actual production of the game was to set up my twitter account @psypsoft with which I then set about digging out all of the likeminded people I could muster, learning about their work and shouting about mine.

      A facebook page, YouTube channel and even the beginnings of a website soon followed. www.psychoticpsoftware.com is currently just something of a hub for my social media links, but once I've got Power Up finished I'll be looking into making more of that... not to mention the other social avenues.

      At the moment, my main limit is cash. Later on I might be able to invest in some more effective avenues of marketing but for the time being I'm finding that just taking the time to engage with people that have the same interests seems to be really helping to spread the word about Psychotic and about Power Up.

      Some of the indie gaming sites have very kindly agreed to write pieces on me and as you say, the ball is definitely rolling. With a bit of luck I might even start to make a bit of a living out of it in the not-too-distant future.

      ;)

      Delete