Свободу политзаключённым! Донат Медиазоне

Heist Devlog #1

I was glad to find My First Game Jam and entered it, only to immediately be sidetracked by all the other stuff in life.

The initial plan was to prototype a small puzzle game, idea of which was brooding for some time in my mind. I called it Heist.

Heist is based around planning the heist (i.e., algorithm for each crew member) and then watching your team execute the plan (or not).

The trick is that during the execution of the plan you can’t change it, you have to plan ahead.

Another point is that main metaphor is not a map, but timeline of actions.

Ideas for Levels

I had two ideas for levels which should be pretty easy to figure out.

Smallest possible level

There are no guards, only the diamond for you to pick and move out.

Solution:

  1. Move(Diamond)
  2. Grab(Diamond)
  3. Move(Exit)

Two-person job

Heist movies are all about crew, which assumes that the job would require multiple roles.

This is two-person level, where one is distracting the guard, while the other is picking the diamond. Diamond can’t be picked if it’s being watched by guard.

Solution:

  1. a. Distract(Guard)
  2. b. Search(Diamond)
  3. a. Distract(Guard) cont.
  4. b. Grab(Diamond)
  5. a. Move(Exit)
  6. b. Move(Exit)

Reality

As I mentioned above, life got in the way, and I found myself at Saturday evening with no game to submit. Additional hurdle was that I didn’t learn bevy engine enough to be able to churn out prototype with drag-n-drop as I wanted.

Given that there is a lot of UI (only execution stage is not-UI), I decided to write the prototype in Svelte, a web framework.

That still wasn’t a walk in the park, and I submitted my archive with only a hour to spare (of two week game jam, that is).

Turns out that SvelteKit requires you to be able to specify an absolute root path (e.g., /heist) during the build, while itch.io hosting places your files to some unpredictable directory on CDN. And so I was forced to abandon SvelteKit and hastily setup a rollup build, battling the cryptic errors one by one (it was not as bad as it sounds, as I did not use any Kit-specific logic anyway).

It certainly would be less stressful if I tried deploying to itch.io beforehand :)

You can checkout this prototype at https://marinintim.itch.io/heist (only works on desktop due to drag-n-drop).

The planning stage

Final thoughts

While the prototype is certainly unpolished, I was able to verify for myself that the mechanic of assembling a plan is entertaining, and I plan on slowly exploring the mechanic further after the jam (e.g. signals between crew members, dependencies between actors, field-of-vision, and so on).

I am glad that this time I submitted something. I exercised my vim-fu, re-learned browser's Drag-n-Drop API, and learned a few things about myself during the process.

All in all, it was fun, and I'll try to participate in more game jams in the future :)