Yips
What it is
A vertical space shooter inspired by B-Wings. You fly up through a scenario of obstacles, some waving and some straight, and shoot them down. Destroying four obstacles of the same type in a row drops a power-up: energy, speed, invincibility or ammo for one of your abilities, which sit on the Q W E R A S D F keys.
It also has a scenario editor (E opens it in the browser): create a scenario, place obstacles where you click, select them, align or space them out, save, and press Ctrl+P to play what you are editing straight away.
How it's built
C++23 on SFML 3.1, with the editor's interface in Dear ImGui and shared code from kazilib, my own C++ library. The same code builds for Windows and for WebAssembly.
- World coordinates instead of chunks: the first prototype split the map into chunks; I moved the editor and the game to world coordinates with a camera, and later rotated the view by 180 degrees.
- Scenarios as JSON: the editor saves obstacles and their positions to JSON files, and the game loads the same files.
- ImGui in the browser: on the web build ImGui draws through SFML (one draw call per command, clipped to the view), which I added to kazilib for this port.
- Browser differences: Ctrl+E is the browser's search, so E alone opens the editor there, and Esc returns to the start screen because a page cannot exit. Saved scenarios live in the page's memory until it reloads.
- Tests: scripted tests drive the Windows build (play and editor), and a headless browser plays a few seconds, builds a scenario in the editor, saves it, reopens it and plays it.
Timeline
I wrote it by hand from August 2022 to April 2023; in 2026, with AI help, I compiled the game and its editor for the browser.
Technologies
- C++23
- SFML 3.1
- Dear ImGui
- kazilib
- WebAssembly