Aceria

LD24

Ludum Dare #24 Post Mortum

In the rush of getting this done, we completely forgot about writing a journal :(

This was our first Ludum Dare, and only our 2nd Game Jam. I personally think that we did a pretty fine job on making a polished game.

The core of the game was built in several hours on the first day. This allowed us to really quickly start building up levels and messing around with gameplay.  This seems to be the way to go for any Game Jam. Simple mechanics that can be complex enough to be fun.

What will we improve on next time? Definitely a level editor. I wrote an importer that would read .fbx files into Unity and create the levels. While this wasn’t bad, it wasn’t optimal either (it required me to delete all the levels and regenerate them if I wanted to check 1 new thing). I would also like to get more feedback during the development from other people. Right now we only publicly released 1 other version (that was the one that was built during the first few hours), that made it difficult to understand how difficult/fun/frustrating/easy our  game was.

If you’re interested in the first version, it’s still online here: 
http://elwinverploegen.com/beta/cubism/

 

The team consisted of me, Elwin Verploegen (programming), Tino van der Kraan (art& level design) and music from Boulders Below (a friend of the team).
Looking forward to the feedback, hopefully it’ll catch on, as we have a lot of awesome ideas to add to the current version!

Go Back – level creation

One of the first thing that we solved after getting the basic mechanics working, was creating levels. We knew that if we wanted this to work, we had to have polished levels that were enjoyable. A quick level editor would be sweet.

Sadly, I didn’t have time to create a level editor. So we did the next best thing: we created the levels in Maya. This was amazing for 2 reasons:
1) The artist had more time than I had, I was kinda busy coding features.
2) Testing levels was blazing fast. Don’t like a level? Delete and rebuild.



What we did was create a default cube, this cube would be the same one as the artist would use in Maya. The script I wrote would read out all the level meshes from a certain directory and loop over all the cubes in that mesh. If these are named “Sticky” or “Bouncy”, they would be tagged in the script as their respective type. Simple and easily expandable. The only downside my script had was that it doesn’t allow for a single level to be reloaded, it would have to go over all the levels to rebuild them. The process only takes half a minute or so, so this wasn’t worth the time to fix.

On average we went through 3-4 iterations of each level, with some exceptions (level 9 and 16 come to mind, they were probably changed at least 8 times).

Play Go Back here

Nearly completed

We started the October Challenge during LD #24 by participating in the Kongregate competition. We won 2nd place there (after a long wait), but I am more interested in getting everything sorted for obtaining ad revenue.
The problem is, you need an U.S. tax id for that, which takes a very long time if you’re not from the U.S. Estimation? 4-8 weeks and a bunch of paperwork. I hate paperwork. I’ve filled in the documents but I do not have my passport nearby, soonest I will be able to send it out is next Saturday, which is way too late to succeed in this challenge. But at least I set the wheels in motion, that has to count for something, right?

I’m now in the works of sorting everything for the company I started in March this year, more paperwork and more reading. Have I mentioned my hatred towards paperwork?

To round up, here’s the balance so far:

Earnings

(Shameless self promotion) If you want to give it a go, here’s the link:

http://www.kongregate.com/games/Aceria620/go-back

LD26

Narrative based game

It’s not much yet, but the game is definitely getting there. A lot of things are working behind the scenes and we’re now casually adding content (voice acting, more content for in the scene).

DUCK SIMULATOR 2013 – 360 NO-FLOAT MAD SKILL

We’ve been working very hard to get this far, but we’ve reached the point where we can announce our game: Duck Simulator 2013.

Duck Simulator 2013

DUCK SIMULATOR BITCH, WHAT YOU GOTTA KNOW

 

The AI is really getting along, the models are obviously WIP and will be improved tomorrow. The AI is insanely smart, and as you can see the ducks will flock towards each other and food sources. We’re still working on duck to duck interactions. We’ll be adding more exciting features in the morning!
Time for bed now, we’ve been working for +- 16 hours straight.

Fragments of Him – Programmer Post Mortem

First things first, here’s a shameless plug to our game, Fragments of Him:
http://www.ludumdare.com/compo/ludum-dare-26/?action=preview&uid=15100

