DanEmm

Ludum Dare 52

Vacuum is out!

Hello!

We have finished and published Vacuum - a minimalist game about harvesting nebulae to grow a newly born star.

This is our first Ludum Dare, we got a bit creative with the theme, had a great time working on it. Please enjoy!

https://ldj.am/$317397

collage.jpg

Vacuum - how did we do it 1: Initial concepts

So Vacuum is out now (please rate here https://ldj.am/$317397)

It was an interesting development process - so let's walk through how the game came to be. FRIDAY

The theme was announced..

HARVEST

Moodboard

moodboard_small.png

We began with a moodboard - basically going online and saving a load of inspirational pictures vaguely around the theme, we have a combine harvester, hydroponics, general photos of fruits & veg, a little reaper in there, and while a bit hidden there is a photo of children picking through a scrapheap looking for valuable e-waste. There is also a few games which have a similar theme - some literal like Stardew Valley & Banished that just have plots of farmland, and another, POINPY, that has a little dinosaur bouncing through the air to collect fruit to give to a blue, hangry catbeast.

Something recommend to include in the early concept stage is a collection of synonyms - words that are tangental to the theme that you may not have thought of yourself - helps get the creative juices flowing.

Concepts

concepts_small.png

With the general concept set out, we set to work drawing up some basic game ideas. Our general principle was keeping the scope super small - a single screen ideally - this is just for fun after all, and we do enough stressful gamedev during the work week.

1) The player will harvest everything in a single row (or column) at once, weeds and all. The goal would be to maximise how much crop you harvest, such as wheat and fruit, while minimising how many weeds you harvest. Crops and weeds would both spread out from their starting tiles, creating an organic growth pattern across the board.

2) Something simpler based on the horizontal line idea from 1. - the Grim Reaper has a farm. Pumpkins fall from the sky, souls float up from the ground. Time your swing to get as many souls and pumpkins in the single line - harvest as many as you can before time runs out.

3) Something simple - drive a tractor around a field and collect all the wheat. This is an idea I have seen a lot in the jam submissions.

4) Similar to 3. but with a twist - tractors and combine harvesters are two separate machines, and so they should be controlled independently. In this game, players use the Left analogue stick to control the fast & nimble tractor, and the Right analogue stick to control the slow and slippery combine harvester.

We left it there for the day and slept on the ideas we had, ready to begin on Saturday...

How did we do it 2: Prototype

SATURDAY

Prototype

Unable to sleep, Rianna spend Friday night making a prototype of the combine harvester game in p5.js

prototype.png

Quite simple gameplay - use the left analogue stick to move your combine harvester (white circle), but use the right analogue stick to move your tractor (black circle), which must always be within range of the harvester. The aim is to collect all of the little white squares.

But this on its own was too simple - so she added little red enemies that, if touched, end the game. These enemies picked a random velocity every few seconds, making them feel a bit alive. Rianna got this idea from another prototype she has been working on.

Playtest

It is important when making any game to playtest! How your game feels is vital to the experience.

After getting a few friends to play it this rough prototype, they found that the dual control felt a bit "sticky" - that the independent control for each piece just wasn't enjoyable - they would often "get stuck" on the inside edge of the outer circle, and it just wasn't satisfying. Lots of strange quirks showed up, like players not using the left stick at all and just dragging themselves around inside the outer circle as it was faster.

Players don't know the "proper" way to play, and will very quickly pick apart early iterations of your game. This can be a bit disheartening, especially when you have already put so much work into getting the game working as-is, but it is just part of game development. You cannot tell the player that they aren't not enjoying themselves, it is up to you as the developer to ensure the players experience the game how you want them to experience it.

So we went back and refined the controls - putting less emphasis on the twin-stick controls, and giving the player a bit of momentum when moving around. After these relatively small changes, we were getting a lot more positivie feedback, and testers were enjoying playing the game. Mockup

Dan saw the circles in the prototype and immediately thought "looks like planets hoovering up dust & gas" and so made this mockup. Little orbiting planetoids could act as little shields to protect the baby star accreted matter, and more would be added as you grew larger.

