2022-09-17 18:28:13 +03:00
|
|
|
Here are a few general guiding principles behind the development and
|
|
|
|
design of the game.
|
|
|
|
|
|
|
|
Fun
|
|
|
|
---
|
|
|
|
|
|
|
|
The game should be fun! (But it's OK if it's only fun to a certain
|
|
|
|
kind of nerd.)
|
|
|
|
|
|
|
|
Programming
|
|
|
|
-----------
|
|
|
|
|
|
|
|
The game is, first and foremost, a *programming* game, and it should
|
|
|
|
promote the exploration and use of various sorts of programming
|
|
|
|
abstractions. In other words, it should reward finesse in writing
|
|
|
|
sophsticated robot programs, as opposed to e.g. throwing a ton of
|
|
|
|
robots at things by brute force (though it's OK if some brute force is
|
|
|
|
required as well).
|
|
|
|
|
|
|
|
Composability
|
|
|
|
-------------
|
|
|
|
|
|
|
|
Don't provide complex built-in features; instead, provide simple,
|
|
|
|
fundamental, composable pieces out of which users can build the
|
|
|
|
complex features themselves.
|
|
|
|
|
|
|
|
Open World
|
|
|
|
----------
|
|
|
|
|
|
|
|
There should be multiple viable paths to upgrading and building more
|
|
|
|
abstractions, and multiple avenues for exploration. In other words,
|
|
|
|
we *don't* want a linear chain of achievements, where you *must*
|
|
|
|
enable language feature X in order to obtain resource Y, which you
|
|
|
|
need in order to enable language feature Z, which you need in order
|
2022-09-18 15:04:33 +03:00
|
|
|
to... and so on. Some of this will probably happen organically; it
|
2022-09-17 18:28:13 +03:00
|
|
|
would probably be impossible to enforce a strictly linear chain of
|
2022-09-18 15:04:33 +03:00
|
|
|
achievements even if we wanted to. But it's worth reflecting on
|
2022-09-17 18:28:13 +03:00
|
|
|
explicitly.
|
|
|
|
|
|
|
|
Discoverability
|
|
|
|
---------------
|
|
|
|
|
2022-09-18 15:04:33 +03:00
|
|
|
Ideally, everything in the game, including both entities and
|
|
|
|
programming language features, should be discoverable just by
|
2022-09-17 18:28:13 +03:00
|
|
|
playing.
|
|
|
|
|
|
|
|
Balance
|
|
|
|
-------
|
|
|
|
|
|
|
|
The activities of adding more programming language features, adding
|
|
|
|
new kinds of entities and recipes, and adding new things to the
|
|
|
|
generated worlds are all inextricably linked, and should be done
|
|
|
|
deliberately. It will probably require a lot of experimentation and
|
|
|
|
tweaking to balance things so that gameplay is interesting and
|
|
|
|
challenging but not overly difficult or tedious.
|