Month: December 2013

Hi, I’m an Indie Gamedev

Why on earth would someone give up a nice career and/or great, stable income to sit at home doing childish stuff like making video games? Well, there are probably as many stories about that as there are independent video game developers.  But what is indie gamedev and who are those people?

There seems to be certain types of indie game developers. There is the young, hippie-looking guy who makes pure games (according to himself, at least). Often still in school or recently graduated, very often with badly groomed facial hair, he mingles a lot in various big and small indie video game meetings and conferences, and makes those retro games. His games are purer than yours because he tunes his game mechanics a lot and the game is not about fancy graphics like in that triple-A FPS everybody loves to hate. His life is good enough that he can get by making games and posting pictures of his hipster beer on Twitter. Often he lives in a shared apartment which looks like a bunch of hobos lived there. I have no idea how these guys get by or had enough money to start their gamedev journey in the first place. Ranting aside, there’s a lot of awesomely great games coming out from these gamedevs.

There are also the professionals who have been in the video game industry for many years, often in bigger, perhaps AAA game companies. One of them gets enough of the shitty projects and insane deadlines, and nicks a few friends with him when he quits. They set up an independent game studio and push out the games of their dreams. These games tend to be the big hits as they got all the components – graphics, audio, game mechanics – on a very professional level. The game studio is financed by everyone’s savings until the first game is out, after which they are filthy rich. Perhaps they have got some funding from external investors, but how indie is that?

Then you have the guys who wanted to do something else, or always wanted to jump into their dream job of game development. They’ve saved enough money to make the jump, or they have good connections to their previous profession and do some sub-contracting to get income during the game development time. They might do full-time or part-time depending on the possibilities around their very grown-up lives. Often a bit older with a significant career or work experience in their back pocket – most likely from whole another field of work than gamedev. They seem to overuse the word “dad” in their Twitter bios.

I’m of the third kind. Too old to be a hipster hobo and no gamedev experience in my career to jump-start a professional game studio with friends. I was a bit hasty in jumping into this field, which has always been my dream work, so I did not have enough savings to go full-time indie. I resort to the pretty-good solution of doing sub-contracting into my old field of work. It has upsides as well as downsides – the upside is that the money is pretty good, and in one aspect pretty easy as well. The downside is that it eats up a lot of your precious time of game development. Now, for a bit younger guy – one without family, that is – this would be no problem as I could just code deep into the night, around weekends, around working days. But I’m not a weirdo who loves his job more than his family.

As the success of an indie gamedev is, for the lack of better generalization, the amount of games he has pushed to the market, I have been toying with the idea to go full-time indie. But there’s the income-issue to be solved. Crowd-funding? Zeroing out gamedev time to go beg for money to angel investors or VCs? Begging for investments from family and friends? Perhaps go as deep as taking a personal loan? Viable options, all of them.

But what is “indie” then? I’m not going to dig deep here, and trying to define it is only for amusement. Most people use the word “indie” as opposed to the big game studios pushing out all the well-known games (“AAA games”) with massive marketing budgets. But I’m a bit more strict than that: “indie” comes from “independent”, alas, if you have a lot of outside funding, you are not independent anymore. Sorry about that. Now, there is some wiggle room here. If your funding is mostly from family and friends, or the like, I bet they do not want to meddle with your game ideas that much. You’re still indie. If you got investors who don’t want to design your game too much, then you’re still indie. My point being, as long as you and/or your team which is directly involved in the making of the game is still in charge, you are an indie. You create the game independently of any outsider. I think such a setup gives you a lot of freedom as you are making the games YOU want, and that is why we see such a great amount of creative, weird, cool, awesome games from indie gamedevs.

Being indie is naturally no magic recipe for making great games. If you are making another clone of an 3D endless runner where you swipe on the screen to make your game character move away from oncoming obstacles, your game still sucks. Also, stop with the Minecraft clones. It is embarrassing.

Well, that’s it for some ranting. Enjoy your holidays – I will take some time off and hang out with friends and family. Even as an indie gamedev I can afford that.

Tiny Notes for Tiny Effects

So far the game has had very little details like visual feedback on actions – meaning mostly small visual effects when you do something on the screen. In the prototyping or first testing phases you naturally don’t need such, but no game is finalized without. I’ve been putting in mockup art for both the iPad and iPhone/iPod resolutions so I could do better testing on the actual devices but after a while of testing I had a nagging feeling “duh, this is a bit boring and plain somehow”. The risk of making a bit of a minimalistic game, I suppose.

But most of it was actually due to these FX being missing. It’s hard to grasp what happens in an action game without all those small details – why, how, did that character just disappear? Wow, how come there is an Oggiput on the playfield now? So I’ve been playing around with this, getting in various effects, but as I started doing it without any real vision on how it should look, I am not particularly happy with the end result. Well, on the positive note I got really acquainted with the animations Cocos2D has to offer.

