Well, the game is finally “finished”; finished in the sense that it must be handed in for assessment purposes, not finished in the sense that I could spend much more time making it better. Here is it’s trailer:
You may notice that it looks different to the previous videos; unfortunately Natalie is completing her own game and you can follow her work at her blog, Fairy Landing. The inferior (if, serviceable) art in the trailer is my own.
So, now that it’s ‘over’, it’s time to contemplate. So, in no particular order:
Things I have Learned
Figure out exactly what you want to say and keep it simple. I think the game suffered because I tried to fit too many ideas into it: it would have been more effective if I had just stuck to one.
Design documents are a must, no matter how simple the game. Not only do they help smooth out communication problems between team mates, they can force you to address problems much earlier in development, which saves everyone time. I didn’t do this and really wish I had.
Dodgy code can be a good thing. After the last two years of spending too much time making my code ‘correct’ and ‘best practice’, to the detriment of learning other skills, I promised myself that this year that if something worked, I wouldn’t spend any time making better. And while I inwardly cringe and shudder at Anima’s code, I am very happy that I did this, as I gave me some time to pursue learning other skills.
If you’re going to specialise, make sure you’re specialising in the area that you want to be working in. While I got try out a few other things, I did feel that I spent more time than I would have liked, just coding the game and wished I had taken the opportunity to practise my design skills.
Just like coding, modelling, drawing, etc. making games are a skill unto themselves and need to be practised in the same way you would learn an instrument or a language.
Establish at the beginning whether your teammates wants to have a contractee relationshiop or a collaborator relationship – they are very different things!
Don’t be afraid to keep asking for help! I got turned down twice by music students before I got lucky. Mitchell Poloni has created beautiful music for Anima and I am very happy that I persisted in looking for someone.
Make sure to leave some time for testing – Anima has only been limitedly playtested and I wished I could have tested it more before finishing.
Have realistic expectations of the outcome of the game. If gamemaking is a skill to be practiced, don’t expect your student game to compare to someone’s who has been making games for twenty years, while you’ve only been practising for three.
With considering that last point, I think everyone in the class can be very proud of what they have achieved.
Seeing our last chance to change the game’s name – before we were permanently stuck with it – we have chosen the more appropiate title of “Anima Aeterna”. It roughly translates to “breath of life everlasting”. I feel it reflects the themes of the game better than the previous name.
So, been doing a LOT of bug squashing. Not done yet either. -_- Mostly my fault – from sloppy coding and design assumptions , but here’s a pro tip for everyone else: just because you can change the values of something in the Unity editor, doesn’t mean that attribute is exposed in code. Lordy. -_-
Also implemented a couple of suggestions from the feedback we got last semester: adding heartbeat to seed (which syncs with cursor and speeds up near fire) and auto respawning of the seed. Also implemented the bloom incrementing and punching. Check it out:
Now some helpful links I’ve come across:
A big list of game making engines & tools with pro’s and con’s.
A blog post, that while it’s titled “Code Optimization in Unity”, is actually about something much more important: whether you actually need to optimize your code and how to find that out in Unity. This would probably be very helpful for the teams working on iOS games.
“Throw the Looking Glass” has a lot of great articles/podcasts on game mechanics and a series on how to best playtest your games. They also have a physics integration for FlashPunk!
And while we are thinking of where & how to publish our games, here is a massive list of websites that will host/sell Unity based games.
And finally, for your reading pleasure, Development Quote of the Week:
“What’s the Latin word for seed? It couldn’t possibly sound worse than the word ‘cox’ .”
First up, we received advice from a horde of professionals and teachers. All of it was good advice, though it took a while to digest. Unfortunately, we’ve had to move a lot of it into the “That’s great – for the sequel” box, as implementing them would put finishing this semester out of reach for us. As it is, Natalie and I have decided that to set realistic goals for ourselves this semester, so the version that we finish for assesment and publish on the web, will be a demo version and hope to use Rockethub or something similar to raise the funds to release the ‘full version’, containing all of the levels.
Other important decisions include removing the tar and replacing it with radioactive waste, adding in a few visual enhancers and giving the seed more personality.
I’ve also been playing around with Unity post effects and I know I’m about a decade late on this bandwagon, but OMG BLOOM SO PRETTY. So, now we’re going to have a slowly increasing level of bloom (related to the percentage of seeds planted) as well as a little ‘punch’ of bloom during the planting.
This is an example of what the game will look like at full bloom level:
Unfortunately, we will miss our target for this sprint – a fully polished level, as there are still a couple of bugs related to blending the foreground pieces, I’m still not happy with the appearance of the water, tar and cursor and we are still misssing the plant animations.
In the helpful utilities department, if you are using Unity, you have probably come across the annoying problem of Photoshop alpha’ed textures having an outline/halo. I came a cross this great little program by Reiner of the famous Reiner’s Tilesets , which fixes that problem – it also does batches of files, so you can fix all your files at once – hooray!
In the last couple of weeks, I’ve been working on a variety of things:
I needed a way of being able to cross-fade textures/materials, so we can see the landscape slowly change from barren to teeming with life – easier said than done. This led me to dive into the fascinating world of Unity’s shaders. Very interesting and capable of creating some very cool effects. I ended up modifying a shader, that allows for lerping between two textures; it’s best to make the two textures as similar as possible, or you can end up with some weird artifacts.
I’ve also had my head buried in one of my favorite topics: particles. New shiny effects for our obstacles: fire, wind, water and planting spots.
Water’s behavior has also been modified to be more in line with the original concept; it now presents a timing puzzle for the player. As you my have noticed, the seed’s appearance has been altered – this was in response to feedback that we should try to breathe more ‘life’ into the seed. I’m not 100% happy with this version; while it certainly has more life, I’m not sure how well it matches the rest of the art. Expect tweaks to follow.
For this sprint we are aiming to have a fully polished level (minus music and sound). From there, we will be looking at how to streamline our processes, so that the subsequent levels can be completed more quickly.
And for this week’s Mea Culpa Maxima: I have apparently gotten the Latin meaning of Genus Loci mixed up with Genius Loci. Genius Loci is the one that means atmosphere or a guardian spirit of a place, whilst Genus Loci means birthplace. Whoops. Probably just stick to Genus Loci for the time being as a) it still fits in the context of the game and b) as far as I’m concerned, it was always just a placeholder name until someone came up with something better.
Exciting news: we may be getting a Conservatory student to work on our music and sound (ie. someone who knows what they’re doing, as opposed to me ^]^) ! The lovely Yena (of Button Bash fame) will be presenting for us.
Progress is going well – “planting” is working, as is seed respawning and when the level “ends”. However, I have encounted a couple of unthought-of problems involving the camera. While I solved the issue of the camera losing & refinding its target, I am now stuck on what happens if a seed is lost to fire, but there is no plant to respawn from on-camera? As the camera only follows the seed, it means the player could be permanently stuck…. I will be grappling with this particular problem over the next week.
And I have been very remiss in not posting our game development quotes of the week:
Our sprint schedule for the next 3 weeks: (Click through for large version)
As you can see, our theme is Beginnings: Chunk 1: The Chunkening: On the Way to the Hangman’s Noose – we take our production VERY seriously.
I will be working on adding in the things missing from the prototype: being able to plant the seed, respawning, level completion/progression and parallaxing. Natalie is working on pretties and Simone is taming our input controls.