163 lines
6.0 KiB
Markdown
163 lines
6.0 KiB
Markdown
I've been kicking around the idea for a game for a long time. Recently I
|
|
went to play Rome: Total War and it broke, so now I'm going to write a
|
|
game.
|
|
|
|
It's roughly a space explore and colonize kind of a thing. Multiple
|
|
species and civilizations (eventually multiplayer).
|
|
|
|
I want to separate the UI from the Server and maybe have multiple
|
|
clients? At least a Tkinter client to begin with and then maybe a cool
|
|
"gamey" UI written with Godot or something.
|
|
|
|
So far there is a canvas that is larger than the window and that you can
|
|
scroll, and there are some stars that vary in size a little but they're
|
|
all yellow. And that's it.
|
|
|
|
I use some old code I had laying around to generate stars that are not
|
|
too close to each other, it winds up being just under 5000 stars with the
|
|
current parameters.
|
|
|
|
The "server" isn't a server at all yet. It just generates the starfield
|
|
so the UI script doesn't have to do it each time. I'm just using pickle
|
|
for data format, eventually it could use JSON (ick) or SQLite (nice.)
|
|
|
|
|
|
Aesthetics: maybe have a sprinkling of background stars behind the
|
|
"real" stars (that are part of the game.)
|
|
|
|
Toggle fullscreen.
|
|
|
|
Controls? Tabs? HUD/OSD (heads up display/on screen display)
|
|
|
|
|
|
Fri Apr 12 12:27:56 PDT 2024
|
|
I think I will use SQLite as teh interchange file format. It's language
|
|
agnostic (i mean, SQL, sure, but you can use it from any lang) and I can
|
|
keep historical data in it rather than just the current state, eh? No
|
|
one will freak out?
|
|
|
|
|
|
That was easy.
|
|
|
|
I don't want to spend too much time fiddling with the widgets and UI,
|
|
it's fun but it's a bit of a rabbit hole, eh?
|
|
|
|
|
|
The basic model is that you get a state db from the server, explore it
|
|
with the client and queue up an order list to send back to the server for
|
|
processing, which then returns the new state db.
|
|
|
|
What format for the order codes?
|
|
|
|
Thun code?
|
|
|
|
THe db tables and game data types should be compatible with Prolog?
|
|
|
|
I don't want to have a bunch of Python objects modelling the game
|
|
entities if possible, what I mean is, it would be neat if the db rows
|
|
(tuples of Python ints & strings) and the Tk widgets (canvas items, etc.)
|
|
could be the bulk of the internal game, uh, stuff. Not everything needs
|
|
to be a class?
|
|
|
|
|
|
Sat Apr 13 11:13:18 PDT 2024
|
|
I don't like the Poisson star layout. It's too regular. I'd like it if
|
|
there was a really huge "space", like 2^10 x 2^10 with stars laid out in
|
|
a spiral pattern like the Galaxy. Or even use real astro data (like, uh,
|
|
is it Epic that does that?)
|
|
|
|
But it's not on the critical path. I've got stars.
|
|
|
|
[VGA Planets](https://en.wikipedia.org/wiki/Vga_planets) is a big
|
|
inspiration.
|
|
|
|
> the 4X game (eXplore, eXpand, eXploit and eXterminate) model
|
|
|
|
[4X game](https://en.wikipedia.org/wiki/4X_game)
|
|
|
|
|
|
Sat Apr 13 13:10:19 PDT 2024
|
|
|
|
I took a look at the real Milky Way and man is it ever big. Thouands of
|
|
star clusters with thousands of stars each... I was looking at an image
|
|
of the core and letting my mind expand to try to encompass it and I got
|
|
really spacey/high, in a good way.
|
|
|
|
There's a tension between versimilitude (fidelity to the real data) and
|
|
making something easy to write and fun to play. It would be simple
|
|
enough to generate crude cartoon worlds, and a detailed realistic galaxy
|
|
might be kinda boring (to play.) If you want to (virtually) explore the
|
|
real galaxy there are resources for that.
|
|
|
|
In any event, I think the way forward is to generate something nice now
|
|
and upgrade it later. I don't want to get side-tracked, I want to stay
|
|
mostly on the critical path.
|
|
|
|
|
|
Sat Apr 13 13:31:02 PDT 2024
|
|
|
|
Context...
|
|
|
|
In this Universe there was a certain insectoid species (a hive species
|
|
like ants or bees) that attained sentience very early on, before any
|
|
other species on any other planet, and they effectively control the whole
|
|
place. They are mostly uninterested in new species, other than to
|
|
maintain stability and order.
|
|
|
|
As new species arise and attain sentience and explore the galaxy they are
|
|
incorporated into the insects' system (or destroyed, but that's very
|
|
rare.)
|
|
|
|
Rules:
|
|
|
|
1.) Species may only reproduce on their home planets. This limits
|
|
exponential population growth. Each species must learn to live within
|
|
planetary limits as proof of their sentience.
|
|
|
|
2.) War can only be fought by agreement. Before fighting two (or more)
|
|
species must file agreements with the insects. These agreements detail
|
|
the theater, forms of combat, parties, win criteria, and stakes for a
|
|
given conflict. Importantly, the idea is that one cannot force another
|
|
to fight. You can't use the threat of fighting to force other issues.
|
|
|
|
3.) Living beings are sacred. The insects generally speaking want there
|
|
to be more life, not less.
|
|
|
|
|
|
(When species members want to travel between the stars they generally
|
|
develop either suspended animation or longevity or both. D'oh! I forgot
|
|
"Bob the Blob" takes care of both, also interspecies communication.)
|
|
|
|
Most interstellar economic activity is in the exchange of "spices"
|
|
(biomolecules that are difficult or impossible to synthesize) and art.
|
|
|
|
To this end, you explore and find viable planets, seed them with life,
|
|
harvest them until they eventually develop their own sentient species
|
|
which then join the galactic society.
|
|
|
|
(Maybe? I'm spitballing here. I'd like to integrate this game universe
|
|
into a inchoate Sci-Fi universe I'm toying around with, if possible.)
|
|
|
|
Don't over-think it. "A complex system that works will be found to have
|
|
evolved from a simple system that worked." Something like that.
|
|
|
|
John Gall: Systemantics: How Systems Really Work and How They Fail
|
|
|
|
> A complex system that works is invariably found to have evolved from a
|
|
> simple system that worked. The inverse proposition also appears to be
|
|
> true: A complex system designed from scratch never works and cannot be
|
|
> made to work. You have to start over, beginning with a working simple
|
|
> system.
|
|
|
|
|
|
So let's make a simple system that works, eh?
|
|
|
|
|
|
Sat Apr 13 14:09:14 PDT 2024
|
|
|
|
Battles are resolved by proxy. Any other game (that gives a definite
|
|
result between the parties) can stand in for a battle or war in this
|
|
game.
|
|
|
|
|