Staś Małolepszy Profile picture
I work @Mozilla where I lead Project Fluent. I make small games @pieskucom. Play the newest one: https://t.co/YyacWb7ovA

May 3, 2022, 13 tweets

Two weeks ago over Easter I started working on a submission to the @Gamedevjs Jam. The theme was 'Raw,' and I wanted to create a processing pipeline simulator. This is how Super Simple Salad Simulator came to be. #gamedevjs

stas.itch.io/super-simple-s…

It's my hommage to The Incredible Machine from 1993, and also to the vegetable salad, sałatka jarzynowa in Polish. It's a springtime treat in Poland. The full list of ingredients includes potato, carrot, green pea, apple, pickled cucumber, onion, boiled egg, and mayonnaise.

When researching it for this project, I learned that the salad apparently started as a completely different recipe with many kinds of meats in it. Depending where you are, you may know it under the name of the French, the Italian, or the Russian salad. en.wikipedia.org/wiki/Olivier_s…

Due to the Real Life happening at the same time, I wasn't able to complete all the features I had planned. Super Simple Salad Simulator is an unfinished sandbox, but I still think it can be pretty fun for a few minutes.

There's no real gameplay nor end goal, other than discovering what the exact recipe is and trying to design a pipeline which puts the processed ingredients in the red bowl.

I've had the most fun tweaking the frequency of spawning new ingredients, which can be a good stress test for the pipeline you design.

The ingredients bounce off the edges of the screen which was meant as a temporary feature during the development, but I had so much fun playing with zooming the camera in and out that I decided to leave it in.

It's also possible to tweak some parameters of the physics simulation. It's my custom work-in-progress engine, so it's not very realistic, but you can tinker with the friction of movement, bounciness of collisions, and the gravity.

The collisions are rather naive: the ingredients collide with the utensils but don't collide with each other. They're implemented as two for loops on the main thread, which quickly becomes a performance bottleneck.

However, I'm quite happy with the performance of the WebGL-based 2D renderer which I had been working on last year. When I turn the collision detection off, the renderer can easily scale to tens of thousand sprites.

Thanks to Super Simple Salad Simulator, I had an opportunity to improve the renderer, and to build an automated pipeline for assembling images into a spritesheet. Managing assets turns out to be one of the most important features of a game engine.

My goal now is to make Goodluck a capable solution for building 2D games before #js13k starts in August. I'd love it if someone other than myself and @michalbe builds a game in it. Stay tuned for Goodluck2D!

An update on Goodluck2D:

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling