diff --git a/docs/codox/3D-formats.html b/docs/codox/3D-formats.html index 6f2d9b9..28c5155 100644 --- a/docs/codox/3D-formats.html +++ b/docs/codox/3D-formats.html @@ -1,6 +1,6 @@ -3D file formats

3D file formats

+3D file formats

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.

diff --git a/docs/codox/A-generic-planning-algorithm-for-craftworker-npcs.html b/docs/codox/A-generic-planning-algorithm-for-craftworker-npcs.html index c386636..42b5a55 100644 --- a/docs/codox/A-generic-planning-algorithm-for-craftworker-npcs.html +++ b/docs/codox/A-generic-planning-algorithm-for-craftworker-npcs.html @@ -1,6 +1,6 @@ -A Generic Planning Algorithm for craftworker NPCs

A Generic Planning Algorithm for craftworker NPCs

+A Generic Planning Algorithm for craftworker NPCs

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 @@ -API Spec (unfinished)

API Spec (unfinished)

+API Spec (unfinished)

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 @@ -Appraisal (unfinished)

Appraisal (unfinished)

+Appraisal (unfinished)

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 @@ -Architecture

Architecture

+Architecture

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 @@ -Baking the world

Baking the world

+Baking the world

Baking the world

Wednesday, 8 May 2019

Devorgilla's Bridge in Dumfries, early fourteenth century

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 @@ -Building on Microworld

Building on Microworld

+Building on Microworld

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 @@ -Canonical dictionary for this documentation

Canonical dictionary for this documentation

+Canonical dictionary for this documentation

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.

diff --git a/docs/codox/Division_of_tasks_between_server_and_client.html b/docs/codox/Division_of_tasks_between_server_and_client.html index ffece50..7415410 100644 --- a/docs/codox/Division_of_tasks_between_server_and_client.html +++ b/docs/codox/Division_of_tasks_between_server_and_client.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Division of tasks between server and client

Division of tasks between server and client

-======= -Division of tasks between server and client (unfinished)

Division of tasks between server and client (unfinished)

->>>>>>> develop +Division of tasks between server and client (unfinished)

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 @@ + +Sketch for an algorithm for a pure-functional physics engine

Sketch for an algorithm for a pure-functional physics engine

+

What a physics engine needs to do is, at each step

+
    +
  1. Take a collection of bodies;
  2. +
  3. For every pair of bodies, compute the change in velocity of each consequent on their interaction;
  4. +
  5. For each body, merge the changes in velocity found in step two into one change in velocity;
  6. +
  7. For each body, update the position of the body.
  8. +
+

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

+
    +
  1. Take a collection of bodies excepting the planet;
  2. +
  3. 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);
  4. +
  5. For each body, compute as a vector the change in velocity consequent on the gravitational attraction of the planet;
  6. +
  7. For each body, compute as a vector the change in velocity consequent on the friction of the medium through which it is moving;
  8. +
  9. For each body, merge the vectors computed above with the body’s initial velocity to produce a new velocity vector.
  10. +
+

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

+
    +
  1. 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
  2. +
  3. This currently considers only rigid bodies. Soft bodies are a significantly more complex problem.
  4. +
+
\ No newline at end of file diff --git a/docs/codox/Dynamic-consequences.html b/docs/codox/Dynamic-consequences.html index dc05c83..a04b437 100644 --- a/docs/codox/Dynamic-consequences.html +++ b/docs/codox/Dynamic-consequences.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -On the consequences of a dynamic game environment for storytelling

On the consequences of a dynamic game environment for storytelling

-======= -On the consequences of a dynamic game environment for storytelling

On the consequences of a dynamic game environment for storytelling

