Anima Aeterna : Retrospective

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Establish at the beginning whether your teammates wants to have a contractee relationshiop or a collaborator relationship – they are very different things!
  7. 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.
  8. 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.
  9. 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.

Anima Aeterna #1 & Link Dump

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’ .”

How wrong I was about that.

 

 

Genus Loci #19

Long time, no blog. Been busy, though.

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:

Genus Loci Beta #3 from Jasmine Choinski on Vimeo.

OMGSOPRETTYMUSTINCREASEBLOOMSOMEBODYSTOPMEPLEASE

Speaking of pretties, be sure to head over to Natalie’s site to see some more of the awesome art she is making for the game!

Habeas Ludus

Last week we were given a contract by Griffith to sign. Here is my related FAQ:

What’s the problem with this contract?

Firstly, it wasn’t written with game development in mind and is instead targeted to the film students. Secondly, it allows Griffith to modify and distribute our games at will. It also requires us to provide written notfication everytime we want to distribute or publish our work.

This means Griffith could potentially give our game to other students to tinker without our permission, offer our game for free download while we’re trying to sell it on the app store, etc. It also means you will have to notify Griffith for every separate place you want to publish your own work – whether it’s the app store, kongregate or even your own webpage (!).

What’s the easiest way to protect my work?

Don’t sign the contract. Griffith has no right to your work without it.

Why should I sign?

If you sign it, Griffith *may* use your game for publicity, thus giving you a higher profile. They may also enter your work into festivals or competitions, giving you a chance to win stuff without doing anything.

Why should I bother modifying the contract?

It’s a middle-of-the-road solution: it allows Griffith to use screenshots and videos of your game for promotion and allows them to enter the game into competitions, but doesn’t let them do anything else with it. It also negates the need to notify them everytime you want to publish your work.

How do I modify the contract?

1. Print out the following and attatch firmly to the original contract:

1. I grant Griffith the use of screenshots or videos of my work ONLY for teaching/research/academic purposes and/or the promotion of Griffith and Griffith’s promotional material. Griffith may alter or modify the screenshots/videos for the above purposes.
2. Griffith may distribute the game ONLY to festivals or competitions. Griffith may not distribute or publish the game for any other purpose or via any other avenue.
3. I retain the right and freedom to distribute or publish my work without giving notice to Griffith.

In the event of any inconsistency between these and previous clauses the above three clauses will prevail.

2. Sign the contract.

3. THIS IS VERY IMPORTANT: Underneath your signature print “Subject to the attatched page and clauses.”

Will Griffith accept the modified contracts?

No idea. But I feel it’s worth trying.

Remember, whether you decide to sign, modify or not sign, you must decide as a team.

Also, I can walk you through modifying the contract or answer questions on Wednesday. Just let me know!

Genus Loci #18

New video here, unfortunately the capture software has rendered the framerate funny, but should show you how it’s looking now:

Genus Loci Beta #2 from Jasmine Choinski on Vimeo.

Mostly just a lot of little fixes, but does feature the major improvement of Natalie’s flower animation. I think it’s gorgeous!

Hopefully I will be able to show off level 2 soon – it’s looking great! My end of semester goal is to have it playable.

Speaking of end of semester goals, Simone has had to leave us to focus on her Graduation. You can still follow her progress at her site, Wicked Little Sprite.

If anyone has need of a shader that helps with sorting problems, let me know, as I’ve written a few.

Genus Loci #17

The end of this sprint marks the beginning of beta for Genus Loci. Woohoo! Some bugs to be sorted, but otherwise ticking along nicely:

Genus Loci Beta #1 from Jasmine Choinski on Vimeo.

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!

Genus Loci #16

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.

Genus Loci Prototyping #4 from Jasmine Choinski on Vimeo.

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.

Genus Loci #15

New version is more or less same as old version, but now featuring pretties! Non-functioning pretties, but pretties nonetheless. Next task is to make pretties function.

 

 

Genus Loci Prototype 03 from Jasmine Choinski on Vimeo.

 

 

On my traverses through the Unity-verse, I have found a couple of things that might be helpful:

A script that allows you to change the pivot point from within the editor in Unity here from Solve the System.

Custom shaders that are perfect for 2d games (especially those targeted for iOS) here from Owlchemy Labs.

 

And for your consideration, more salvosfrom this week in the trenches:

“I’m a rarity.”
“You’re a something.”

“It’s a nice idea, but… what’s the word?”
“Believable.”
“Yeah, that one.”

 

Genus Loci #14

New improved video:

 

 

Genus Loci Prototype 02 from Jasmine Choinski on Vimeo.

 

Camera issues are (thankfully) fixed: camera will revert to the last plant you planted.

 

Looking to add beginning and ending screens for each level, as well as level switching. Next week we hope to have all functions and maybe some art for show.

Genus Loci #13

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.

Check out the powerpoint here .

 

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:

 

“Why? I don’t know why. Just do it.”

 

“Because diagonal makes it look cooler.”