mockup.jpg nebula.png

To get this effect, Dan used a gradient map in Photoshop on some Perlin noise to mimic the cloudy look of false-colour images of nebulae. Add some very minimal-looking planetoids & comets in over the top of the prototype circles and we had a look we were very happy with! We were glad the game had moved away from the intial visuals of farm equipment & fields of wheat, now it felt a bit more unique, and we got our name for the game:

vacuum

We had the general idea pretty much locked down, and spent the rest of the day refining the look and feel. The plan was to spend Sunday doing nothing but polish, polish, polish..

How did we do it 3: Polish

SUNDAY

The last day, and we basically had the gameplay locked in. All that was left was to polish and refine what we already had. There was talk of adding features and more gameplay mechanics, but at this point we didn't feel it was necessary.

Curious Comets

Many playtesters commented on our "smart" little comets, mentioning their inquisitive and fun personalities.

But.

There was very little "smart" going on. These comets were still using the same code as before, simply randomising their velocity at random intervals. This sudden change from players was because the comets now had some art, and now always faced the player (real comets' tails always point away from the sun) and this gave the illusion of intent - the once randomly bouncing red circles now seemed to watch the player, moving in for a closer look, then retreating. Some kept their distance, then suddenly and bravely charged in. All of this behaviour and personality was in the player's mind. Real comets don't randomly bounce around, and Dan did at some point want them to behave more like real comets, but players really liked these ones and so it stayed (also meaning Rianna didn't have to code new behaviour at the last minute). Stars also don't fly around nebulae, so it's not like we were going for realism.

Noise (the visual one)

noise_test.png

The first attempt at making the clouds in p5.js - copying colours over from the photoshop gradient map used in the mockup and using a series of samples along the perlin noise to get its value. This effect worked pretty much exactly how we imagined it would. collage_2.png

Eventually we settled on a handful of handmade palettes which randomise every time you play. Rianna found a way to smooth the noise values so it looked, well, smoother. The player's star clears the nebulae by drawing a black circle under the star every frame. To stop it feeling too much like you were just drawing with a black pen, we added twinkling stars that got brighter once the nebula cloud was cleared.

Layered on top of the vignette is a progress bar that grows around the outside along the edge of the screen - an idea Dan had from a project he is currently working on for the Playdate.

Noise (the audio one)

Space is, for the most part, silent. However this game, the lack of sound was really making it feel like a bit of a vacuum.

We were listening to a music-to-code-to playlist and lots of the tracks ended up fitting the game quite well while playing. Dan's brother Michael composed a track based on what we were listening to, and he got it right pretty much straight away.

"With the reference tracks I was given it was actually very easy for me to get a feel for what kind of track to write. I started with the outline of the A and B sections using a soft DX7 style e.piano and then filled out the rest of the track almost exclusively with a Mini Moog style plugin synth. this worked well as the plugin can be used as a bass, pad, and arp synth with a retro flavour. Although the track is written to loop perfectly for some reason when ever I would render out the track there would always be a small amount of silence at the end or beginning of the track, even after removing and reverb trails. We managed to get it mostly smooth but it is not perfect. This is something I will need to find a fix for for any future tracks I work on." -Michael

This music gave us a nice backing track, but it was still missing some feedback when interacting with the game.

Luckily, Dan Pugsley offered to help out with audio design, and made some lovely piano-notes when the player knocks a comet with a planetoid, as well as all the other atmospheric sound effects. My favourite is the harrowing sound when the star dies.

"I made 'em real spacey". -Dan P

With the music and sound effects in the game, vacuum felt like a complete experience. Never understimate audio as a way to embed objects in your game world, it is often overlooked, and game jams are a good opportunity to bring on audio people who might want to try their hand in games. Wrapping Up

By about 9pm on Sunday we were done! Both in that the game was in a good state to be submitted, and that we were both exhausted and wanted to enjoy the last bit of our weekend.

Submitting the game to LDJam's website was straightforward enough, although we did almost forget to make the itch build public. OOPS.