Now that I’ve let it simmer for a few days I am convinced I should stay minimalistic with the effects as well. No insane particle effects with blurs and lighting effects, but more in the style of the characters in the game. As a beginner it is easy to get carried away with a particle editor… If you’ve seen the screenshots you can tell the shape “round” is quite a generally occuring thing. This got me the idea for the burndown timer particle effect and when you happen to squash a Kisau Veela. Round sprites with some fading and blinking added, in that arcade game style, is what the game needs I think.

Also, there is a lot happening on the screen at the same time as the game progresses, hence a huge particle effect would not be kind to the eye – the main part of the game is about being able to keep your eyes on the Kisau Veelas’ colors and amounts on the screen.

The insertion of all the mockup art made it possible to get rid of the debug draw methods as well. Together with an optimization I made – actually more a must-do-refactoring due to a bug in my state machine – the game actually runs nicely at 60 fps on the iPhone 4. Whew! With debug mode on it was like 7-10 fps and I got worried there for a while…

Testing on the iPhone revealed at least one thing. The game is notoriously hard on the small screen. And if it is hard for me as the developer, it is probably impossible for you a a casual gamer. I knew from the beginning this game would be better on the iPad, but I really want to make this a Universal game for both device families. I’ve got some tuning to do to make the same as similar on both device families as possible, even though they will never be exactly the same due to the resolution differences as the game mechanics are tied to the shape of the playfield. For this reason I need to implement separate Game Center leaderboards for iPhone and iPad, but more on that later.

There’s also a technical issue special to this game while making it a Universal game. Due to the resolution difference and usage of Box2D I need some scaling to happen on iPhone compared to iPad. Otherwise the characters are way too fast and large on the iPhone (think of a ball being kicked with the same power on a small field and on a big field – on the small field it arrives faster to the other side). The Box2D bodies do not scale automatically according to the sprites when Cocos2D is loading the sprite sheet appropriate for the device. I had to hack the class which handles the Box2D fixture loading from the Physics Editor files but in the end this was a very simple thing to do.

Pietari has been doing backgrounds for the Game Over, Level Up, High Scores, and Start Menu scenes. Next up is the playfield background and HUD and finalization of the characters. On my side I need to adjust the game mechanics on the different devices, continue the FX implementation, and tune the scoring. There is one particular game mechanic “glitch” I need to fix somehow – that is, how to handle the scoring et al. in the case the player just whacks around the playfield like crazy. This sort of behavior should not yield a particularly good score and/or chance of leveling up.

Screenshot Saturday #3 and Various Ramblings

I’ve realized I haven’t really spilled any beans on the first game I’m making. There’s a whole science behind how and when indie developers should announce their game and the general consensus is “as early as possible”, while the other angle being “if I now tell my awesome idea to the public, there will be someone ripping me off and releasing a clone of my game earlier than I can push it out”. Valid points, both of them – just look at the mess the awesome Dutch game studio Vlambeer has been facing. I gotta admit, I have a slight, irrational fear of losing the worth of my work by some a-hole cloning my game idea and releasing it faster than the original. I say irrational, while it is clear I have no real traction in the game development community (YET!) and who the heck would actually stumble upon my idea and decide to clone it. But the issue is a bit deeper than this – my fear is not so much a fear, but a realistic computation of when it actually makes sense to spill my beans. It has to do with the equation of how much I have implemented right now, and how much I have left to do: in case the game announcement gets traction in the press, I, just like anyone, would like to be sure I can push through and get the game out there in due time. Hopefully faster than any competitor. Another factor for me is the state of the art [sic] – I prefer to have the grand part of the graphics of the game finalized/near finalization before making the official announcement. Kind of “having something to show for real”. This could be a Finnish mentality thingy. And perhaps something I drag along from my previous work in a bit heavier financial IT projects.

But I’m sure the announcement and releasing of the next game will be different in the positive meaning. This slight irrational fear is bound to go away when I am more seasoned in game development, I am sure.

Well, the previous post certainly left us with hopes for a more informative blog post. Describing the developer side of the game making is probably interesting mostly to the fellow developers. And there was some features I forgot completely I had actually implemented when I posted the previous post!

Let’s take a look on a more recent screenshot. Please keep in mind that the art is still only mockups. And don’t mind the debug texts there, they are for testing the scene transitions.

The feature I forgot to mention is that red/black bonehead of a guy you see in the screenshot above. Yes, da Oggiput, he’s now in the game, and messing it up but only if you mess up first – he pops into the playfield when the player does an erroneous move. The usage of him has evolved a bit from the original idea: I think I will use him as “lives” in the game, in the traditional “three lives and you’re out” kind of way. That way the game gets a bit more dynamics into it – but rest assured, it is still very unforgiving about errors and will pop up that Game Over screen in no time.

