Objective
We are going to create a video game. Unusually, (a) we'll describe the process in detail, (b) we'll use everyday web development techniques.
What kind of game?
A top-down adventure game.
Where does it take place?
The Night Land - a futuristic Earth whose Sun has died. Humanity resides in a gigantic pyramid called The Last Redoubt.
OK, but how will you make the game?
Using standard web dev techniques, emphasizing the declarative nature of HTML and CSS rather than JavaScript driven game-loops. We shall avoid game-centric technology like WebGL and physics engines. Then our approach is relevant to a wide audience i.e. web developers.
What distinguishes it?
We'll build an adventure game on this website, step by step, blog by blog. We've already mentioned we'll use standard web development techniques. Additionally, we'll use a browser-based terminal, running our own interactive shell. We'll use it to spawn NPCs, request nav-paths, run scripts, and execute long-running processes. You can also use this CLI to run the demos, inspect internal state, and implement your own behaviours.
TODO a meaningful example 🚧
Category | Examples |
---|---|
Nav | ls, pwd, cd /home/test, cd .. |
CRUD | echo foo >/home/bar, /home/bar, cd; rm bar |
Out | seq 10, echo foo{1..5}, expr '2**10' |
Meta | history, declare, help</span |
Let's spend some time providing the backdrop
FROM HERE would like
- TODO ideas about characters and storylines e.g. 64 floors, floor layout; protagonist; other characters; natural mental states are unskillful; watchers represent fetters e.g. worry, ill-will etc.
- TODO clearer ideas about gameplay e.g. exploration; procedural generation; time-limited navpath motion; mental weaponry related to mental training; travel within the Night Land; ultimate goal e.g. deathless
We'll use navigation meshes to simulate starship inhabitants, following the rules of Traveller. To makes things less abstract, here's a Traveller-based asset called a geomorph.
We've recreated Geomorph 301 (a.k.a. Bridge) from Robert Pearce's Starship Geomorphs 2.0, using 8 of his Starship Symbols. Obstacles you can see over are shaded grey e.g. chairs and beds. Walls and obstacles which cannot be seen over are darker grey and black. The underlying polygons of these obstacles, together with the white rectangular doors, induce the white triangulated navigable polygon shown above.
Check out this larger version.
TODO remove SvgVisibilityDemo and Css3d demo, replacing with NPC demo combined with terminal in some way.