->>>>>>> develop +On the consequences of a dynamic game environment for storytelling

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 -Game world economy

    Game world economy

    -======= -Game world economy (unfinished)

    Game world economy (unfinished)

    ->>>>>>> develop +Game world economy (unfinished)

    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 -Further Reading (and watching)

    Further Reading (and watching)

    -======= -Further Reading (and watching)

    Further Reading (and watching)

    ->>>>>>> develop +Further Reading (and watching)

    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 -Game Play

    Game Play

    -======= -Game Play (unfinished)

    Game Play (unfinished)

    ->>>>>>> develop +Game Play (unfinished)

    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:

    1. 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

      Genetic Buildings

      -======= -Genetic Buildings

      Genetic Buildings

      ->>>>>>> develop +Genetic Buildings

      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

      Gossip, scripted plot, and Johnny Silverhand

      -======= -Gossip, scripted plot, and Johnny Silverhand

      Gossip, scripted plot, and Johnny Silverhand

      ->>>>>>> develop +Gossip, scripted plot, and Johnny Silverhand

      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,

      1. Alexa/Siri style speech interpretation;
      2. 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 -Minimum Viable Product, and a road map

        Minimum Viable Product, and a road map

        -======= -Minimum Viable Product, and a road map

        Minimum Viable Product, and a road map

        ->>>>>>> develop +Minimum Viable Product, and a road map

        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)

        Modelling trading cost and risk (unfinished)

        -======= -Modelling trading cost and risk (unfinished)

        Modelling trading cost and risk (unfinished)

        ->>>>>>> develop +Modelling trading cost and risk (unfinished)

        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

        Naming of Characters

        -======= -Naming of Characters

        Naming of Characters

        +Naming of Characters

        Naming of Characters

        See wherefore-art-thou

        ->>>>>>> develop

        Generally 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

        # Not my problem

        -======= -Not my problem

        Not my problem

        ->>>>>>> develop +Not my problem

        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

          On Dying, and Injury

          -======= -On Dying, and Injury

          On Dying, and Injury

          ->>>>>>> develop +On Dying, and Injury

          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

          On Sex, and Sexual Violence, in Games

          -======= -On Sex, and Sexual Violence, in Games

          On Sex, and Sexual Violence, in Games

          ->>>>>>> develop +On Sex, and Sexual Violence, in Games

          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

          Organic Quests

          -======= -Organic Quests

          Organic Quests

          ->>>>>>> develop +Organic Quests

          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:

          1. Kill quests
          2. 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 -Pathmaking

            Pathmaking

            -======= -Pathmaking

            Pathmaking

            ->>>>>>> develop +Pathmaking

            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

            Populating a game world

            -======= -Populating a game world

            Populating a game world

            ->>>>>>> develop +Populating a game world

            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

            Pseudo object inheritance

            -======= -Pseudo object inheritance

            Pseudo object inheritance

            ->>>>>>> develop +Pseudo object inheritance

            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.

            \ 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 -Roadmap (obsolete)

            Roadmap (obsolete)

            -======= -Roadmap (obsolete)

            Roadmap (obsolete)

            ->>>>>>> develop +Roadmap (obsolete)

            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

            Sandbox

            -======= -Sandbox

            Sandbox

            ->>>>>>> develop +Sandbox

            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

            Selecting the Player Character

            -======= -Selecting the Player Character

            Selecting the Player Character

            ->>>>>>> develop +Selecting the Player Character

            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

            Settling a game world

            -======= -Settling a game world

            Settling a game world

            ->>>>>>> develop +Settling a game world

            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

            Sexual dimorphism

            -======= -Sexual dimorphism

            Sexual dimorphism

            ->>>>>>> develop +Sexual dimorphism

            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

            Simulated Genetics

            -======= -Simulated Genetics

            Simulated Genetics

            ->>>>>>> develop +Simulated Genetics

            Simulated Genetics

            If we’re going to have a world with a multi-generational population of hundreds of thousands of procedurally generated characters, and we’re to persuasively represent each character as being related to others, then we have to have a mechanism for making children look reasonably like their parents, to have family resemblances among cousins, and so on. We need to do this at reasonably low data storage and algorithmic cost, firstly because we have to store all these characters, and secondly because (especially when the player approaches an urban centre), we may need to instantiate models for a lot of them in limited time.

            This note discusses how this might be done.

            The pseudo-genome

            diff --git a/docs/codox/Simulation-layers.html b/docs/codox/Simulation-layers.html index 59dcb6c..4bd58ff 100644 --- a/docs/codox/Simulation-layers.html +++ b/docs/codox/Simulation-layers.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Simulation layers

            Simulation layers

            -======= -Simulation layers

            Simulation layers

            ->>>>>>> develop +Simulation layers

            Simulation layers

            In essence, the environment for The Great Game is broadly descended from games like the original Elite space trading game, and Sid Meier’s Pirates!, with some elements from political simulations like for example SimCity.

            That is to say there is

            An economy simulation

            diff --git a/docs/codox/The-spread-of-knowledge-in-a-large-game-world.html b/docs/codox/The-spread-of-knowledge-in-a-large-game-world.html index 9546e12..d6ae205 100644 --- a/docs/codox/The-spread-of-knowledge-in-a-large-game-world.html +++ b/docs/codox/The-spread-of-knowledge-in-a-large-game-world.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -The spread of knowledge in a large game world

            The spread of knowledge in a large game world

            -======= -The spread of knowledge in a large game world

            The spread of knowledge in a large game world

            ->>>>>>> develop +The spread of knowledge in a large game world

            The spread of knowledge in a large game world

            Saturday, 26 April 2008

            Note

            This version of this essay has been adapted to use the code in the-great-game.gossip.news-items, q.v.. The original version of the essay is still available on my blog.

            diff --git a/docs/codox/Things_Voice_Interaction_Enables.html b/docs/codox/Things_Voice_Interaction_Enables.html index 40dc4b2..298d8d0 100644 --- a/docs/codox/Things_Voice_Interaction_Enables.html +++ b/docs/codox/Things_Voice_Interaction_Enables.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Things Voice Interaction Enables

            Things Voice Interaction Enables

            -======= -Things Voice Interaction Enables

            Things Voice Interaction Enables

            ->>>>>>> develop +Things Voice Interaction Enables

            Things Voice Interaction Enables

            Organic quest routing

            In a world in which you can talk to non-player characters, and in which non-player characters know the directions to things which are local to their homes (and some, travellers, will be able to give you routes to things further away), when you need to get to your next waypoint you can just ask for directions. That much is easy.

            But something much richer occurred to me.

            diff --git a/docs/codox/Towards-a-procedural-animation-api.html b/docs/codox/Towards-a-procedural-animation-api.html index e37f6dd..46a5ed3 100644 --- a/docs/codox/Towards-a-procedural-animation-api.html +++ b/docs/codox/Towards-a-procedural-animation-api.html @@ -1,6 +1,6 @@ -Towards a procedural animation API

            Towards a procedural animation API

            +Towards a procedural animation API

            Towards a procedural animation API

            I’ve been watching this animation tutorial, and I’m impressed with its simplicity. This seems to be to be something it would be possible to do, and it started me thinking about what I wanted from a procedural animation API.

            The game is now open source, with the source available here. It’s available on Steam, here.

            diff --git a/docs/codox/Tree-library-evaluation.html b/docs/codox/Tree-library-evaluation.html index 04305d9..641fe01 100644 --- a/docs/codox/Tree-library-evaluation.html +++ b/docs/codox/Tree-library-evaluation.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Tree library evaluation

            Tree library evaluation

            -======= -Tree library evaluation

            Tree library evaluation

            ->>>>>>> develop +Tree library evaluation

            Tree library evaluation

            This is a comparative evaluation of open source tree libraries that I have found that I could make use of. It’s entirely personal and subjective!

            SimArboreal

            Overview

            diff --git a/docs/codox/Uncanny_dialogue.html b/docs/codox/Uncanny_dialogue.html index 346a237..fbf3c5b 100644 --- a/docs/codox/Uncanny_dialogue.html +++ b/docs/codox/Uncanny_dialogue.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -The Uncanny Valley, and dynamically generated dialogue

            The Uncanny Valley, and dynamically generated dialogue

            -======= -The Uncanny Valley, and dynamically generated dialogue

            The Uncanny Valley, and dynamically generated dialogue

            ->>>>>>> develop +The Uncanny Valley, and dynamically generated dialogue

            The Uncanny Valley, and dynamically generated dialogue

            If the player is allowed to just speak arbitrary dialogue, then the conversation animation of the player character cannot be designed. If non-player characters are able to engage dynamically generated dialogue, in response to events in the game which are not scripted, then their conversation animation for those dialogues cannot be designed. So conversation animation must almost always be dynamically generated, largely from an augmented text of the speech act. With non-player characters, emotional content of a speech act can be generated by exactly the same process which generates the text. Extracting emotional content information from the player character’s voice may be more challenging.

            It would be possible to avoid animating the player character’s face by using a first-person camera. However, I don’t personally find this makes for a very engaging game experience.

            These thoughts were prompted by a very interesting video and Twitter thread about the perceived failings in the character animation system of Mass Effect Andromeda.

            diff --git a/docs/codox/Useful-software-libraries.html b/docs/codox/Useful-software-libraries.html new file mode 100644 index 0000000..4d905e2 --- /dev/null +++ b/docs/codox/Useful-software-libraries.html @@ -0,0 +1,18 @@ + +Useful software tools and libraries (open source)

            Useful software tools and libraries (open source)

            +

            Animation

            +
              +
            • Papagayo – lipsync animator, not up to JALI standards, but not nothing! However, not apparently under active development, and in C++.
            • +
            +

            Procedural assets

            +

            Textures

            +
              +
            • Poly Haven – free textures, also HDRI lighting maps and some 3D models, although few look relevant.
            • +
            +

            Others

            + +
            \ No newline at end of file diff --git a/docs/codox/Voice-acting-considered-harmful.html b/docs/codox/Voice-acting-considered-harmful.html index 7cbeeda..be0bd05 100644 --- a/docs/codox/Voice-acting-considered-harmful.html +++ b/docs/codox/Voice-acting-considered-harmful.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Voice acting considered harmful

            Voice acting considered harmful

            -======= -Voice acting considered harmful

            Voice acting considered harmful

            ->>>>>>> develop +Voice acting considered harmful

            Voice acting considered harmful

            Wednesday, 25 February 2015

            The Witcher: Conversation with Kalkstein

            Long, long, time ago, I can still remember when… we played (and wrote) adventure games where the user typed at a command line, and the system printed back at them. A Read-Eval-Print loop in the classic Lisp sense, and I wrote my adventure games in Lisp. I used the same opportunistic parser whether the developer was building the game

            diff --git a/docs/codox/Worlds-and-flats.html b/docs/codox/Worlds-and-flats.html index c0be1c9..20848fa 100644 --- a/docs/codox/Worlds-and-flats.html +++ b/docs/codox/Worlds-and-flats.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Worlds and flats [obsolete]

            Worlds and flats obsolete

            -======= -Worlds and flats [obsolete]

            Worlds and flats obsolete

            ->>>>>>> develop +Worlds and flats [obsolete]

            Worlds and flats obsolete

            This essay is from 2008, and is now at least partly obsolete; but there’s useful stuff in it which is worth holding onto.

            Of Compartmented Worlds

            Playing The Witcher has got me thinking again about an algorithm for rendering a world which I first thought of twenty-five years ago. Then, it was a hack for dealing with the fact that the computers of the day didn’t have much memory or horsepower. Now, it’s a hack for dealing with the fact that — when considered against the complexity of a world — the computers of today still don’t have enough memory and horsepower. Mind you, today I’m contemplating photorealistic scenes, whereas then simple line and wash would have been good enough, but…

            diff --git a/docs/codox/cc.journeyman.the-great-game.agent.agent.html b/docs/codox/cc.journeyman.the-great-game.agent.agent.html index bfa365a..b674f95 100644 --- a/docs/codox/cc.journeyman.the-great-game.agent.agent.html +++ b/docs/codox/cc.journeyman.the-great-game.agent.agent.html @@ -1,6 +1,6 @@ -cc.journeyman.the-great-game.agent.agent documentation

            cc.journeyman.the-great-game.agent.agent

            Anything in the game world with agency; primarily but not exclusively characters.

            +cc.journeyman.the-great-game.agent.agent documentation

            cc.journeyman.the-great-game.agent.agent

            Anything in the game world with agency; primarily but not exclusively characters.

            ProtoAgent

            protocol

            An object which can act in the world

            members

            act

            (act actor world circle)

            Allow actor to do something in this world, in the context of this circle; return the new state of the actor if something was done, nil if nothing was done. Circle is expected to be one of

              @@ -21,4 +21,4 @@

            schedule

            (schedule actor)

            Return a map of scheduled actions for this actor. TODO: work out the detailed format!

            threatened?

            (threatened? actor world circle)

            True if this actor is threatened in this world.

            tired?

            (tired? actor world circle)

            True if this actor needs rest.

            -
            \ No newline at end of file +
            \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.agent.schedule.html b/docs/codox/cc.journeyman.the-great-game.agent.schedule.html index 9819c66..1bc5d65 100644 --- a/docs/codox/cc.journeyman.the-great-game.agent.schedule.html +++ b/docs/codox/cc.journeyman.the-great-game.agent.schedule.html @@ -1,5 +1,5 @@ -cc.journeyman.the-great-game.agent.schedule documentation

            cc.journeyman.the-great-game.agent.schedule

            Schedules of plans for actors in the game, in order that they may have daily and seasonal patterns of behaviour.

            +cc.journeyman.the-great-game.agent.schedule documentation

            cc.journeyman.the-great-game.agent.schedule

            Schedules of plans for actors in the game, in order that they may have daily and seasonal patterns of behaviour.

            plan-scheduled-action

            (plan-scheduled-action actor world circle)

            TODO: write docs

            -
            \ No newline at end of file +
            \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.buildings.module.html b/docs/codox/cc.journeyman.the-great-game.buildings.module.html index c443475..e25642f 100644 --- a/docs/codox/cc.journeyman.the-great-game.buildings.module.html +++ b/docs/codox/cc.journeyman.the-great-game.buildings.module.html @@ -1,6 +1,6 @@ -cc.journeyman.the-great-game.buildings.module documentation

            cc.journeyman.the-great-game.buildings.module

            A module of a building; essentially something like a portacabin, which can be assembled together with other modules to make a complete building.

            +cc.journeyman.the-great-game.buildings.module documentation

            cc.journeyman.the-great-game.buildings.module

            A module of a building; essentially something like a portacabin, which can be assembled together with other modules to make a complete building.

            Modules need to include

            1. Ground floor modules, having external doors;
            2. diff --git a/docs/codox/cc.journeyman.the-great-game.buildings.rectangular.html b/docs/codox/cc.journeyman.the-great-game.buildings.rectangular.html index 3abb75a..7cd1e2f 100644 --- a/docs/codox/cc.journeyman.the-great-game.buildings.rectangular.html +++ b/docs/codox/cc.journeyman.the-great-game.buildings.rectangular.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.buildings.rectangular documentation

              cc.journeyman.the-great-game.buildings.rectangular

              Build buildings with a generally rectangular floow plan.

              -======= -cc.journeyman.the-great-game.buildings.rectangular documentation

              cc.journeyman.the-great-game.buildings.rectangular

              Build buildings with a generally rectangular floow plan.

              ->>>>>>> develop +cc.journeyman.the-great-game.buildings.rectangular documentation

              cc.journeyman.the-great-game.buildings.rectangular

              Build buildings with a generally rectangular floow plan.

              Motivations

              Right, the idea behind this namespace is many fold.

                diff --git a/docs/codox/cc.journeyman.the-great-game.character.sex.html b/docs/codox/cc.journeyman.the-great-game.character.sex.html index 9694518..e3ea6f2 100644 --- a/docs/codox/cc.journeyman.the-great-game.character.sex.html +++ b/docs/codox/cc.journeyman.the-great-game.character.sex.html @@ -1,8 +1,4 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.character.sex documentation

                cc.journeyman.the-great-game.character.sex

                TODO: write docs

                -======= -cc.journeyman.the-great-game.character.sex documentation

                cc.journeyman.the-great-game.character.sex

                TODO: write docs

                ->>>>>>> develop +cc.journeyman.the-great-game.character.sex documentation

                cc.journeyman.the-great-game.character.sex

                TODO: write docs

                \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.gossip.gossip.html b/docs/codox/cc.journeyman.the-great-game.gossip.gossip.html index 5447efd..ad65219 100644 --- a/docs/codox/cc.journeyman.the-great-game.gossip.gossip.html +++ b/docs/codox/cc.journeyman.the-great-game.gossip.gossip.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.gossip.gossip documentation

                cc.journeyman.the-great-game.gossip.gossip

                Interchange of news events between gossip agents.

                -======= -cc.journeyman.the-great-game.gossip.gossip documentation

                cc.journeyman.the-great-game.gossip.gossip

                Interchange of news events between gossip agents.

                ->>>>>>> develop +cc.journeyman.the-great-game.gossip.gossip documentation

                cc.journeyman.the-great-game.gossip.gossip

                Interchange of news events between gossip agents.

                Note that habitual travellers are all gossip agents; specifically, at this stage, that means merchants. When merchants are moved we also need to update the location of the gossip with the same key.

                Innkeepers are also gossip agents but do not typically move.

                dialogue

                (dialogue enquirer respondent world)

                Dialogue between an enquirer and an agent in this world; returns a map identical to enquirer except that its :gossip collection may have additional entries.

                diff --git a/docs/codox/cc.journeyman.the-great-game.gossip.news-items.html b/docs/codox/cc.journeyman.the-great-game.gossip.news-items.html index 666ecd2..f27df0e 100644 --- a/docs/codox/cc.journeyman.the-great-game.gossip.news-items.html +++ b/docs/codox/cc.journeyman.the-great-game.gossip.news-items.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.gossip.news-items documentation

                cc.journeyman.the-great-game.gossip.news-items

                Using news items (propositions) to transfer knowledge between gossip agents.

                -======= -cc.journeyman.the-great-game.gossip.news-items documentation

                cc.journeyman.the-great-game.gossip.news-items

                Using news items (propositions) to transfer knowledge between gossip agents.

                ->>>>>>> develop +cc.journeyman.the-great-game.gossip.news-items documentation

                cc.journeyman.the-great-game.gossip.news-items

                Using news items (propositions) to transfer knowledge between gossip agents.

                Status

                What is here is essentially working. It’s not, however, working with the rich data objects which will be needed, and it’s not yet nearly efficient enough, but it allows knowledge to propagate through the world procedurally, at a rate limited by the speed of movement of the gossip agents.

                Discussion

                diff --git a/docs/codox/cc.journeyman.the-great-game.holdings.holding.html b/docs/codox/cc.journeyman.the-great-game.holdings.holding.html index eedd782..94209d4 100644 --- a/docs/codox/cc.journeyman.the-great-game.holdings.holding.html +++ b/docs/codox/cc.journeyman.the-great-game.holdings.holding.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.holdings.holding documentation

                cc.journeyman.the-great-game.holdings.holding

                TODO: write docs

                -======= -cc.journeyman.the-great-game.holdings.holding documentation

                cc.journeyman.the-great-game.holdings.holding

                TODO: write docs

                ->>>>>>> develop +cc.journeyman.the-great-game.holdings.holding documentation

                cc.journeyman.the-great-game.holdings.holding

                TODO: write docs

                ProtoHolding

                protocol

                members

                building-origin

                (building-origin holding)

                Returns an oriented location - normally the right hand end of the frontage, for an urban holding - from which buildings on the holding should be built.

                frontage

                (frontage holding)

                Returns a sequence of two locations representing the edge of the polygon which defines this holding which is considered to be the front.

                \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.launcher.html b/docs/codox/cc.journeyman.the-great-game.launcher.html index df15a62..56972d2 100644 --- a/docs/codox/cc.journeyman.the-great-game.launcher.html +++ b/docs/codox/cc.journeyman.the-great-game.launcher.html @@ -1,17 +1,8 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.launcher documentation

                cc.journeyman.the-great-game.launcher

                Launcher for the game

                +cc.journeyman.the-great-game.launcher documentation

                cc.journeyman.the-great-game.launcher

                Launcher for the game

                -main

                (-main & args)

                Launch the game.

                cli-options

                I haven’t yet thought out what command line arguments (if any) I need. This is a placeholder.

                game

                TODO: write docs

                init

                (init)

                Again, placeholder. This initialises a bit of standard jMonkeyEngine terrain, just to check I have things wired up correctly.

                -
                -======= -cc.journeyman.the-great-game.launcher documentation

                cc.journeyman.the-great-game.launcher

                Launcher for the game

                -

                -main

                (-main & args)

                Launch the game.

                -

                app

                TODO: write docs

                -

                cli-options

                TODO: write docs

                -

                init

                (init)

                TODO: write docs

                -
                ->>>>>>> develop +
                \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.location.location.html b/docs/codox/cc.journeyman.the-great-game.location.location.html index d77e5b7..93d9aed 100644 --- a/docs/codox/cc.journeyman.the-great-game.location.location.html +++ b/docs/codox/cc.journeyman.the-great-game.location.location.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.location.location documentation

                cc.journeyman.the-great-game.location.location

                TODO: write docs

                -======= -cc.journeyman.the-great-game.location.location documentation

                cc.journeyman.the-great-game.location.location

                TODO: write docs

                ->>>>>>> develop +cc.journeyman.the-great-game.location.location documentation

                cc.journeyman.the-great-game.location.location

                TODO: write docs

                ProtoLocation

                protocol

                members

                altitude

                (altitude location)

                Return the absolute altitude of this location, which may be different from the terrain height at this location, if, for example, the location is underground or on an upper floor.

                easting

                (easting location)

                Return the easting of this location

                northing

                (northing location)

                Return the northing of this location

                diff --git a/docs/codox/cc.journeyman.the-great-game.lore.digester.html b/docs/codox/cc.journeyman.the-great-game.lore.digester.html index 85c0c59..f2bb615 100644 --- a/docs/codox/cc.journeyman.the-great-game.lore.digester.html +++ b/docs/codox/cc.journeyman.the-great-game.lore.digester.html @@ -1,8 +1,4 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.lore.digester documentation

                cc.journeyman.the-great-game.lore.digester

                TODO: write docs

                -======= -cc.journeyman.the-great-game.lore.digester documentation

                cc.journeyman.the-great-game.lore.digester

                TODO: write docs

                ->>>>>>> develop +cc.journeyman.the-great-game.lore.digester documentation

                cc.journeyman.the-great-game.lore.digester

                TODO: write docs

                \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.merchants.markets.html b/docs/codox/cc.journeyman.the-great-game.merchants.markets.html index 04bc9e6..e4d85ee 100644 --- a/docs/codox/cc.journeyman.the-great-game.merchants.markets.html +++ b/docs/codox/cc.journeyman.the-great-game.merchants.markets.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.merchants.markets documentation

                cc.journeyman.the-great-game.merchants.markets

                Adjusting quantities and prices in markets.

                -======= -cc.journeyman.the-great-game.merchants.markets documentation

                cc.journeyman.the-great-game.merchants.markets

                Adjusting quantities and prices in markets.

                ->>>>>>> develop +cc.journeyman.the-great-game.merchants.markets documentation

                cc.journeyman.the-great-game.merchants.markets

                Adjusting quantities and prices in markets.

                adjust-quantity-and-price

                (adjust-quantity-and-price world city commodity)

                Adjust the quantity of this commodity currently in stock in this city of this world. Return a fragmentary world which can be deep-merged into this world.

                new-price

                (new-price old stock supply demand)

                If stock is greater than the maximum of supply and demand, then there is surplus and old price is too high, so shold be reduced. If lower, then it is too low and should be increased.

                run

                (run world)

                Return a world like this world, with quantities and prices in markets updated to reflect supply and demand.

                diff --git a/docs/codox/cc.journeyman.the-great-game.merchants.merchant-utils.html b/docs/codox/cc.journeyman.the-great-game.merchants.merchant-utils.html index 17f2d2c..9eff8d7 100644 --- a/docs/codox/cc.journeyman.the-great-game.merchants.merchant-utils.html +++ b/docs/codox/cc.journeyman.the-great-game.merchants.merchant-utils.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.merchants.merchant-utils documentation

                cc.journeyman.the-great-game.merchants.merchant-utils

                Useful functions for doing low-level things with merchants.

                -======= -cc.journeyman.the-great-game.merchants.merchant-utils documentation

                cc.journeyman.the-great-game.merchants.merchant-utils

                Useful functions for doing low-level things with merchants.

                ->>>>>>> develop +cc.journeyman.the-great-game.merchants.merchant-utils documentation

                cc.journeyman.the-great-game.merchants.merchant-utils

                Useful functions for doing low-level things with merchants.

                add-known-prices

                (add-known-prices merchant world)

                Add the current prices at this merchant’s location in the world to a new cache of known prices, and return it.

                add-stock

                (add-stock a b)

                Where a and b are both maps all of whose values are numbers, return a map whose keys are a union of the keys of a and b and whose values are the sums of their respective values.

                burden

                (burden merchant world)

                The total weight of the current cargo carried by this merchant in this world.

                diff --git a/docs/codox/cc.journeyman.the-great-game.merchants.merchants.html b/docs/codox/cc.journeyman.the-great-game.merchants.merchants.html index 2d46f86..2dbe8ad 100644 --- a/docs/codox/cc.journeyman.the-great-game.merchants.merchants.html +++ b/docs/codox/cc.journeyman.the-great-game.merchants.merchants.html @@ -1,5 +1,5 @@ -cc.journeyman.the-great-game.merchants.merchants documentation

                cc.journeyman.the-great-game.merchants.merchants

                Trade planning for merchants, primarily.

                +cc.journeyman.the-great-game.merchants.merchants documentation

                cc.journeyman.the-great-game.merchants.merchants

                Trade planning for merchants, primarily.

                run

                (run world)

                Return a partial world based on this world, but with each merchant moved.

                \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.merchants.planning.html b/docs/codox/cc.journeyman.the-great-game.merchants.planning.html index ca1520c..107babd 100644 --- a/docs/codox/cc.journeyman.the-great-game.merchants.planning.html +++ b/docs/codox/cc.journeyman.the-great-game.merchants.planning.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.merchants.planning documentation

                cc.journeyman.the-great-game.merchants.planning

                Trade planning for merchants, primarily. This follows a simple-minded generate-and-test strategy and currently generates plans for all possible routes from the current location. This may not scale. Also, routes do not currently have cost or risk associated with them.

                -======= -cc.journeyman.the-great-game.merchants.planning documentation

                cc.journeyman.the-great-game.merchants.planning

                Trade planning for merchants, primarily. This follows a simple-minded generate-and-test strategy and currently generates plans for all possible routes from the current location. This may not scale. Also, routes do not currently have cost or risk associated with them.

                ->>>>>>> develop +cc.journeyman.the-great-game.merchants.planning documentation

                cc.journeyman.the-great-game.merchants.planning

                Trade planning for merchants, primarily. This follows a simple-minded generate-and-test strategy and currently generates plans for all possible routes from the current location. This may not scale. Also, routes do not currently have cost or risk associated with them.

                augment-plan

                (augment-plan merchant world plan)

                Augment this plan constructed in this world for this merchant with the :quantity of goods which should be bought and the :expected-profit of the trade.

                Returns the augmented plan.

                generate-trade-plans

                (generate-trade-plans merchant world commodity)

                Generate all possible trade plans for this merchant and this commodity in this world.

                diff --git a/docs/codox/cc.journeyman.the-great-game.merchants.strategies.simple.html b/docs/codox/cc.journeyman.the-great-game.merchants.strategies.simple.html index 6d9f9a3..265f05f 100644 --- a/docs/codox/cc.journeyman.the-great-game.merchants.strategies.simple.html +++ b/docs/codox/cc.journeyman.the-great-game.merchants.strategies.simple.html @@ -1,9 +1,9 @@ -cc.journeyman.the-great-game.merchants.strategies.simple documentation

                cc.journeyman.the-great-game.merchants.strategies.simple

                Default trading strategy for merchants.

                +cc.journeyman.the-great-game.merchants.strategies.simple documentation

                cc.journeyman.the-great-game.merchants.strategies.simple

                Default trading strategy for merchants.

                The simple strategy buys a single product in the local market if there is one which can be traded profitably, trades it to the chosen target market, and sells it there. If there is no commodity locally which can be traded profitably, moves towards home with no cargo. If at home and no commodity can be traded profitably, does not move.

                move-merchant

                (move-merchant merchant world)

                Handle general en route movement of this merchant in this world; return a (partial or full) world like this world but in which the merchant may have been moved ot updated.

                -

                plan-and-buy

                (plan-and-buy merchant world)

                Return a world like this world, in which this merchant has planned a new trade, and bought appropriate stock for it. If no profitable trade can be planned, the merchant is simply moved towards their home.

                +

                plan-and-buy

                (plan-and-buy merchant world)

                Return a world like this world, in which this merchant has planned a new trade, and bought appropriate stock for it. If no profitable trade can be planned, the merchant is simply moved towards their home.

                re-plan

                (re-plan merchant world)

                Having failed to sell a cargo at current location, re-plan a route to sell the current cargo. Returns a revised world.

                sell-and-buy

                (sell-and-buy merchant world)

                Return a new world like this world, in which this merchant has sold their current stock in their current location, and planned a new trade, and bought appropriate stock for it.

                -
                \ No newline at end of file +
                \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.objects.character.html b/docs/codox/cc.journeyman.the-great-game.objects.character.html index 00cd4c8..a0f1f66 100644 --- a/docs/codox/cc.journeyman.the-great-game.objects.character.html +++ b/docs/codox/cc.journeyman.the-great-game.objects.character.html @@ -1,8 +1,4 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.objects.character documentation

                cc.journeyman.the-great-game.objects.character

                TODO: write docs

                -======= -cc.journeyman.the-great-game.objects.character documentation

                cc.journeyman.the-great-game.objects.character

                TODO: write docs

                ->>>>>>> develop +cc.journeyman.the-great-game.objects.character documentation

                cc.journeyman.the-great-game.objects.character

                TODO: write docs

                \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.objects.container.html b/docs/codox/cc.journeyman.the-great-game.objects.container.html index 68597e3..7194cd0 100644 --- a/docs/codox/cc.journeyman.the-great-game.objects.container.html +++ b/docs/codox/cc.journeyman.the-great-game.objects.container.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.objects.container documentation

                cc.journeyman.the-great-game.objects.container

                TODO: write docs

                -======= -cc.journeyman.the-great-game.objects.container documentation

                cc.journeyman.the-great-game.objects.container

                TODO: write docs

                ->>>>>>> develop +cc.journeyman.the-great-game.objects.container documentation

                cc.journeyman.the-great-game.objects.container

                TODO: write docs

                ProtoContainer

                protocol

                members

                contents

                (contents container)

                Return a sequence of the contents of this container, or nil if empty.

                is-empty?

                (is-empty? container)

                Return true if this container is empty, else false.

                \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.objects.game-object.html b/docs/codox/cc.journeyman.the-great-game.objects.game-object.html index 3cdbd0a..af3f8f8 100644 --- a/docs/codox/cc.journeyman.the-great-game.objects.game-object.html +++ b/docs/codox/cc.journeyman.the-great-game.objects.game-object.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.objects.game-object documentation

                cc.journeyman.the-great-game.objects.game-object

                Anything at all in the game world

                -======= -cc.journeyman.the-great-game.objects.game-object documentation

                cc.journeyman.the-great-game.objects.game-object

                Anything at all in the game world

                ->>>>>>> develop +cc.journeyman.the-great-game.objects.game-object documentation

                cc.journeyman.the-great-game.objects.game-object

                Anything at all in the game world

                ProtoObject

                protocol

                An object in the world

                members

                id

                (id object)

                Returns the unique id of this object.

                reify-object

                (reify-object object)

                Adds this object to the global object list. If the object has a non-nil value for its id method, keys it to that id - but if the id value is already in use, throws a hard exception. Returns the id to which the object is keyed in the global object list.

                diff --git a/docs/codox/cc.journeyman.the-great-game.playroom.html b/docs/codox/cc.journeyman.the-great-game.playroom.html index 4cc1ca4..3bf0e5e 100644 --- a/docs/codox/cc.journeyman.the-great-game.playroom.html +++ b/docs/codox/cc.journeyman.the-great-game.playroom.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.playroom documentation

                cc.journeyman.the-great-game.playroom

                TODO: write docs

                -======= -cc.journeyman.the-great-game.playroom documentation

                cc.journeyman.the-great-game.playroom

                TODO: write docs

                ->>>>>>> develop +cc.journeyman.the-great-game.playroom documentation

                cc.journeyman.the-great-game.playroom

                TODO: write docs

                app

                TODO: write docs

                init

                (init)

                TODO: write docs

                simple-update

                (simple-update tpf)

                TODO: write docs

                diff --git a/docs/codox/cc.journeyman.the-great-game.proving.core.html b/docs/codox/cc.journeyman.the-great-game.proving.core.html index debc49b..24316ef 100644 --- a/docs/codox/cc.journeyman.the-great-game.proving.core.html +++ b/docs/codox/cc.journeyman.the-great-game.proving.core.html @@ -1,22 +1,11 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.proving.core documentation

                cc.journeyman.the-great-game.proving.core

                Phase one of ‘Baking the World

                -======= -cc.journeyman.the-great-game.proving.core documentation

                cc.journeyman.the-great-game.proving.core

                Phase one of ‘Baking the World

                ->>>>>>> develop +cc.journeyman.the-great-game.proving.core documentation

                cc.journeyman.the-great-game.proving.core

                Phase one of ‘Baking the World

                *life-goals*

                dynamic

                TODO: This definitely doesn’t belong here, and will be moved.

                get-biome-map

                (get-biome-map height-map)(get-biome-map height-map _rainfall-map)

                Given this height-map (a monochrome raster) and optionally this rainfall-map (also a monochrome raster), return a biome map (a microworld style world tagged with vegetation, etc, data).

                get-drainage-map

                (get-drainage-map height-map)(get-drainage-map height-map _rainfall-map)

                Given this height-map (a monochrome raster) and optionally this rainfall-map (also a monochrome raster), return a drainage map (a microworld style world tagged with drainage data).

                get-road-map

                (get-road-map _populated-world)

                TODO: write docs

                -<<<<<<< HEAD

                populate-cell

                (populate-cell world cell)

                TODO: write docs

                populate-world

                (populate-world biome-map)

                Given this biome-map (as returned by get-biome-map), populate a world (probably some form of database) and return a structure which allows that database o be interrogated.

                prove

                (prove height-map rainfall-map)

                Given this height-map (a monochrome raster) and optionally this rainfall-map (also a monochrome raster), return a populated world.

                -
                -======= -

                populate-cell

                (populate-cell world cell)

                TODO: write docs

                -

                populate-world

                (populate-world biome-map)

                Given this biome-map (as returned by get-biome-map), populate a world (probably some form of database) and return a structure which allows that database o be interrogated.

                -

                prove

                (prove height-map rainfall-map)

                Given this height-map (a monochrome raster) and optionally this rainfall-map (also a monochrome raster), return a populated world.

                -
                ->>>>>>> develop +
                \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.proving.sketches.html b/docs/codox/cc.journeyman.the-great-game.proving.sketches.html index 3e1d807..e35a24d 100644 --- a/docs/codox/cc.journeyman.the-great-game.proving.sketches.html +++ b/docs/codox/cc.journeyman.the-great-game.proving.sketches.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.proving.sketches documentation

                cc.journeyman.the-great-game.proving.sketches

                Code that’s useful for exploring, but probably not part of the final product, and if it is, will end up somewhere else.

                -======= -cc.journeyman.the-great-game.proving.sketches documentation

                cc.journeyman.the-great-game.proving.sketches

                Code that’s useful for exploring, but probably not part of the final product, and if it is, will end up somewhere else.

                ->>>>>>> develop +cc.journeyman.the-great-game.proving.sketches documentation

                cc.journeyman.the-great-game.proving.sketches

                Code that’s useful for exploring, but probably not part of the final product, and if it is, will end up somewhere else.

                couple-cell?

                (couple-cell? c)

                TODO: write docs

                happy-cell?

                (happy-cell? c)

                True if all NPCs at c (assumed to be a MicroWorld-style cell) are of a happy disposition.

                \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.time.html b/docs/codox/cc.journeyman.the-great-game.time.html index 04e3721..8023ffa 100644 --- a/docs/codox/cc.journeyman.the-great-game.time.html +++ b/docs/codox/cc.journeyman.the-great-game.time.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.time documentation

                cc.journeyman.the-great-game.time

                TODO: write docs

                -======= -cc.journeyman.the-great-game.time documentation

                cc.journeyman.the-great-game.time

                TODO: write docs

                ->>>>>>> develop +cc.journeyman.the-great-game.time documentation

                cc.journeyman.the-great-game.time

                TODO: write docs

                canonical-ordering-of-houses

                The canonical ordering of religious houses.

                date-string

                (date-string game-time)

                Return a correctly formatted date for this game-time in the calendar of the Great Place.

                day

                (day game-time)

                Day of the eight-day week represented by this game-time.

                diff --git a/docs/codox/cc.journeyman.the-great-game.utils.html b/docs/codox/cc.journeyman.the-great-game.utils.html index b936f3f..8d8c46e 100644 --- a/docs/codox/cc.journeyman.the-great-game.utils.html +++ b/docs/codox/cc.journeyman.the-great-game.utils.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.utils documentation

                cc.journeyman.the-great-game.utils

                TODO: write docs

                -======= -cc.journeyman.the-great-game.utils documentation

                cc.journeyman.the-great-game.utils

                TODO: write docs

                ->>>>>>> develop +cc.journeyman.the-great-game.utils documentation

                cc.journeyman.the-great-game.utils

                TODO: write docs

                cyclic?

                (cyclic? route)

                True if two or more elements of route are identical

                deep-merge

                (deep-merge & maps)

                inc-or-one

                (inc-or-one val)

                If this val is a number, return that number incremented by one; otherwise, return 1. TODO: should probably be in utils.

                diff --git a/docs/codox/cc.journeyman.the-great-game.world.heightmap.html b/docs/codox/cc.journeyman.the-great-game.world.heightmap.html index 5c06121..f307775 100644 --- a/docs/codox/cc.journeyman.the-great-game.world.heightmap.html +++ b/docs/codox/cc.journeyman.the-great-game.world.heightmap.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.world.heightmap documentation

                cc.journeyman.the-great-game.world.heightmap

                Functions dealing with the tessellated multi-layer heightmap.

                -======= -cc.journeyman.the-great-game.world.heightmap documentation

                cc.journeyman.the-great-game.world.heightmap

                Functions dealing with the tessellated multi-layer heightmap.

                ->>>>>>> develop +cc.journeyman.the-great-game.world.heightmap documentation

                cc.journeyman.the-great-game.world.heightmap

                Functions dealing with the tessellated multi-layer heightmap.

                *base-map*

                dynamic

                TODO: write docs

                *noise-map*

                dynamic

                TODO: write docs

                excerpt-grid

                (excerpt-grid grid x-offset y-offset width height)

                Return that section of this grid where the :x co-ordinate of each cell is greater than or equal to this x-offset, the :y co-ordinate is greater than or equal to this y-offset, whose width is not greater than this width, and whose height is not greater than this height.

                diff --git a/docs/codox/cc.journeyman.the-great-game.world.location.html b/docs/codox/cc.journeyman.the-great-game.world.location.html index 8c67f78..753325b 100644 --- a/docs/codox/cc.journeyman.the-great-game.world.location.html +++ b/docs/codox/cc.journeyman.the-great-game.world.location.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.world.location documentation

                cc.journeyman.the-great-game.world.location

                Functions dealing with location in the world.

                -======= -cc.journeyman.the-great-game.world.location documentation

                cc.journeyman.the-great-game.world.location

                Functions dealing with location in the world.

                ->>>>>>> develop +cc.journeyman.the-great-game.world.location documentation

                cc.journeyman.the-great-game.world.location

                Functions dealing with location in the world.

                distance-between

                (distance-between location-1 location-2)

                TODO: write docs

                get-coords

                (get-coords location)

                Return the coordinates in the game world of location, which may be 1. A coordinate pair in the format {:x 5 :y 32}; 2. A location, as discussed above; 3. Any other gameworld object, having a :location property whose value is one of the above.

                \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.world.mw.html b/docs/codox/cc.journeyman.the-great-game.world.mw.html index f37ec10..158b78f 100644 --- a/docs/codox/cc.journeyman.the-great-game.world.mw.html +++ b/docs/codox/cc.journeyman.the-great-game.world.mw.html @@ -1,8 +1,4 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.world.mw documentation

                cc.journeyman.the-great-game.world.mw

                Functions dealing with building a great game world from a MicroWorld world.

                -======= -cc.journeyman.the-great-game.world.mw documentation

                cc.journeyman.the-great-game.world.mw

                Functions dealing with building a great game world from a MicroWorld world.

                ->>>>>>> develop +cc.journeyman.the-great-game.world.mw documentation

                cc.journeyman.the-great-game.world.mw

                Functions dealing with building a great game world from a MicroWorld world.

                \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.world.routes.html b/docs/codox/cc.journeyman.the-great-game.world.routes.html index 589a3e9..2f28b98 100644 --- a/docs/codox/cc.journeyman.the-great-game.world.routes.html +++ b/docs/codox/cc.journeyman.the-great-game.world.routes.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.world.routes documentation

                cc.journeyman.the-great-game.world.routes

                Conceptual (plan level) routes, represented as tuples of location ids.

                -======= -cc.journeyman.the-great-game.world.routes documentation

                cc.journeyman.the-great-game.world.routes

                Conceptual (plan level) routes, represented as tuples of location ids.

                ->>>>>>> develop +cc.journeyman.the-great-game.world.routes documentation

                cc.journeyman.the-great-game.world.routes

                Conceptual (plan level) routes, represented as tuples of location ids.

                find-route

                (find-route world-or-routes from to)

                Find a single route from from to to in this world-or-routes, which may be either a world as defined in the-great-game.world.world or else a sequence of tuples of keywords.

                find-routes

                (find-routes routes from)(find-routes routes from to)(find-routes routes from to steps)

                Find routes from among these routes from from; if to is supplied, to to, by breadth-first search.

                \ No newline at end of file diff --git a/docs/codox/cc.journeyman.the-great-game.world.world.html b/docs/codox/cc.journeyman.the-great-game.world.world.html index 884ee0b..70e2eae 100644 --- a/docs/codox/cc.journeyman.the-great-game.world.world.html +++ b/docs/codox/cc.journeyman.the-great-game.world.world.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -cc.journeyman.the-great-game.world.world documentation

                cc.journeyman.the-great-game.world.world

                Access to data about the world

                -======= -cc.journeyman.the-great-game.world.world documentation

                cc.journeyman.the-great-game.world.world

                Access to data about the world

                ->>>>>>> develop +cc.journeyman.the-great-game.world.world documentation

                cc.journeyman.the-great-game.world.world

                Access to data about the world

                actual-price

                (actual-price world commodity city)

                Find the actual current price of this commodity in this city given this world. NOTE that merchants can only know the actual prices in the city in which they are currently located.

                default-world

                A basic world for testing concepts

                run

                (run world)(run world date)

                Return a world like this world with only the :date to this date (or id date not supplied, the current value incremented by one). For running other aspects of the simulation, see the-great-game.world.run.

                diff --git a/docs/codox/index.html b/docs/codox/index.html index 5372e6f..a3d30a7 100644 --- a/docs/codox/index.html +++ b/docs/codox/index.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -The-great-game 0.1.3

                The-great-game 0.1.3

                Released under the GNU General Public License,version 2.0 or (at your option) any later version

                Prototype code towards the great game I've been writing about for ten years, and know I will never finish.

                Installation

                To install, add the following dependency to your project or build file:

                [journeyman-cc/the-great-game "0.1.3"]

                Topics

                Namespaces

                cc.journeyman.the-great-game.agent.agent

                Anything in the game world with agency; primarily but not exclusively characters.

                -======= -The-great-game 0.1.3-SNAPSHOT

                The-great-game 0.1.3-SNAPSHOT

                Released under the GNU General Public License,version 2.0 or (at your option) any later version

                Prototype code towards the great game I've been writing about for ten years, and know I will never finish.

                Installation

                To install, add the following dependency to your project or build file:

                [journeyman-cc/the-great-game "0.1.3-SNAPSHOT"]

                Topics

                Namespaces

                cc.journeyman.the-great-game.agent.agent

                Anything in the game world with agency; primarily but not exclusively characters.

                ->>>>>>> develop +The-great-game 0.1.3

                The-great-game 0.1.3

                Released under the GNU General Public License,version 2.0 or (at your option) any later version

                Prototype code towards the great game I've been writing about for ten years, and know I will never finish.

                Installation

                To install, add the following dependency to your project or build file:

                [journeyman-cc/the-great-game "0.1.3"]

                Topics

                Namespaces

                cc.journeyman.the-great-game.agent.agent

                Anything in the game world with agency; primarily but not exclusively characters.

                Public variables and functions:

                cc.journeyman.the-great-game.agent.schedule

                Schedules of plans for actors in the game, in order that they may have daily and seasonal patterns of behaviour.

                Public variables and functions:

                cc.journeyman.the-great-game.buildings.module

                A module of a building; essentially something like a portacabin, which can be assembled together with other modules to make a complete building.

                Public variables and functions:

                  cc.journeyman.the-great-game.buildings.rectangular

                  Build buildings with a generally rectangular floow plan.

                  @@ -13,16 +9,14 @@

                  Public variables and functions:

                  cc.journeyman.the-great-game.holdings.holding

                  TODO: write docs

                  Public variables and functions:

                  cc.journeyman.the-great-game.launcher

                  Launcher for the game

                  -<<<<<<< HEAD

                  Public variables and functions:

                  cc.journeyman.the-great-game.location.location

                  TODO: write docs

                  -======= -

                  Public variables and functions:

                  cc.journeyman.the-great-game.location.location

                  TODO: write docs

                  ->>>>>>> develop

                  Public variables and functions:

                  cc.journeyman.the-great-game.lore.digester

                  TODO: write docs

                  Public variables and functions:

                    cc.journeyman.the-great-game.merchants.markets

                    Adjusting quantities and prices in markets.

                    Public variables and functions:

                    cc.journeyman.the-great-game.merchants.merchant-utils

                    Useful functions for doing low-level things with merchants.

                    -

                    cc.journeyman.the-great-game.merchants.planning

                    Trade planning for merchants, primarily. This follows a simple-minded generate-and-test strategy and currently generates plans for all possible routes from the current location. This may not scale. Also, routes do not currently have cost or risk associated with them.

                    -

                    cc.journeyman.the-great-game.merchants.merchants

                    Trade planning for merchants, primarily.

                    +

                    Public variables and functions:

                    cc.journeyman.the-great-game.merchants.planning

                    Trade planning for merchants, primarily. This follows a simple-minded generate-and-test strategy and currently generates plans for all possible routes from the current location. This may not scale. Also, routes do not currently have cost or risk associated with them.

                    +

                    cc.journeyman.the-great-game.merchants.strategies.simple

                    Default trading strategy for merchants.

                    +

                    Public variables and functions:

                    cc.journeyman.the-great-game.objects.character

                    TODO: write docs

                    Public variables and functions:

                      cc.journeyman.the-great-game.objects.container

                      TODO: write docs

                      Public variables and functions:

                      cc.journeyman.the-great-game.objects.game-object

                      Anything at all in the game world

                      Public variables and functions:

                      cc.journeyman.the-great-game.playroom

                      TODO: write docs

                      diff --git a/docs/codox/intro.html b/docs/codox/intro.html index 4207620..a0a893d 100644 --- a/docs/codox/intro.html +++ b/docs/codox/intro.html @@ -1,10 +1,6 @@ -<<<<<<< HEAD -Introduction to the-great-game

                      Introduction to the-great-game

                      -======= -Introduction to the-great-game

                      Introduction to the-great-game

                      ->>>>>>> develop +Introduction to the-great-game

                      Introduction to the-great-game

                      The Great Game

                      In this essay I’m going to try to pull together a number of my architectural ideas about the Great Game which I know I’m never actually going to build - because it’s vastly too big for any one person to build - into one overall vision.

                      So, firstly, how does one characterise this game?

                      diff --git a/project.clj b/project.clj index 342403a..362f89a 100644 --- a/project.clj +++ b/project.clj @@ -11,21 +11,14 @@ :output-path "docs/codox" :source-uri "https://github.com/simon-brooke/the-great-game/blob/master/{filepath}#L{line}"} :cucumber-feature-paths ["test/features/"] - :dependencies [ - ;; sadly it seems SQL Korma is dead. I'm experimenting with Honey SQL, + :dependencies [;; sadly it seems SQL Korma is dead. I'm experimenting with Honey SQL, ;; but this is not a final decision yet. - [com.github.seancorfield/honeysql "2.6.1126"] + [com.github.seancorfield/honeysql "2.6.1126"] [com.github.seancorfield/next.jdbc "1.3.925"] -<<<<<<< HEAD - [com.simsilica/lemur "1.16.1-SNAPSHOT"] - [com.simsilica/sim-arboreal "1.0.1-SNAPSHOT"] - ;; [com.taoensso/timbre "6.5.0"] - [com.taoensso/telemere "1.0.0-beta3"] ;; Peter Taoussanis' new replacement for Timbre -======= [com.simsilica/lemur "1.16.0"] - ;; [com.simsilica/sim-arboreal "1.0.1-SNAPSHOT"] - [com.taoensso/timbre "6.5.0"] ->>>>>>> develop + [com.simsilica/sim-arboreal "1.0.1-SNAPSHOT"] + ;; [com.taoensso/timbre "6.5.0"] + [com.taoensso/telemere "1.0.0-beta3"] ;; Peter Taoussanis' new replacement for Timbre [environ "1.2.0"] [hiccup "2.0.0-RC3"] [jme-clj "0.1.13"] diff --git a/src/clj/cc/journeyman/the_great_game/character/character.clj b/src/clj/cc/journeyman/the_great_game/character/character.clj index d571739..42bb93a 100644 --- a/src/clj/cc/journeyman/the_great_game/character/character.clj +++ b/src/clj/cc/journeyman/the_great_game/character/character.clj @@ -5,7 +5,7 @@ to mean a special character who is part of the news-passing network." (:require [cc.journeyman.the-great-game.gossip.gossip :refer [dialogue]] [cc.journeyman.the-great-game.agent.agent :refer [ProtoAgent]] - [cc.journeyman.the-great-game.character.container :refer [ProtoContainer]] + [cc.journeyman.the-great-game.objects.container :refer [ProtoContainer]] [clojure.string :as cs :only [join]]) (:import [clojure.lang IPersistentMap])) diff --git a/src/clj/cc/journeyman/the_great_game/merchants/strategies/simple.clj b/src/clj/cc/journeyman/the_great_game/merchants/strategies/simple.clj index 1a6ddb7..0fbe75c 100644 --- a/src/clj/cc/journeyman/the_great_game/merchants/strategies/simple.clj +++ b/src/clj/cc/journeyman/the_great_game/merchants/strategies/simple.clj @@ -6,7 +6,7 @@ and sells it there. If there is no commodity locally which can be traded profitably, moves towards home with no cargo. If at home and no commodity can be traded profitably, does not move." - (:require [taoensso.telemere.timbre :as l :refer [info error spy]] + (:require [taoensso.telemere.timbre :as l :refer [info error]] [cc.journeyman.the-great-game.utils :refer [deep-merge]] [cc.journeyman.the-great-game.gossip.gossip :refer [move-gossip]] [cc.journeyman.the-great-game.merchants.planning :refer [augment-plan plan-trade select-cargo]]