Join us on Twitter and IRC (#ludumdare on Afternet.org) for the Theme Announcement!

Thanks everyone for coming out! For the next 3 weeks, we’ll be Playing and Rating the games you created.You NEED ratings to get a score at the end. Play and Rate games to help others find your game.We’ll be announcing Ludum Dare 36’s August date alongside the results.

New Server: Welcome to the New (less expensive) Server! Find any problems? Report them here.

elliottd's Trophies

elliottd's Archive

I’m in for the Jam. Usually I do the Compo but this time I feel like being a bit more relaxed about it! I’m working on monday so i probably won’t take advantage of the extra day, but the relaxed submission deadline will let me fix bugs and finish a feature or two, i’m sure!

With the compo, i have been sharing out some tool scripts for Unity before the jam starts. Here they are if you feel like using them!

https://github.com/kenruze/jamtools
There’s a character controller in there for third person, 3D games, and a camera tracking system too, as well as some other handy scripts. I’ve been trying to turn some of these into assets for the asset store, so these are a bit out of date now and maybe not that easy to pick up, so give them a try before the jam starts if you feel like you might want to use them!

I’ve got my work space set up, I’m going to use my phone as a webcam and include some drawing and white board planning in my time lapse.

You move in increments and can climb up and drop down ledges. Later you can also fly, which lets you move at the same height to reach high ledges across gaps.

I used Blender and Unity, and also Sculptris and Topogun in my modelling process.

I wrote 1,127 lines of code in 5 major classes.

Made a 3D character with 8 animations

8 final static 3D models including an edit-mode only node representation

slept for 10.5 hours

I made use of tools library that I’ve shared. I tweet about new features leading up to every jam. This has a character control and camera tracking system which really speeds up some of the most troublesome parts of making games in 3d for me. Since this game is 2D (or more specifically, it’s node-based) I didn’t use the character controller, but the camera system was pretty much drop-in.

Within the first half hour, I had decided what I would make. I had been thinking about making a tile- or node-based movement system and the Two Button Controls theme made me simplify the idea (from a 2D grid of nodes to a linear string of nodes). The second theme also helped me figure out how to make that simplified system interesting: the character would grow wings.

I started with very quick but descriptive placeholder models and had the character moving in single units before I set up the node system.
Doors, clay men, and the wings and claws pickups were left as their starting placeholders. I made use of the vertex colouring system in Blender to get the placeholders to be descriptive enough from the start. The claws look pretty confusing, but the wings, doors, and clay men fit in even though they were made in less than a couple minutes each. To use vertex colours, you just need a shader/material that shows it. I used this material for everything in the game. This has an important value in that it cuts out UV mapping entirely which is a huge chunk of time. (it’s too bad; i really like unwrapping)

Blender and Unity use different handedness in their space coordinates, and blender uses Z-up where Unity uses Y-up orientation: your models can come in lying flat, and things are facing the wrong direction. A trick for dealing with this is to work from the negative Y direction in blender (or negative Z when you get to Unity), and when you start a new model, rotate the object 90 degrees on the X axis.

I created a node system for movement where nodes could be marked as having a hangable ledge on either side. I made some in-editor functions for searching for neighbours and assigning them. Also the node occupant behaviour had a function to assign it to the closest node. These really sped things up when I got to the level design stage.

Once the movement was working and I had tested the elements I would use (stomp a switch, use a door, grab ledges, get wings and fly over things, get blocked by golems, and slash and crush them) I drew out a set of puzzles and introduction levels I could make:
I got to make almost all of these. One used a feature that I thought would be easy to implement but really didn’t have time for, losing your wings and claws proceeding to the next level through a special door. This was really no problem, since I wouldn’t have enough levels to be able to give you the items multiple times, but I had to adjust the design of one or two with that changing.

Right after planning those levels, I moved on to my favourite part of game jams, designing and modelling a character.6 hours later:

Making 3D characters is the thing I have worked hardest at over my life. I’ve done so much personal training and research to get my workflow as fast as possible. I’m very proud of how fast I do this and I hope it comes through in the quality of the games I work on. I would also say this is the most interesting part of the time lapse I made, and I’ve marked the time I start on the character in the video’s description.

Replacing the placeholder character with an animated one gave me a major snag that I could have really easily avoided. With a static model, all of the position and state switches had been instant, simply calling functions to set the new state and change the mesh; but now that I wanted to have motion over a little time, I had to do a fairly major refactor. The coroutine system in C# and Unity are really handy for this sort of thing, and if i had just used Coroutines with the placeholders (testing with waiting a fraction of a second), I would not have had to refactor at all.

I ended up bumping into several more bugs and problems, but that is to be expected and I worked through it all without being very stressed.

I slept for only 10.5 hours across the weekend (48 hour compo). Sleep is very important and I think I must have just been well rested leading up to the event to get away with that. My rule is that whenever i recognize i have made a silly mistake and it could have been from being tired, I go to bed. Even after feeling OK at the end of the compo, I felt really terrible for the next two days. I was sore and tired and didn’t sleep well even though I could sleep. I had caffeine withdrawal and I’m prone to migraines, so i didn’t want to have more (even though that would have helped with rating games).

Some things I didn’t get to do:

I think the most embarrassing thing in my game is the 6-pt Arial floating text. I wanted to make some nice mesh lettering like i had done in previous jams, but with very little time to add finishing touches, i invested the minimum possible effort. The new UI system in Unity is pretty good and I’ve used it before, but I just wanted to avoid any possible snags.

I had a some background models planned. I made the environment models fairly quickly, and it wouldn’t have been hard to make a set of decoration pieces to go with them. I’m glad I left this for later/abandoned it, as it was I didn’t have time to do more than make sure each node had a tile under it. I wanted to rotate and scale the tiles to add variety and pile them up. The node system is 3D, so it would have supported much more interesting arrangements with some depth too.

Tweaking particle systems takes a while to get things that look nice. It’s a shame that I ended up with two colour swapped, identical effects. I would have liked to add sounds to those as well. An effect system in the shared tools, makes it very easy to attach sounds or make copies of effects and swap out parts later. It wouldn’t have taken long, and I think it would have added a lot.

Like every jam, I feel this is the best I’ve done, and I love participating so much. It’s amazing how much work everyone produces and how great so many of the games are that come out of Ludum Dare.

In my anxiousness to start the jam, I started coming up with ideas for all the themes in the final voting round. I was actually most interested in “Alchemy”, but that theme always seems to be around and never wins, so I had pretty much ruled it out. I didn’t really have strong feelings for any of the themes. I’ve felt that way before and always had a good time once the theme was out and there was no more guessing. I started looking at the number of votes on themes from the 4 penultimate voting rounds and it looked like “Connected Worlds” had a clear lead, so I started brainstorming on only that a little bit early.

The idea for Cloud Connected fell into place almost right away. I would have a series of little islands that were connected by teleporters and items you could pick up but could not be taken through the teleporter with you. I’ve had this weird fascination with the idea of magic mailboxes that I think might be left over from some mostly forgotten children’s story. They seemed to fit into this game so I went with that. You needed to get keys into doors that were in different but connected worlds.

My ideas for some of the other themes were influenced by the news I was hearing about Ferguson and racial conflict; I think I haven’t got the ability to address complicated topics tastefully with a video game, and to ask myself to do that in 48 hours was a tall order. But I thought at least I could try to promote diversity with my character. One character can not be diverse, but I could only make one character so I went diverse from what I usually see in game protagonists.

I looked for inspiration searching on Google and Tumblr and came up with this sheet for the character.

I progressed through some sketches (most of these are directly mimicking pieces I had been collecting from the internet. The final character design is a straight-forward blend of the images I settled on from Tumblr.

I tried to mock up the looks of the game with my character concept and more found artwork, but it didn’t really give me a feel for how it could look in 3D, and didn’t give me direction that I could execute to achieve the look. I mostly put this off and progressed without visuals in mind.

Before I went to bed on the first night, I threw together an island in Unity with a box to drive around, and invisible barriers penning you in. I generated a tree (which I had never used or seen before), and made the mailbox and a garbage can(?) out of primitives. I was exhausted but excited. I slept for 3 hours and got up when the sun came out.

I modeled the character in Sculptris in about an hour and a half. Sculptris is a great tool and very natural to use. The character sculpt was a little over 200,000 triangles. I used several other free 3d tools including blender to trace a low res model over the sculpt; unwrap that; bone weight; and animate it. I made 3 animations: idle, walk, and crouching to pick up an object, as well as variants for the idle and walk where she would be carrying an object.

I tried to create a wispy fog of war/blindness at the edge of the island, but it read better as clouds and I went with that. I made a script to make the clouds drift around but not stray over time:

I also threw this on the camera, which made the whole island seem to drift as well. The clouds were children of the camera so they seem stationary while the island drifts around.

At this point, I went into coding mode and put together a system that would let the character pick up and put down generic items and interact with stationary things to give and get those items. This is where most of my time went, and I think the system was totally overkill for a game jam. I built a serializable list class with a custom inspector that is strongly tied to an enumeration. This is a pattern I have been developing that I think has a big potential to speed up game development. One of the things I love about Unity is the way they handle C# enumeration types. If you have tried making a public member in a monobehaviour of an enum type, you see that it shows up as a handy drop-down in the inspector. My list type is trying to extend that handy functionality in a different way. Often, I want to define a set of associations for each entry in an enumeration. My list type manages itself to contain one entry for each enum value and use the enum value as the label. It can let you define associated colours, text, or prefabs to use. I’m not sure I’ve got the implementation correct in this project, I think I ran into some strange behaviour with it. This list type is something I would like to share with other developers, but I think I could do more to simplify it.

I usually leave sound and music until the very last on a project and I am aware of how that hurts the feel of my projects. This time I did the sound in the middle. I used a web app called audiosauna that I had tried a couple times before. I just played with synths and sample augmentation and played a couple tunes. I couldn’t figure out how to play a performance and keep the timing (it was recording sequenced notes), so I actually just recorded myself playing in preview, with my laptop mic seated next to my speakers. I used noise reduction in Audacity to clean up the recording a bit and I think it worked out well. I used the same method to make all the sound effects, I tweaked synths and instruments and played single notes or short bursts for the teleporter. I usually make a big deal about footstep noises and dust kick effects, but didn’t get to it at all this time.

After I had the game functional (it was still only one level and more than half the time was gone), I needed to redesign some of the components and plan out more levels. I decided the teleporters would be fairy rings of mushrooms instead of pentagrams with candles. And decided the goal would be to put a glowing orb on top of a sundial.

I had a bunch of ideas for other levels but really had to cut all but the first three to get the game done. I spent a long time working on a generic system that would make levels come together faster, but it took such a large portion of the time that I didn’t get that to pay off. I think that if I had had 3 more hours, I could have put in another 6 levels, but I was stressed and tired as well, so maybe it wouldn’t have worked out even then. I considered dropping out of the compo and joining the jam to take another day. I was proud of what I had gotten done following the solo rules of the competition.

I had planned to do a lot of visual variation as well. I sadly ended up building the few levels I had by copy-pasting the same island over again. Even the clouds have the same origins for every island, adding to an existing lack of feedback when teleporting. Something simple like only changing colours on the clouds and terrain would have done a lot to distinguish the scenes and would have let me play with mood in another way.

I love game jams a lot. I love working hard, being creative, and communicating with friends and strangers about challenges in design. This is what I live for right now, and I hope everyone had a great time and learned something and will be a little bit better at it next time. Thank you all for being so awesome.