3D file formats
+Generated by Codox
The-great-game 0.1.3
3D file formats
I’m going to be doing a lot with programatically manipulated models. Therefore there’s a benefit to me in using a file format which is human-readable, and also easily parsed. Compactness is also a virtue, but it’s a virtue I can achieve by compressing human readable files, I think.
Loading time is an issue, but I will be loading relatively few models and manipulating them in memory to produce large numbers of variants, rather than loading a new model for every asset I wish to place. So both from the point of view of total disk space and from the point of view of performance, I think that formats which are optimised more towards my needs as a developer than to raw performance or storage size are probably justified.
Obviously jMonkeyEngine’s own .j3o
format is something I can parse – because I have the native jMonkeyEngine libraries to do it – but it’s not something I can inspect or hand edit, so I’m unwilling at this stage to use it. As I understand it, it’s a file of serialised Java objects, which, if so, would make it relatively efficient to load.
Generated by Codox
The-great-game 0.1.3
A Generic Planning Algorithm for craftworker NPCs
+Generated by Codox
The-great-game 0.1.3
A Generic Planning Algorithm for craftworker NPCs
Preamble
The Great Game requires a number of different crafts to be performed, both because the economy depends on the products of those crafts and to provide verisimilitude and set dressing. Some of those crafts, the relations between them, and the progression within them are set out in Populating a game world.
For the purposes of planning work, only Master craftspeople are considered.
diff --git a/docs/codox/API_Spec.html b/docs/codox/API_Spec.html index 3e8c2a5..68f5110 100644 --- a/docs/codox/API_Spec.html +++ b/docs/codox/API_Spec.html @@ -1,6 +1,6 @@ -Generated by Codox
The-great-game 0.1.3
API Spec (unfinished)
+Generated by Codox
The-great-game 0.1.3
API Spec (unfinished)
If the Gossip system is ever to be deployed in practice at all, it will need to be deployed as a library add-on to someone else’s game, since in practice The Great Game will never be even nearly finished. The game engine already knows many of the things the Gossip system needs to know; that we need to define is an interface which allows Gossip, considered as a subsystem, to query the game engine.
My preference is still that Gossip should be written in a Lisp-like language - and, for now, in Clojure - simply because that is most comfortable to me. It needs bidirectional socket communication with the game engine, over which it sends either extensible data notation or JavaScript Object Notation, with a preference for the former.
Tracking what happens in the world
diff --git a/docs/codox/Appraisal.html b/docs/codox/Appraisal.html index b3a7c74..dbc4e31 100644 --- a/docs/codox/Appraisal.html +++ b/docs/codox/Appraisal.html @@ -1,6 +1,6 @@ -Generated by Codox
The-great-game 0.1.3
Appraisal (unfinished)
+Generated by Codox
The-great-game 0.1.3
Appraisal (unfinished)
What is Appraisal
There’s an thing that all non player characters can do, which varies greatly from person to person, and which is of particular importance to merchants, and that is appraisal.
Each category of goods has different dimensions of quality. A sword may be evaluated, for example, on
diff --git a/docs/codox/Architecture.html b/docs/codox/Architecture.html index a403c7c..7be5a17 100644 --- a/docs/codox/Architecture.html +++ b/docs/codox/Architecture.html @@ -1,6 +1,6 @@ -Generated by Codox
The-great-game 0.1.3
Architecture
+Generated by Codox
The-great-game 0.1.3
Architecture
OK, the basic idea is this
Everything (every game object, including the world) is a map.
Every object as an :id property; every :id property is distinct.
diff --git a/docs/codox/Baking-the-world.html b/docs/codox/Baking-the-world.html index 5c721a0..a6aae70 100644 --- a/docs/codox/Baking-the-world.html +++ b/docs/codox/Baking-the-world.html @@ -1,6 +1,6 @@ -Generated by Codox
The-great-game 0.1.3
Baking the world
+Generated by Codox
The-great-game 0.1.3
Baking the world
Wednesday, 8 May 2019
Devorgilla’s Bridge in Dumfries, early fourteenth century. This clearly shows how a genetic buildings approach to bridges can be made to work: a single element is repeated to span the necessary distance. That element can be stretched vertically and laterally to match the location, and can be rendered in different stone finishes to match local geology.
diff --git a/docs/codox/Building_on_microworld.html b/docs/codox/Building_on_microworld.html index 32ee6ba..d300378 100644 --- a/docs/codox/Building_on_microworld.html +++ b/docs/codox/Building_on_microworld.html @@ -1,6 +1,6 @@ -Generated by Codox
The-great-game 0.1.3
Building on Microworld
+Generated by Codox
The-great-game 0.1.3
Building on Microworld
In Settling a Game World I intended that a world should be populated by setting agents - settlers - to explore the map and select places to settle according to particular rules. In the meantime, I’ve built MicroWorld, a rule driven cellular automaton which makes a reasonably good job of modelling human settlement. It works, and I now plan to use it, as detailed in this note; but there are issues.
First and foremost, it’s slow, and both processor and memory hungry. That means that at continent scale, a cell of one kilometre square is the minimum size which is really possible, which isn’t small enough to create a settlement map of the density that a game will need. Even with 1 km cells, even on the most powerful machines I have access to, a continent-size map will take many days to run.
Of course it would be possible to do a run at one km scale top identify areas which would support settlement, and then to do a run on a ten metre grid on each of those areas to more precisely plot settlement. That’s an idea which I haven’t yet explored, which might prove fruitful.
diff --git a/docs/codox/Canonical-dictionary.html b/docs/codox/Canonical-dictionary.html index f17bad2..76ec79f 100644 --- a/docs/codox/Canonical-dictionary.html +++ b/docs/codox/Canonical-dictionary.html @@ -1,6 +1,6 @@ -Generated by Codox
The-great-game 0.1.3
Canonical dictionary for this documentation
+Generated by Codox
The-great-game 0.1.3
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, if implemented, the player can inhabit any actor within the game world.
Generated by Codox
The-great-game 0.1.3
Division of tasks between server and client
-======= -Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Division of tasks between server and client (unfinished)
->>>>>>> develop +Generated by Codox
The-great-game 0.1.3
Division of tasks between server and client (unfinished)
An alternative nomentclature I may use for this dichotomy would be planner and performer; it would be the same dichotomy. ‘Planner’ and ‘server’ are synonyms; ‘performer’ and ‘client’ are synonyms.
What do I mean by the ‘server’?
There is something which manages game state and things like the gossip network, merchant network, and major world events. This something is almost certainly written in some form of Lisp; I’d prefer Clojure but I don’t think it’s performant enough so probably Common Lisp. This means that it has inevitable pauses for garbage collection. Underneath this is a database which handles persistent storage of game state, which is probably an SQL database and quite likely SQLite.
diff --git a/docs/codox/Draft-algorithm-functional-physics-engine.html b/docs/codox/Draft-algorithm-functional-physics-engine.html new file mode 100644 index 0000000..e38d620 --- /dev/null +++ b/docs/codox/Draft-algorithm-functional-physics-engine.html @@ -0,0 +1,61 @@ + +Generated by Codox
The-great-game 0.1.3
Sketch for an algorithm for a pure-functional physics engine
+What a physics engine needs to do is, at each step
+-
+
- Take a collection of bodies; +
- For every pair of bodies, compute the change in velocity of each consequent on their interaction; +
- For each body, merge the changes in velocity found in step two into one change in velocity; +
- For each body, update the position of the body. +
Now, in practice, for simulations in a terrestrial environment, the largest interaction any of the other bodies constantly has is that with the planet in the form of gravity; and, gravity of the planet is so much greater than that of any other body in the environment that the gravitational attraction of the other bodies to each other can be ignored; and finally, the difference in mass between the planet and any other of the bodies is such that changes to the velocity of the planet can effectively ignored. So we can modify that to
+-
+
- Take a collection of bodies excepting the planet; +
- For each pair of bodies including the planet, compute as vectors changes in velocity consequent on collisions between them (but the change in velocity of the planet will always be deemed to be zero); +
- For each body, compute as a vector the change in velocity consequent on the gravitational attraction of the planet; +
- For each body, compute as a vector the change in velocity consequent on the friction of the medium through which it is moving; +
- For each body, merge the vectors computed above with the body’s initial velocity to produce a new velocity vector. +
OK so far?
+So that looks something like
+(require [clojure.math.combinatorics :refer [combinations]])
+
+(defn physics-tick
+ "Compute the change of velocity to each of these `objects` in one tick."
+ [objects]
+ (pmap merge-vectors
+ (pmap apply-friction
+ (pmap apply-gravity
+ (merge-collisions
+ (remove nil? (pmap collide (combinations objects 2)))
+ objects
+ )
+ )
+ )
+)
+
+Where:
+collide
is a function which takes two objects, and if those objects are not in collision at this physics step, returns nil; if they are in collision, returns a pair of two objects like those passed, except that each has a 3d vector object added to its :deltas
property.
Thus, (pmap collide (combinations objects 2))
will return a flat list with potentially many copies of the same object, each with different deltas; but it will not contain any copies of any objects which weren’t in collision at all.
Consequently, merge-collisions
must, for every key in the objects, collect each of the copies of that object from the collisions and from the original objects list, and, for each key, return one object identical to the original object except that its :deltas
property is a concatentation of the :deltas
properties of each of the copies:
(defn merge-collisions
+ [collision-pairs objects]
+ (pmap
+ #(assoc (first %) :deltas (apply concat (map :deltas %)))
+ (partition-by :id
+ (sort-by :id
+ (concat
+ (flatten collision-pairs)
+ objects)))))
+
+apply-gravity
is simply a function which returns an object like the object passed to it, but with a constant acceleration-under-gravity vector added to its :deltas
property;
apply-friction
is a fairly simple function which computes a friction vector in the direction opposite to the current velocity object passed to it, and returns an object like the object passed but with that fricton vector added to its :deltas
property;
and finally,
+merge-vectors
is a function which takes an object with a :position
, a :velocity
, and a (possibly empty) sequence of :deltas
, computes a new :velocity
vector produced by applying each of the deltas in turn to the velocity, and a new :position
produced by adding that new :velocity
(times the duration of the tick) to the old position. It returns an object like the object passed but with the new :position
and :velocity
values. I’m too tired to confidently state the maths of that now, but I’m confident it’s simple.
Which means, in fact, that the whole thing is simple (modulo the collide
function, which I haven’t even sketched above, and which is somewhat dependent on the models involved).
Note that, however
+-
+
- At this stage it considers only velocity deltas, not spin deltas; it ought to do that too, but, although that adds extra operations, it doesn’t add complexity; and +
- This currently considers only rigid bodies. Soft bodies are a significantly more complex problem. +
Generated by Codox
The-great-game 0.1.3
On the consequences of a dynamic game environment for storytelling
-======= -Generated by Codox
The-great-game 0.1.3-SNAPSHOT
On the consequences of a dynamic game environment for storytelling
->>>>>>> develop +Generated by Codox
The-great-game 0.1.3
On the consequences of a dynamic game environment for storytelling
First, a framing disclaimer: in Racundra’s First Cruise, Arthur Ransome describes coming across a half built — and by the time he saw it, already obsolete — wooden sailing ship, in a Baltic forest. An old man was building it, by himself. He had been building it since he had been a young man. It’s clear that Ransome believed the ship would never be finished. It’s not clear whether the old man believed that it would, but nevertheless he was building it.
I will never build a complete version of The Great Game; it will probably never even be a playable prototype. It is a minor side-project of someone who
-
diff --git a/docs/codox/Economy.html b/docs/codox/Economy.html
index 809bb46..2c5c958 100644
--- a/docs/codox/Economy.html
+++ b/docs/codox/Economy.html
@@ -1,10 +1,6 @@
-<<<<<<< HEAD
-
-
diff --git a/docs/codox/Genetic-buildings.html b/docs/codox/Genetic-buildings.html
index 9c1d214..2ef296d 100644
--- a/docs/codox/Genetic-buildings.html
+++ b/docs/codox/Genetic-buildings.html
@@ -1,10 +1,6 @@
-<<<<<<< HEAD
-
Genetic Buildings Generated by Codox
The-great-game 0.1.3
Genetic Buildings
-======= -Genetic Buildings Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Genetic Buildings
->>>>>>> develop +Genetic Buildings Generated by Codox
The-great-game 0.1.3
Genetic Buildings
Building selection based on location
The objective of this note is to create a landscape with varied and believable buildings, with the minimum possible data storage per instance.
Like plants, buildings will ‘grow’ from a seed which has northing and easting attributes. These locate a position on the map. Again, like trees, some aspects of the building type selector are location based. Aspects of the location which are relevant to building type are
diff --git a/docs/codox/Gossip_scripted_plot_and_Johnny_Silverhand.html b/docs/codox/Gossip_scripted_plot_and_Johnny_Silverhand.html index f27b20a..58e62b7 100644 --- a/docs/codox/Gossip_scripted_plot_and_Johnny_Silverhand.html +++ b/docs/codox/Gossip_scripted_plot_and_Johnny_Silverhand.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Gossip, scripted plot, and Johnny Silverhand Generated by Codox
The-great-game 0.1.3
Gossip, scripted plot, and Johnny Silverhand
-======= -Gossip, scripted plot, and Johnny Silverhand Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Gossip, scripted plot, and Johnny Silverhand
->>>>>>> develop +Gossip, scripted plot, and Johnny Silverhand Generated by Codox
The-great-game 0.1.3
Gossip, scripted plot, and Johnny Silverhand
I’ve been writing literally for years — since Voice acting considered harmful in 2015 — about game worlds in which the player speaks to non-player characters just by speaking the words they choose in their normal voice, and the non-player character replies using a pipeline that goes, essentially,
- Alexa/Siri style speech interpretation; diff --git a/docs/codox/MVP-Roadmap.html b/docs/codox/MVP-Roadmap.html index 72ea821..e255e69 100644 --- a/docs/codox/MVP-Roadmap.html +++ b/docs/codox/MVP-Roadmap.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -
- Kill quests diff --git a/docs/codox/Pathmaking.html b/docs/codox/Pathmaking.html index d6aafb7..bfdecc1 100644 --- a/docs/codox/Pathmaking.html +++ b/docs/codox/Pathmaking.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -
Minimum Viable Product, and a road map Generated by Codox
The-great-game 0.1.3
Minimum Viable Product, and a road map
-======= -Minimum Viable Product, and a road map Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Minimum Viable Product, and a road map
->>>>>>> develop +Minimum Viable Product, and a road map Generated by Codox
The-great-game 0.1.3
Minimum Viable Product, and a road map
Right, I’m bogged down thinking about the immensity of what I want to build, so I’m achieving nothing. So the first thing I need to state is what the Minimum Viable Product is, and the second is to outline a rough road map which takes us forwards a few steps from the MVP.
The core idea here is to have a game world in which you can just say anything you like to game characters, and they can say sensible things back.
But actually, I know that speech to text can be reasonably effectively done; and I believe with a slightly lower degree of confidence that text to convincing speech can also be done.
diff --git a/docs/codox/Modelling_trading_cost_and_risk.html b/docs/codox/Modelling_trading_cost_and_risk.html index 7175e52..a9dd1f2 100644 --- a/docs/codox/Modelling_trading_cost_and_risk.html +++ b/docs/codox/Modelling_trading_cost_and_risk.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Modelling trading cost and risk (unfinished) Generated by Codox
The-great-game 0.1.3
Modelling trading cost and risk (unfinished)
-======= -Modelling trading cost and risk (unfinished) Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Modelling trading cost and risk (unfinished)
->>>>>>> develop +Modelling trading cost and risk (unfinished) Generated by Codox
The-great-game 0.1.3
Modelling trading cost and risk (unfinished)
In a dynamic pre-firearms world with many small states and contested regions, trade is not going to be straightforward. Not only will different routes have different physical characteristics - more or less mountainous, more or fewer unbridged river crossings - they will also have different political characteristics: more of less taxed, more or less effectively policed.
Raids by outlaws are expected to be part of the game economy. News of raids are the sort of things which may propagate through the gossip system. So are changes in taxation regime. Obviously, knowledge items can affect merchants’ trading strategy; in existing prototype code, individual merchants already each keep their own cache of known historical prices, and exchange historical price data with one another; and use this price data to select trades to make.
So: to what extent is it worth modelling the spread of knowledge of trade cost and risk?
diff --git a/docs/codox/Naming-of-characters.html b/docs/codox/Naming-of-characters.html index a95c454..930a319 100644 --- a/docs/codox/Naming-of-characters.html +++ b/docs/codox/Naming-of-characters.html @@ -1,11 +1,7 @@ -<<<<<<< HEAD -Naming of Characters Generated by Codox
The-great-game 0.1.3
Naming of Characters
-======= -Naming of Characters Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Naming of Characters
+Naming of Characters Generated by Codox
The-great-game 0.1.3
Naming of Characters
->>>>>>> developGenerally speaking, in modern RPGs, every character with any impact on the plot has a distinct name. But if we are going to give all non-player characters sufficient agency to impact on the plot, then we must have a way of naming tens or hundreds of thousands of characters, and distinct names will become problematic (even if we’re procedurally generating names, which we shall have to do. So this note is about how characters are named.
The full name of each character will be made up as follows:
epithet clan personal-name the trade-or-rank of location, son/daughter of parent
diff --git a/docs/codox/Not_my_problem.html b/docs/codox/Not_my_problem.html index affc67b..b9e863d 100644 --- a/docs/codox/Not_my_problem.html +++ b/docs/codox/Not_my_problem.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Not my problem Generated by Codox
The-great-game 0.1.3
# Not my problem
-======= -Not my problem Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Not my problem
->>>>>>> develop +Not my problem Generated by Codox
The-great-game 0.1.3
Not my problem
Introduction
This document is essentially a catalogue of side-tracks which I do not have to go down when implementing The Great Game. Solved problems; or problems which are common to many other games, so if I don’t solve them someone else will. The object of doing this is to work down to a constrained set of problems which are genuinely things I’m trying to innovate, which I should focus on; which essentially come down to
-
diff --git a/docs/codox/On-dying.html b/docs/codox/On-dying.html
index 9e8a781..fd3ed54 100644
--- a/docs/codox/On-dying.html
+++ b/docs/codox/On-dying.html
@@ -1,10 +1,6 @@
-<<<<<<< HEAD
-
On Dying, and Injury Generated by Codox
The-great-game 0.1.3
On Dying, and Injury
-======= -On Dying, and Injury Generated by Codox
The-great-game 0.1.3-SNAPSHOT
On Dying, and Injury
->>>>>>> develop +On Dying, and Injury Generated by Codox
The-great-game 0.1.3
On Dying, and Injury
Death is the end of your story. One of the tropes in games which, for me, most breaks immersion is when you lose a fight and are presented with a screen that says ‘you are dead. Do you want to reload your last save?’ Life is not like that. We do not have save-states. We die.
So how could this be better handled?
You lose a fight. Switch to cutscene: the battlefield, after the fight, your body is there. Probably no sound. A party of non-enemies crosses the battlefield and finds your body. We see surprise and concern. They gather around you. Cut to interior scene, you are in a bed, unconcious, being tended; cut to similar interior scene, you are in a bed, conscious, being tended; cut to exterior scene, you are sitting with some of your saviours, and the game restarts.
diff --git a/docs/codox/On-sex-and-sexual-violence.html b/docs/codox/On-sex-and-sexual-violence.html index c0760b9..600f0cd 100644 --- a/docs/codox/On-sex-and-sexual-violence.html +++ b/docs/codox/On-sex-and-sexual-violence.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -On Sex, and Sexual Violence, in Games Generated by Codox
The-great-game 0.1.3
On Sex, and Sexual Violence, in Games
-======= -On Sex, and Sexual Violence, in Games Generated by Codox
The-great-game 0.1.3-SNAPSHOT
On Sex, and Sexual Violence, in Games
->>>>>>> develop +On Sex, and Sexual Violence, in Games Generated by Codox
The-great-game 0.1.3
On Sex, and Sexual Violence, in Games
For me the purpose of games is to provide worlds in which players can explore moral actions, and the consequences of moral actions. Sexual violence is something that happens in the real world, and which happens, even within the real world, more frequently in areas of poor governance and open conflict; and those are areas in which there are important moral actions, and important moral consequences, so they are areas in which it is interesting to set games.
It would be ludicrous to argue ‘sexual violence is wrong, therefore we should not represent it in games.’ Killing people is also wrong, yet it is extremely common in games. However, sexual violence — and in particular the representation of sexual violence — does pose some specific problems that need to be addressed.
Firstly, sexual violence is extremely gendered. Yes, male people are sometimes subjected to sexual violence, but nevertheless the overwhelming majority of victims of sexual violence are female. Yes, female people are sometimes — extraordinarily rarely, but sometimes — perpetrators of sexual violence, but nevertheless perpetrators of sexual violence are almost exclusively male.
diff --git a/docs/codox/Organic_Quests.html b/docs/codox/Organic_Quests.html index 63c490e..4f1dc02 100644 --- a/docs/codox/Organic_Quests.html +++ b/docs/codox/Organic_Quests.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Organic Quests Generated by Codox
The-great-game 0.1.3
Organic Quests
-======= -Organic Quests Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Organic Quests
->>>>>>> develop +Organic Quests Generated by Codox
The-great-game 0.1.3
Organic Quests
The structure of a modern Role Playing Came revolves around ‘quests’: tasks that the player character is invited to do, either by the framing narrative of the game or by some non-player character (‘the Quest Giver’). Normally there is one core quest which provides the overarching narrative for the whole game. Wikipedia offers a typology of quests as follows:
Pathmaking Generated by Codox
The-great-game 0.1.3
Pathmaking
-======= -Pathmaking Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Pathmaking
->>>>>>> develop +Pathmaking Generated by Codox
The-great-game 0.1.3
Pathmaking
NOTE: this file is called ‘pathmaking’, not ‘pathfinding’, because ‘pathfinding’ has a very specific meaning/usage in game design which is only part of what I want to talk about here.
NOTE: Work on this is being carried on in a separate library, Walkmap, q.v.
Stages in creating routes between locations
diff --git a/docs/codox/Populating-a-game-world.html b/docs/codox/Populating-a-game-world.html index c828173..9e2fc5b 100644 --- a/docs/codox/Populating-a-game-world.html +++ b/docs/codox/Populating-a-game-world.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Populating a game world Generated by Codox
The-great-game 0.1.3
Populating a game world
-======= -Populating a game world Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Populating a game world
->>>>>>> develop +Populating a game world Generated by Codox
The-great-game 0.1.3
Populating a game world
Saturday, 6 July 2013
(You might want to read this essay in conjunction with my older essay, Settling a game world, which covers similar ground but which this hopefully advances on)
For an economy to work people have to be able to move between occupations to fill economic niches. In steady state, non player character (NPC) males become adult as ‘vagrants’, and then move through the state transitions described in this document. The pattern for females is different.
diff --git a/docs/codox/Pseudo-object-inheritance.html b/docs/codox/Pseudo-object-inheritance.html index ece18fc..e1cbf57 100644 --- a/docs/codox/Pseudo-object-inheritance.html +++ b/docs/codox/Pseudo-object-inheritance.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Pseudo object inheritance Generated by Codox
The-great-game 0.1.3
Pseudo object inheritance
-======= -Pseudo object inheritance Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Pseudo object inheritance
->>>>>>> develop +Pseudo object inheritance Generated by Codox
The-great-game 0.1.3
\ No newline at end of file diff --git a/docs/codox/Roadmap.html b/docs/codox/Roadmap.html index d8fa01c..b527f4f 100644 --- a/docs/codox/Roadmap.html +++ b/docs/codox/Roadmap.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Pseudo object inheritance
This is simply to document how I’m doing type inheritance for game objects, since Clojure does not provide type inheritance for records and I’m currently building game objects on Clojure records.
It’s possible that I should instead build game objects on Java beans, which do have type (class) inheritance, and would work transparently; however, that isn’t my current approach.
Roadmap (obsolete) Generated by Codox
The-great-game 0.1.3
Roadmap (obsolete)
-======= -Roadmap (obsolete) Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Roadmap (obsolete)
->>>>>>> develop +Roadmap (obsolete) Generated by Codox
The-great-game 0.1.3
Roadmap (obsolete)
This document outlines a plan to move forward from where I am in June 2021.
NOTE: this document has been superceded.
JMonkeyEngine
diff --git a/docs/codox/Sandbox.html b/docs/codox/Sandbox.html index b0b8f3e..3e648d1 100644 --- a/docs/codox/Sandbox.html +++ b/docs/codox/Sandbox.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Sandbox Generated by Codox
The-great-game 0.1.3
Sandbox
-======= -Sandbox Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Sandbox
->>>>>>> develop +Sandbox Generated by Codox
The-great-game 0.1.3
Sandbox
Up to now I’ve been thinking of the Great Game as essentially an RPG with some sandbox-like elements; but I think it may be better to think of it as a sandbox game with some RPG like elements.
Why?
The core of the game is a world in which non-player characters have enough individual knowledge of the world and their immediate surroundings that they can sensibly answer questions like
diff --git a/docs/codox/Selecting_Character.html b/docs/codox/Selecting_Character.html index 4ae05ec..536cadc 100644 --- a/docs/codox/Selecting_Character.html +++ b/docs/codox/Selecting_Character.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Selecting the Player Character Generated by Codox
The-great-game 0.1.3
Selecting the Player Character
-======= -Selecting the Player Character Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Selecting the Player Character
->>>>>>> develop +Selecting the Player Character Generated by Codox
The-great-game 0.1.3
Selecting the Player Character
Background
Many computer role playing games, particularly older ones such as Neverwinter Nights, allow you to ‘design’ your player character from a fairly broad canvas. Race, class, attributes, gender and appearance are all selectable.
Choice has eroded over time. For example the Dragon Age series, where you can chose between three races, two genders, and a small number of classes. In the Mass Effect trilogy, you play as Shepard, who is human and essentially a Fighter, but can be either male or female and whose appearance you can customise. You can play as either lawful good or chaotic neutral. In Cyberpunk 2077, you play as V, who is human, either male or female, essentially a Fighter, and chaotic neutral.
diff --git a/docs/codox/Settling-a-game-world.html b/docs/codox/Settling-a-game-world.html index 3baf213..23b250f 100644 --- a/docs/codox/Settling-a-game-world.html +++ b/docs/codox/Settling-a-game-world.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Settling a game world Generated by Codox
The-great-game 0.1.3
Settling a game world
-======= -Settling a game world Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Settling a game world
->>>>>>> develop +Settling a game world Generated by Codox
The-great-game 0.1.3
Settling a game world
Wednesday, 30 December 2009
This essay is part of a series with ‘Worlds and Flats’ and ‘The spread of knowledge in a large game world’; if you haven’t read those you may want to read them before reading this. This essay describes how a large world can come into being and can evolve. I’ve written again on this subject since - see ‘Populating a game world’)
Microworld
diff --git a/docs/codox/Sexual-dimorphism.html b/docs/codox/Sexual-dimorphism.html index bc6d1a5..94faa9e 100644 --- a/docs/codox/Sexual-dimorphism.html +++ b/docs/codox/Sexual-dimorphism.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Sexual dimorphism Generated by Codox
The-great-game 0.1.3
Sexual dimorphism
-======= -Sexual dimorphism Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Sexual dimorphism
->>>>>>> develop +Sexual dimorphism Generated by Codox
The-great-game 0.1.3
Sexual dimorphism
This essay is going to upset a lot of people, so let’s start with a statement of what it is about: it is an attempt to describe the systematically different behaviours of men and women, in sufficient detail that this can be represented by agents in a game world. It’s trying to allow as broad as possible a range of cultures to be represented, so when I’m talking about what I consider to be behaviours of particular cultures, I’ll say that.
Of course, I’m writing this from the view point of an old white male. It’s not possible to write about these things from a totally neutral viewpoint, and every one of us will have prejudices.
OK? Let’s start.
diff --git a/docs/codox/Simulated-genetics.html b/docs/codox/Simulated-genetics.html index 7a32889..d825c7f 100644 --- a/docs/codox/Simulated-genetics.html +++ b/docs/codox/Simulated-genetics.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Simulated Genetics Generated by Codox
The-great-game 0.1.3
Generated by Codox
The-great-game 0.1.3
Game world economy
-======= -Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Game world economy (unfinished)
->>>>>>> develop +Generated by Codox
The-great-game 0.1.3
Game world economy (unfinished)
Broadly this essay extends ideas presented in Populating a game world, q.v.
Primary producers
Herdsfolk
diff --git a/docs/codox/Further-reading.html b/docs/codox/Further-reading.html index 6d9457d..6ef1650 100644 --- a/docs/codox/Further-reading.html +++ b/docs/codox/Further-reading.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Generated by Codox
The-great-game 0.1.3
Further Reading (and watching)
-======= -Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Further Reading (and watching)
->>>>>>> develop +Generated by Codox
The-great-game 0.1.3
Further Reading (and watching)
Work by other people which is relevant to what I’m doing, and which I should study.
## Modelling the natural environment
Forests
diff --git a/docs/codox/Game_Play.html b/docs/codox/Game_Play.html index d9a5f5c..ee52f8f 100644 --- a/docs/codox/Game_Play.html +++ b/docs/codox/Game_Play.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Generated by Codox
The-great-game 0.1.3
Game Play
-======= -Generated by Codox
The-great-game 0.1.3-SNAPSHOT
Game Play (unfinished)
->>>>>>> develop +Generated by Codox
The-great-game 0.1.3
Game Play (unfinished)
The principles of game play which I’m looking for are a reaction against all I see as wrong in modern video games. So let’s set out what these are: