Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions presentations/making-games/assets/captures.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
{
"sourceSha256": "c2ed572c63a5cf8d4935104a1df49251239306182b9686eb08e66ae6ca688373",
"captures": [
{
"file": "garden-title.png",
"description": "Actual title scene of the finished game.",
"displayBackend": "WebGL2",
"sceneBackend": "WebGL shader",
"gpu": "ANGLE (Intel, ANGLE Metal Renderer: Intel(R) Iris(TM) Plus Graphics, Unspecified Version)",
"width": 900,
"height": 900,
"sha256": "87b278c70c12d432aa3e8930d2c7113b428b9f069317d56f5c3267d3e1562e52"
},
{
"file": "garden-start.png",
"description": "Finished game starts with no planted flowers.",
Expand Down Expand Up @@ -61,6 +71,16 @@
"height": 900,
"sha256": "7de9abb9d67b6ff1f99b83d8d5d25c6bc2dd04ad5ebde726ff8f81973cc53533"
},
{
"file": "garden-planting.png",
"description": "Actual seed-catching and planting checkpoint, before clouds and HUD.",
"displayBackend": "WebGL2",
"sceneBackend": "WebGL shader",
"gpu": "ANGLE (Intel, ANGLE Metal Renderer: Intel(R) Iris(TM) Plus Graphics, Unspecified Version)",
"width": 900,
"height": 900,
"sha256": "267fdee5f98168cb959c8b00e45ced23bf2e086b81632d0fbfec27920b903737"
},
{
"file": "display-angles.png",
"description": "Geometry example using real Dream Garden assets.",
Expand Down Expand Up @@ -90,6 +110,16 @@
"width": 900,
"height": 900,
"sha256": "4bba014d74818400a154f16fb488c697ef7a779e634aa203c8c172021f4638f1"
},
{
"file": "display-arxels.png",
"description": "Geometry example using real Dream Garden assets.",
"displayBackend": "WebGL2",
"sceneBackend": "WebGL shader",
"gpu": "ANGLE (Intel, ANGLE Metal Renderer: Intel(R) Iris(TM) Plus Graphics, Unspecified Version)",
"width": 900,
"height": 900,
"sha256": "80790b1752dbaaec7f5c44f150d333db422bd725b6214316542ab7e6e45f28d7"
}
]
}
122 changes: 122 additions & 0 deletions presentations/making-games/assets/catalog-captures.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
[
{
"file": "catalog-vyruss.png",
"slug": "alecu.vyruss_vs2",
"title": "Vyruss VS2",
"displayBackend": "WebGL2",
"gpu": "ANGLE (Intel, ANGLE Metal Renderer: Intel(R) Iris(TM) Plus Graphics, Unspecified Version)",
"runtime": {
"adapterName": "MicroPython WASM",
"adapterSource": "wasm",
"editorOpen": false,
"pollingHalted": false,
"currentButtons": 0,
"currentInput": {
"joy1": 0,
"joy2": 0,
"extra": 0
}
},
"sha256": "dc3980d6624726b3a6596b5c9b2b9f698e36a79e03c7328649c51fb6542e19af"
},
{
"file": "catalog-ventap.png",
"slug": "alecu.ventap",
"title": "Ventap",
"displayBackend": "WebGL2",
"gpu": "ANGLE (Intel, ANGLE Metal Renderer: Intel(R) Iris(TM) Plus Graphics, Unspecified Version)",
"runtime": {
"adapterName": "MicroPython WASM",
"adapterSource": "wasm",
"editorOpen": false,
"pollingHalted": false,
"currentButtons": 0,
"currentInput": {
"joy1": 0,
"joy2": 0,
"extra": 0
}
},
"sha256": "c64c3e698922340c331ada397cc590a23211926fffb078904e05ddf8310296f8"
},
{
"file": "catalog-vixeous.png",
"slug": "alecu.vixeous",
"title": "Vixeous",
"displayBackend": "WebGL2",
"gpu": "ANGLE (Intel, ANGLE Metal Renderer: Intel(R) Iris(TM) Plus Graphics, Unspecified Version)",
"runtime": {
"adapterName": "MicroPython WASM",
"adapterSource": "wasm",
"editorOpen": false,
"pollingHalted": false,
"currentButtons": 0,
"currentInput": {
"joy1": 0,
"joy2": 0,
"extra": 0
}
},
"sha256": "be0a150acc9a03495fd89bdd86b0e74871b34aeeb82b8d0b29276eab9bddef86"
},
{
"file": "catalog-vortris.png",
"slug": "vsjam-may25.vortris",
"title": "Vortris",
"displayBackend": "WebGL2",
"gpu": "ANGLE (Intel, ANGLE Metal Renderer: Intel(R) Iris(TM) Plus Graphics, Unspecified Version)",
"runtime": {
"adapterName": "MicroPython WASM",
"adapterSource": "wasm",
"editorOpen": false,
"pollingHalted": false,
"currentButtons": 0,
"currentInput": {
"joy1": 0,
"joy2": 0,
"extra": 0
}
},
"sha256": "e0d64e2e764daebc0cfd81d7b2eac02acf2bf13d4b7c70f94e05e793dabb7095"
},
{
"file": "catalog-fanphibious.png",
"slug": "vsjam-oct25.fanphibious_danger",
"title": "Fanphibious Danger",
"displayBackend": "WebGL2",
"gpu": "ANGLE (Intel, ANGLE Metal Renderer: Intel(R) Iris(TM) Plus Graphics, Unspecified Version)",
"runtime": {
"adapterName": "MicroPython WASM",
"adapterSource": "wasm",
"editorOpen": false,
"pollingHalted": false,
"currentButtons": 0,
"currentInput": {
"joy1": 0,
"joy2": 0,
"extra": 0
}
},
"sha256": "ca751a383212fc0524721c00581fe4caab3a10c0bab6755267180248fe885b8e"
},
{
"file": "catalog-vzumaki.png",
"slug": "vsjam-may25.vzumaki",
"title": "Vzumaki",
"displayBackend": "WebGL2",
"gpu": "ANGLE (Intel, ANGLE Metal Renderer: Intel(R) Iris(TM) Plus Graphics, Unspecified Version)",
"runtime": {
"adapterName": "MicroPython WASM",
"adapterSource": "wasm",
"editorOpen": false,
"pollingHalted": false,
"currentButtons": 0,
"currentInput": {
"joy1": 0,
"joy2": 0,
"extra": 0
}
},
"sha256": "408e91b13fdc53bfbd3471216b97926ca7114218c211817875073b359c486ec8"
}
]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion presentations/making-games/deck.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Reveal.initialize({
controlsTutorial: false,
progress: true,
slideNumber: 'c/t',
totalTime: 45 * 60,
totalTime: 27 * 60,
pdfSeparateFragments: false,
pdfMaxPagesPerSlide: 1,
highlight: { highlightOnLoad: true },
Expand Down
47 changes: 23 additions & 24 deletions presentations/making-games/examples/dream-garden-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ The festival's [Dream No Return theme](https://www.sickhouse.nl/festival/dream-n
inspired a garden whose players can choose a slower pace. This is an original
sample game, not a festival commission or an official festival game.

[Download the complete game](dream-garden.zip). While these changes are under review, use the SDK branch `feat/dream-garden-clouds`. Extract the archive at the root of that SDK checkout to create `games/demos/dream_garden/`. The source, packed assets, audio and rebuilding recipes are included, along with `tests/test_dream_garden.py` so the checks below also work when installing into a current SDK checkout. After merging, the same archive works in an updated main checkout.
[Download the complete game](dream-garden.zip). Use an up-to-date SDK main
checkout. Extract the archive at its root to create `games/demos/dream_garden/`.
The source, packed assets, audio and rebuilding recipes are included, along with
`tests/test_dream_garden.py`.

[Small first-game starter](first_game.py) · [Back to the slides](../)

Expand Down Expand Up @@ -81,29 +84,25 @@ base and never go into the rotor ROM. The sample follows the repository's GPLv3
license. [Artwork sources and rebuilding](artwork.html) record the new art and
original sound synthesis. The general SDK tutorial remains a separate example.

## Build this garden step by step

Each stage is a complete, cumulative source file inside the download at
`code/checkpoints/`. The slides explain the changes and launch the matching
version in the web emulator. The last stage matches `code/dream_garden.py` exactly.

| Stage | Adds |
| --- | --- |
| 01-steering | One pink dreamer moving around the rim |
| 02-poses | Leaning and sleeping poses |
| 03-pools | Reserved seed and flower slots |
| 04-timer | Periodic random seed spawning |
| 05-flowers | Collisions, directional planting and inward flower drift |
| 06-tiles | Fluffy clouds in the middle layer, behind seeds |
| 07-scroll | Steady scrolling clouds, slower outward seeds |
| 08-hud | Seed-only RELAX and a label that slides out |
| 09-scenes | Title and voluntary rest, preserving flowers |
| 10-shared | A second player, independent planting sequences and random seed glow |
| 11-audio | Default-on lullaby and bloom sounds, timed NOISY/QUIET notices |

A new garden starts without flowers. The planting direction follows movement,
then alternates after stopping. Every stage keeps the same packed artwork,
with unused strips available for the later steps.
## Three stages for the short talk

The presentation launches three complete, cumulative versions. Their sources
are inside the download at `code/checkpoints/`.

| Stage | Source | Adds |
| --- | --- | --- |
| 1 | `01-steering.py` | One pink dreamer around the rim |
| 2 | `05-flowers.py` | Timed seeds, catching, directional planting and inward flower drift |
| 3 | `11-audio.py` | The completed shared cloud garden, HUD, scenes, glow and audio |

The final stage matches `code/dream_garden.py` exactly. Additional fine-grained
checkpoints remain available in the SDK for independent study. The short talk
shows only these three launchable progressions.

A new garden starts without flowers. Planting follows movement, then alternates
after stopping. All stages use the same packed artwork, with unused strips
available for later features.


## Checks

Expand Down
4 changes: 2 additions & 2 deletions presentations/making-games/handout.html
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
layout: presentation-page
title: Making games for Ventilastation — reading view
title: Ventilastation — reading view
---
<p><a href="slides.md" download>Download the Markdown source</a></p>
<p>A 45-minute English presentation for Overkill Festival 2026, building Dream Garden. Each slide includes its pacing and speaker notes below.</p>
<p>A 12-minute introduction for everyone, followed by 15 minutes of coding and three Dream Garden stages. Each slide includes pacing and speaker notes.</p>
{% capture content %}{% include_relative slides.md %}{% endcapture %}
{{ content | replace: 'Notes:', '### Speaker notes' | markdownify }}
4 changes: 2 additions & 2 deletions presentations/making-games/index.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
layout: null
title: Making games for Ventilastation
title: Ventilastation — Circular Arcades
---
<!DOCTYPE html>
<html lang="en">
Expand All @@ -9,7 +9,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="dark">
<meta name="theme-color" content="#0b1016">
<meta name="description" content="A 45-minute English talk for Overkill Festival 2026: making Dream Garden, a shared circular game with MicroPython and the Ventilastation API.">
<meta name="description" content="An English introduction to Ventilastation and Cybercirujas, followed by 15 minutes of circular game coding and three Dream Garden stages.">
<title>{{ page.title }} | Ventilastation</title>
<link rel="stylesheet" href="vendor/reveal/reset.css">
<link rel="stylesheet" href="vendor/reveal/reveal.css">
Expand Down
Loading
Loading