I highly recommend playing the game before reading on, it’s a lovely experience which will possibly be ruined by reading this post.

Now let’s get going to the juicy stuff.

Basic mechanics

We’ve had the thought of trying a narrative based game before for a Game Jam, although we never got around to actually trying it. But apparently all the designers we know are totally into narrative, so this time we got to give it a try. I’ll leave the designer talk to him though.

Our tool of choice was easy enough – Unity3D. I’ve grown to love the engine for its simplicity and the possibilities to quickly prototype. How quickly? We decided on the design and I started with a first rough prototype. Moving around in 3D space and clicking on objects. Since this was done within 5 minutes, it became clear that this was going to be a great game jam.

I threw in the default character controller and the default mouselook script, wrote a script that does a raycast when you click on an object. When an object has a certain tag it will be made transparent. Total lines of code written so far: 20.

That was the easy part, next part was telling a story. The story was to be told with individual lines of text which all have an audio file linked to it. Some of these would have to be played after each other, and some wouldn’t. Here’s my initial solution:

Class Action{
public var sound : AudioClip;
public var text : String;
public var isFinal : boolean;
public var nextScene : String;
}

Class ActionWrapper{
public var actions.<Action> = new List.<Action>();
public var percentage : int;
}

ActionHolder.js:
public var actions.<ActionWrapper> = new List.<ActionWrapper>();

An action would always have a sound file and the text. The isFinal boolean would be checked whenever a file should trigger the event to go to the next scene. The ActionWrapper and ActionHolder simply hold lists of data. This data is simply fed to a function which picks the correct data and adds it to a queue. This queue is checked all the time and plays the audio (and shows the correct text). Something that nobody noticed so far, is that each event has 3 different options to pick from. The writing is unique with each of these options and the writing will always make sense, no matter which ones you get. Sweet.

Shaders

I’ve never written shaders in my life and I think I’ve only seen a shader file twice. Now we suddenly needed a shader that could make an outline around objects. Switching shaders on runtime, no probem. Right? Luckily, Unity came to the rescue again! There’s a toon shader which gives it an outline. That did the trick for a while, but it wasn’t what I wanted. The shaders make it toony (obviously), which is very much a different effect than our current shader. On to my quest to make the perfect shader. I hacked together a shader by combining the default Diffuse shader that Unity provides and the Toon Outline shader. I have no clue how it works or why it works. But it works. Sadly I didn’t have time to make a similar shader for the final scene (but then for transparent objects). A shame, because that would’ve been very nice.

Looking back, I think we did well on all of the disciplines. The art looks great, the design was done well, we had great fitting audio and the tech side, well the tech side works.

If you have any questions with how I fixed things I’ll be more than happy to reply. Just note that I’m not that great of a programmer, but I somehow always manage to get things to work.

Here’s the difference between a screenshot that I made after about 3 hours into the jam and one I just made:

mood

If you missed it, another shameless plug: http://www.ludumdare.com/compo/ludum-dare-26/?action=preview&uid=15100

Comments

Topaz
01. May 2013 · 20:10 UTC
Since no one seems to reply to posts much, I thought I’d just say again that I enjoyed playing your game!

Artist Post Mortem – Fragments of Him – Making a plan take shape

Making a plan take shape

Introductions!

Let us start with an introduction. My name is Tino, and my role in the team was to provide art assets for whatever we would build in this jam. What you are reading is my personal perspective and experience from start to finish of the LD26. Before you read on; I urge you to play the game first as the explanation below will spoil the experience. Turn up the volume, (preferably put on some headphones), take your time, and open yourself up to what you can find in this link:

http://www.ludumdare.com/compo/ludum-dare-26/?action=preview&uid=15100

 

Testing the waters (for ducks of course! :D)

When going into the LD26 we already had the team together where the designer expressed he would like to make a game heavy on the narrative side of game development. Personally, I like a challenge and looked forward to working on a type of game that I have not made before. When the designer carefully shared his preliminary thoughts I thought his scope was pretty insane. On the first day of the jam I secretly hoped he changed his mind and I think he actually did although as a result the scope seemed to have gotten even more daunting.

 

The Plan

