This is a very interim commit. Started work on genetic buildings.
Nothing works!
This commit is contained in:
parent
310896cc95
commit
7138c51134
12 changed files with 439 additions and 11 deletions
55
doc/Canonical-dictionary.md
Normal file
55
doc/Canonical-dictionary.md
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
# A Canonical dictionary for this documentation
|
||||
|
||||
Where a word is used in the documentation for The Great Game and its related projects, this file describes the canonical meaning of that word. This is because a lot of the concepts in play are messy and ambiguous, so that at times even I am confused by what I mean. The presence of this file is an acknowledment of this difficulty, and an implicit admission that not all the documentation is, at this stage anyway, consistent.
|
||||
|
||||
#### Actor
|
||||
|
||||
An `actor` is a thing which performs actions within the game world. Thus a tree is (almost certainly) not an actor, and things like sheep and rabbits that run about are probably not actors, but an animal which may pro-actively interact with the player character (such as a predator, or a beast of burden, or even a prey species which may flee) is an actor. In [god mode](#God_mode), if implemented, the player can inhabit any actor within the game world.
|
||||
|
||||
#### Agent
|
||||
|
||||
`Agent` is probably just a synonym for `actor`. If it is different in any way, that way has not yet been determined.
|
||||
|
||||
#### Gossip
|
||||
|
||||
A `gossip` is an `actor` who exchanges news with other `actors`, even when the player character is not nearby. Thus `gossips` are the mechanism by which news propagates through the game world, and also the mechanism by which information degrades. Broadly:
|
||||
|
||||
1. `innkeepers` (and possibly some others) are `gossips` who do not move; rather, they gather information from gossips who do move, and all `non-player characters` local to the are deemed to know everything that their local `innkeeper` knows;
|
||||
2. `merchants` (and possibly some others) are `gossips` who do move from place to place, and thus transfer news.
|
||||
|
||||
See [the spread of knowledge in a large game world](The-spread-of-knowledge-in-large-game.html).
|
||||
|
||||
#### Heightmap
|
||||
|
||||
A `heightmap` is a raster image of the world, such that the intensity in which an area is coloured represents the value of some variable, by default height, of that area.
|
||||
|
||||
#### Holding
|
||||
|
||||
A `holding` is a polygon 'owned' by an `actor` on which are built appropriate building units representing the `actors` craft and status.
|
||||
|
||||
#### Location
|
||||
|
||||
A `location` value is a sequence comprising at most the x/y coordinate location and the ids of the settlement and region (possibly hierarchically) that contain the location. If the x/y is not local to the home of the receiving agent, they won't remember it and won't pass it on; if any of the ids are not interesting, they won't be passed on. So location information will degrade progressively as the item is passed along.
|
||||
|
||||
It is assumed that the `:home` of a character is a location in this sense.
|
||||
|
||||
**Examples**
|
||||
|
||||
1. [{:x 5445678 :y 9684351}]
|
||||
2. [{:x 5445678 :y 9684351} :karalin-palace :hanshua]
|
||||
|
||||
#### Merchant
|
||||
|
||||
A `merchant` is an `actor` and `gossip` who trades goods, and incidentally conveys news, between `markets`.
|
||||
|
||||
#### Non-player character
|
||||
|
||||
A `non-player character` is, for our purposes, an `actor` capable of engaging in conversation with the `player character`. Note, however, that, from a software point of view, the `player character` is just a special case of a `non-player character`.
|
||||
|
||||
#### Player character
|
||||
|
||||
The `player character` is the unique `actor` within the game currently controlled and inhabited by the player.
|
||||
|
||||
#### Route
|
||||
|
||||
A `route` is a pre-prepared path through the game world that an `actor` may take. Most `actors` are not constrained to follow `routes`, but in general `routes` have lower traversal cost than other terrain.
|
||||
28
doc/Roadmap.md
Normal file
28
doc/Roadmap.md
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
# Roadmap
|
||||
|
||||
This document outlines a plan to move forward from where I am in June 2021.
|
||||
|
||||
# JMonkeyEngine
|
||||
|
||||
[JMonkeyEngine](https://jmonkeyengine.org/) is not, at this time, an AAA game engine. But at the same time I'm never, really, going to build an AAA game. It is a working game engine which can display characters on screen in scenery and have them move around, and, actually, they can be fairly sophisticated. It will be resaonably easy to integrate Clojure code with JMonkeyEngine - easier than it would be to integrate either Clojure or Common Lisp with [Unreal Engine](https://www.unrealengine.com/) or [Unity 3D](https://unity.com/). As a significant added bonus, JMonkeyEngine is open source.
|
||||
|
||||
Consequently I plan to stop agonising about what game engine to use, and seriously focus on getting something working in JMonkeyEngine.
|
||||
|
||||
# Not Reinventing Wheels
|
||||
|
||||
JMonkeyEngine already has working code for walking animated characters, which is entirely adequate to proof-of-concept what I want to do. Rather than try to implement them myself, I just intend to use existing JMonkeyEngine code as far as possible.
|
||||
|
||||
# The 1Km World
|
||||
|
||||
I propose to build a 1Km square world, containing one settlement, as a proof of concept for
|
||||
|
||||
1. Procedural (genetic) buildings;
|
||||
2. Procedural settlement planning;
|
||||
3. Procedural characters, probably based on [MakeHuman 'Mass Produce' plugin](https://youtu.be/jRHnJX-TdT4), using walk animation based on [TestWalkingChar](https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-examples/src/main/java/jme3test/bullet/TestWalkingChar.java);
|
||||
4. Characters with their own hierarchy of needs, and their own means of planning to fulfil these;
|
||||
5. Characters with individualised knowledge about the world;
|
||||
6. Characters who can parse typed questions, and produce either a textual or audio response;
|
||||
7. Characters with procedurally generated accents (very stretch goal)!
|
||||
8. Characters who can listen to spoken questions, and produce audio responses.
|
||||
|
||||
At that stage, I have a technology demonstrator that will be interesting. It still leaves the big procedural world builder still to do, but it would be enough technology to get other people interested in the project.
|
||||
Loading…
Add table
Add a link
Reference in a new issue