There is only one finalized feature you see in the screenshot – the timer bar on the left. No, the particle effect on it is not finalized. The timer, or “burndown” as I also call it, has a few other uses in the game than just a timer. Surely it will remind you that the time is up once it burns down to the bottom, but if you pay attention to the gradient colors of it, you may see that the gradient’s color, order, and relative size seems to correlate with the Kisau Veelas on the playfield. Wink, wink. This was a fun thing to code, BTW.

Screenshot-level-up

Let’s treat you to another screenshot as I spoke so vastly about scenes and layers in the previous post. The “Level Up” is a feature I came up with while testing the initial prototype of the game and I think this feature gives the game much more longevity. We have, with Pietari, a certain minimalistic take on the game so I have to be careful not to overdo it with new features, but this one is certainly going in. Ta daa, hereby follows the official beanspilling of the goal of the game: to get a high score. Yes, how disappointing. All this just to get some points? Well, arcade games are quite often like that.

And for that purpose the Level Up is a good feature. With only the “Level Up” text and the Play and Menu button as finalized art, you can get a sense of leveling up meaning to get another Kisau Veela into play for the next round, thus making the next round harder. How many you will start with and how many you will end with is still up for tuning on my side, but most likely I’ll go for four Kisau Veelas to start, and six for the last round, thus making three levels in the game. So, in these three levels you’re chasing that highscore to brag with among your friends. A pretty pure gaming experience, in my humble opinion.

Bruce Lee

Counts as a Milestone

What an awesome week. I got a full three days of game dev done, and even if that does not sound like a lot – would you believe, I work more or less normal 8-hour days even on “my own game dev days” – there was significant progress made on the game. Unfortunately there’s not enough new art in it to cater for a Screenshot Saturday, so I’ll just list the stuff I got done instead:

  • As I finally have a development device, I tested and tuned the multi-touch gesture handling I already coded like 3 months ago in Spain. Funny to see that the code actually worked – the log was filled with the expected gibberish as I played around with the real device. Funnier still, I did not know that one can actually test, if not all, at least some multi-touch gestures on the simulator by pressing the Option key on the keyboard while clicking the mouse. (Don’t know exactly which gestures, but at least the pinch gesture (zoom-in and zoom-out) can be simulated with that.)
  • Scenes and layers, baby. I have now real, functioning placeholders for all the scenes in the game. So far I had only “Start Menu” and “Play” scenes. I still use “placeholders” as the word for them, as they contain only mock-up art and animations.
  • I tied the scenes to the game state machine and therefore made the game really playable for the first time. What an awesome feeling when firing it up on the iPad Mini!
  • I adjusted various game mechanics details, as I have had doubts on how the multi-touch gestures and the game mechanics I came up with a year ago after a glass of red wine will actually work in real life.
  • I tested, a.k.a. played, the game quite a lot.

So now it’s really rollin’ and I assume I could say I will be a game developer when I grow up. The game is fun enough and I’ve got so nice feedback on the art that the game is certainly up for releasing in the App Store. Release a game -> Officially a game dev -> Great success!

I haven’t ever had a real schedule or deadline for the game. My initial “probably by change of year” was just a guesstimate, so it does not bother me much that the releasing will be shifted with a couple of months to about February/March. This is mostly due to me moving back to Finland and all that – the practicalities shaved away about 5 weeks of proper 3-day-a-week game coding. If I estimate the hours I’ve put in and how many I still need to put in, my initial guesstimate is actually quite accurate. I’ve still got one big part left – audio. I will commission that and hope there won’t be any nasty surprises. Hey, if you’re into game audio, drop me a line on Twitter!

Alright, conclusions and next steps after first real game testing:

  • My initial thought that the game will be best on an iPad or iPad Mini probably turns out to be true. Well, this is not that surprising: MOST games are probably better on a tablet than on a phone due to the screen estate difference. The iPad Mini seems a particularly good gaming device.
  • The tuning I’ve done to the game mechanics was certainly required, but luckily I haven’t diverted too far from the original idea. On the contrary, together with some new ideas like the “Level Up”-style game progressing, I think game is simply better. I noted one “severe” issue in the current version in how the Kisau Veela’s are behaving, but that will be an easy fix for the next version.
  • We will start finalizing the character art and the “static” art like the backgrounds for all the scenes with Pietari now. This will make the game look much more finalized and that will certainly trigger a need for a Screenshot Saturday and a teaser trailer, right?
  • Trailer making. Sheez, don’t get me started, I have no idea how to do that stuff…
  • I will need to whip up a spec-kind-of-document for the audio part. It’s probably good to start earlier than later with that.
  • I’m still a bit unsure, but I think I’ll need one more scene. Currently there’s “Start Menu”, the play scene, “Level Up”, “Options”, and “Game Over”. There are two ways the game can end: game over, and game over, and I need a scene for the “good” game over kind.

Oh, yeah, the icon of the game is awesome, me thinks!

AppIcon76x76

Simple, clear, clean. Stands out amongst the hugely crammed icons of nowadays’ games. I scientifically tested that: I put it on my iPhone in the middle of all the other games, and this one shines through, take my word for it!