The plan was as follows. The designer had thought of a touching story that is told through exploring and interacting with the environment. This required four environments and characters in different poses. The environments are (in order) a park, an apartment, city streets, and an office. Each environment features a single character model twice; each a different pose. The apartment is repeated and thus required additional poses as does the park. The amount of poses resulted in eleven.

 

Leaps and bounds

When absorbing the task ahead I thought to myself that the scope was way too large although I was curious to see how far we could get. If you have seen the game that Aceria and I made for LD24 you can see that it is a huge leap from boxes to a full on world like experience. On top of that, characters are my biggest nemesis. My experiences with modelling and rigging a character are rushed, crude, and done in different software.

 

We are in this together

How on earth did we manage then? What, I think, allowed us to pull this off was a combination of great team work and long hours. For example; What made making the environments really easy was the excellent assistance from the designer in providing me with reference material. The characters probably wouldn’t have looked half as presentable without the intervention of my anatomy loving girlfriend. Additionally, she also assisted in the apartment scene and whipped up some furniture out of one of the objects I had initially placed. In terms of hours I have counted about 47,5 hours of work with roughly 10 hours of sleep.

 

Long hours are nothing without a goal and focus

Because the scope was daunting I figured it was smartest, and safest, to model the scenes in passes starting with the scene the player would start in and provide the programmer/designer with a space to be explored as quickly as possible. With the environments blocked out faster than I can remember; it was time to go for the second pass. This pass included all the key items in the environments that has story attached to them. The programmer had to wait for this pass for such a long time that he started working on easter eggs (perhaps you may find them eventually). Once the key items were placed in the environment it was time to get the character modelled. As mentioned before I had some awesome assistance on this hurdle. Next up was rigging which resulted in the crudest rig imaginable. With the character modelled and rigged, and the key narrative items in place in the blocked out environments I started to see the light at the end of the tunnel.

 

Prettiness and performance

The characters were rather simple to place although getting the poses right took quite a bit of fiddling. With everything in place to provide for a minimum viable product it was up to the programmer to get it all to work from A to Z. In the mean time I got to focus on prop modelling to dress up the environments and give it more character. Initially we had also the idea to use Unity’s option to automatically generate UV’s on import, and bake shadows and ambient occlusion (fancy shadows) into the environments. A light bake during breakfast taught us that just the park required 40MB of light map textures. This was not an option and so we shifted from strain on the memory to strain on the processor. As if that wasn’t enough for the processor; I also really wanted to emphasise the mood and experience by using chromatic aberration (Google it) and a vignette. Without ambient occlusion and shadows the environment looks really flat. Luckily the deferred rendering method and SSAO (screen space ambient occlusion) in Unity provided solutions to these problems. With a considerable amount of tweaking in Unity’s settings we feel that we have come close to the sweet spot in terms of performance and strain.

 

We have seen the light

Because we are now using deferred rendering and SSAO, instead of baking shadows and AO, we could use many lights in the scene as the cherry on top. With the environments fully decked out in models and all the character poses in place all that was left was to do was to place these lights. Keen eyes may have also noticed the blinking light on the messaging machines and flickering candle lights.

 

Closing words on environments.

Environments have a history and can also tell stories. For example, in the office you may have noticed a picture frame in the bin next to the door; or the books beside the filing cabinet. How this happened is speculation and whatever your imagination may come up with for a reason, it adds to the experience of the world before you. Thank you for taking the time to play our game and listening to my words. If you had additional questions I would love to answer them.

Cordially,
Tino

LD27

Because we’re not ready to show what we have yet

We’ll just give you some hodor instead. There’s also a small preview of what’s to come, a generic bomb simulator game using some awesome new technology that we just finished making.

Hodor

Hodor

 

We’ll show more tomorrow.

Hodor.

Bomb Defuse Simulator 2013 on the front page of Gamasutra!

The post mortem we wrote about our Ludum Dare 27 game (Bomb Defuse Simulator 2013 [click here to view]) made it to the front page of Gamasutra today!

SassyBots Ludum Dare game

We’re really proud of what we managed to accomplish within 72 hours and would love it if more people would see what is possible within 72 hours using existing technology.

If you want to know more or just want to get in touch, follow us on Twitter or on Facebook. We’ll be working with this technology in the near future, so follow us to be the first to hear about it!