From ed5a08a43acb01fd51df1e8ed7a37a28f0885e73 Mon Sep 17 00:00:00 2001 From: Simon Brooke <simon@journeyman.cc> Date: Thu, 6 Jun 2019 11:05:35 +0100 Subject: [PATCH 01/12] Added maps from Game of Stones world, very draft This is just the very beginnings of working things out... --- resources/maps/heightmap.inverted.png | Bin 0 -> 255301 bytes resources/maps/heightmap.inverted.xcf | Bin 0 -> 1406322 bytes resources/maps/heightmap.png | Bin 0 -> 357323 bytes resources/maps/planning-map.svg | 325 ++++++++++++++++++++++++++ 4 files changed, 325 insertions(+) create mode 100644 resources/maps/heightmap.inverted.png create mode 100644 resources/maps/heightmap.inverted.xcf create mode 100644 resources/maps/heightmap.png create mode 100644 resources/maps/planning-map.svg diff --git a/resources/maps/heightmap.inverted.png b/resources/maps/heightmap.inverted.png new file mode 100644 index 0000000000000000000000000000000000000000..9dd3afd736e841123553d437e06480470703e16c GIT binary patch literal 255301 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	vSjq13@wGO8=yH718c%+|80Hetw&MEsq5j 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�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 S)o`15kJ@()G^*8X!v8-v1s|sX literal 0 HcmV?d00001 diff --git a/resources/maps/heightmap.inverted.xcf b/resources/maps/heightmap.inverted.xcf new file mode 100644 index 0000000000000000000000000000000000000000..4a88ae26f11f19901f37eecbd9cf9bc2c49237f1 GIT binary patch literal 1406322 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
$2{_*g@Rfod>z(feobLpj?*yFh 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%0AiqH%w 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%0DC3x?+u?n?f86^0 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	URcFcaLtE3Fyq$yivpYe>7-_Iv!1% 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 literal 0 HcmV?d00001 diff --git a/resources/maps/heightmap.png b/resources/maps/heightmap.png new file mode 100644 index 0000000000000000000000000000000000000000..c7d80d85e7022077436140c12cdc157fbac30cf6 GIT binary patch literal 357323 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�#VVT52SAz_&a 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%0D_`L*v>jF#8?vG&pS`c31_paxIR?xPU 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 J3OTEf{|^%rh@Jod literal 0 HcmV?d00001 diff --git a/resources/maps/planning-map.svg b/resources/maps/planning-map.svg new file mode 100644 index 0000000..6a6b691 --- /dev/null +++ b/resources/maps/planning-map.svg @@ -0,0 +1,325 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="1189mm" + height="841mm" + viewBox="0 0 1189 841" + version="1.1" + id="svg8" + inkscape:version="0.92.3 (2405546, 2018-03-11)" + sodipodi:docname="planning-map.svg"> + <defs + id="defs2" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.49497475" + inkscape:cx="1453.7159" + inkscape:cy="582.07921" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1920" + inkscape:window-height="1016" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="1" /> + <metadata + id="metadata5"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,544)"> + <image + sodipodi:absref="/home/simon/workspace/the-great-game/resources/maps/heightmap.inverted.png" + xlink:href="heightmap.inverted.png" + style="fill:#550000" + width="1164.0658" + height="1164.0658" + preserveAspectRatio="none" + id="image985" + x="142.94299" + y="-531.93903" /> + <ellipse + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path988" + cx="473.33432" + cy="72.760857" + rx="1.3363476" + ry="1.0690781" /> + <ellipse + ry="1.0690781" + rx="1.3363476" + cy="161.49434" + cx="441.79651" + id="ellipse999" + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <ellipse + ry="1.0690781" + rx="1.3363476" + cy="118.9985" + cx="486.16327" + id="ellipse999-4" + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <ellipse + ry="1.0690781" + rx="1.3363476" + cy="158.28711" + cx="537.74628" + id="ellipse999-8" + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <ellipse + ry="1.0690781" + rx="1.3363476" + cy="129.08792" + cx="528.25818" + id="ellipse999-3" + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <ellipse + ry="1.0690781" + rx="1.3363476" + cy="63.406433" + cx="812.23212" + id="ellipse999-1" + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <ellipse + ry="1.0690781" + rx="1.3363476" + cy="9.6852579" + cx="794.05774" + id="ellipse999-2" + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <ellipse + ry="1.0690781" + rx="1.3363476" + cy="165.77066" + cx="667.10474" + id="ellipse999-28" + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="477.34338" + y="73.829979" + id="text1048"><tspan + sodipodi:role="line" + id="tspan1046" + x="477.34338" + y="73.829979" + style="stroke-width:0.26458332px">Hans'hua</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="445.271" + y="160.42528" + id="text1052"><tspan + sodipodi:role="line" + id="tspan1050" + x="445.271" + y="160.42528" + style="stroke-width:0.26458332px">Tchahua</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="486.43051" + y="124.07665" + id="text1056"><tspan + sodipodi:role="line" + id="tspan1054" + x="486.43051" + y="124.07665" + style="stroke-width:0.26458332px">Sinhua</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="541.48804" + y="158.5544" + id="text1060"><tspan + sodipodi:role="line" + id="tspan1058" + x="541.48804" + y="158.5544" + style="stroke-width:0.26458332px">Huandun</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="530.53003" + y="131.29291" + id="text1064"><tspan + sodipodi:role="line" + id="tspan1062" + x="530.53003" + y="131.29291" + style="stroke-width:0.26458332px">Koantuan</tspan></text> + <ellipse + ry="1.0690781" + rx="1.3363476" + cy="8.0816402" + cx="302.5491" + id="ellipse999-6" + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="306.02362" + y="8.6161976" + id="text1083"><tspan + sodipodi:role="line" + id="tspan1081" + x="306.02362" + y="8.6161976" + style="stroke-width:0.26458332px">Silverhold</tspan></text> + <ellipse + ry="1.0690781" + rx="1.3363476" + cy="48.973877" + cx="288.65109" + id="ellipse999-12" + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#550000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="291.32379" + y="50.577526" + id="text1093"><tspan + sodipodi:role="line" + id="tspan1091" + x="291.32379" + y="50.577526" + style="stroke-width:0.26458332px">Longwater</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="797.79956" + y="9.9525499" + id="text1097"><tspan + sodipodi:role="line" + id="tspan1095" + x="797.79956" + y="9.9525499" + style="stroke-width:0.26458332px">Horsewatermeet</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="773.47803" + y="58.595604" + id="text1101"><tspan + sodipodi:role="line" + id="tspan1099" + x="773.47803" + y="58.595604" + style="stroke-width:0.26458332px">The City at Her Gates</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="670.31201" + y="166.83974" + id="text1105"><tspan + sodipodi:role="line" + x="670.31201" + y="166.83974" + style="stroke-width:0.26458332px" + id="tspan1177">Quanjun</tspan></text> + <ellipse + ry="1.0690781" + rx="1.3363476" + cy="65.811859" + cx="636.36877" + id="ellipse999-28-3" + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <ellipse + ry="1.0690781" + rx="1.3363476" + cy="132.36197" + cx="466.38531" + id="ellipse999-28-9" + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="469.8598" + y="134.76741" + id="text1130"><tspan + sodipodi:role="line" + id="tspan1128" + x="469.8598" + y="134.76741" + style="stroke-width:0.26458332px">Black Ford</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="607.23639" + y="70.889977" + id="text1134"><tspan + sodipodi:role="line" + id="tspan1132" + x="607.23639" + y="70.889977" + style="stroke-width:0.26458332px">Dragon Festival Site</tspan></text> + <ellipse + ry="1.0690781" + rx="1.3363476" + cy="106.16956" + cx="462.10904" + id="ellipse999-28-95" + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="465.58353" + y="107.50593" + id="text1163"><tspan + sodipodi:role="line" + id="tspan1161" + x="465.58353" + y="107.50593" + style="stroke-width:0.26458332px">South </tspan><tspan + sodipodi:role="line" + x="465.58353" + y="112.46687" + style="stroke-width:0.26458332px" + id="tspan1165">Inn</tspan></text> + <ellipse + ry="1.0690781" + rx="1.3363476" + cy="38.817635" + cx="469.05801" + id="ellipse999-28-2" + style="opacity:1;fill:#550000;fill-opacity:1;stroke:#000000;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.96875px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + x="472.53253" + y="40.955826" + id="text1175"><tspan + sodipodi:role="line" + id="tspan1173" + x="472.53253" + y="40.955826" + style="stroke-width:0.26458332px">North Inn</tspan></text> + </g> +</svg> From 2849a01db64d552b4e278e21914a3d78ee27e635 Mon Sep 17 00:00:00 2001 From: Simon Brooke <simon-brooke@users.noreply.github.com> Date: Sun, 30 Jun 2019 11:23:04 +0100 Subject: [PATCH 02/12] Notes made to just catch some ideas --- doc/sandbox.md | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 doc/sandbox.md diff --git a/doc/sandbox.md b/doc/sandbox.md new file mode 100644 index 0000000..736f0ec --- /dev/null +++ b/doc/sandbox.md @@ -0,0 +1,66 @@ +# 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 + +* Where is the nearest craftsman of this craft? +* What price can I expect to get for this item in the local market? +* What news have you heard recently? +* Where does this person from your village live? + +and where there's a sufficiently sophisticated and robust economy simulation that buying goods in one market and selling them in another is viable. + +The original BBC Micro space trading game Elite had very little more in terms of game mechanics than a sandbox with a means to navigate it and an economy simulation, which wasn't even nearly as sophisticated as the one I have working now. Yet that combination resulted in engaging game play. + +## Main sandbox roles + +The idea of a sandbox is that the player character should be able to do pretty much anything they like within the mechanics of the game. From that, it seems to me reasonable that the player ought to be able to do more or less everything a non-player character can do. But creating the game mechanics to make each additional task doable takes time and investment, so there's a need to prioritise. + +So, as Elite did, I propose to make the first available sandbox roles + +### Merchant + +Someone who travels from city to city, buying goods cheap in one and selling them for more in another; and + +### Outlaw + +Someone who intercepts and steals from merchants (and may also attack outlying farms and villages) + +## Second tier playable roles + +The next tier of playable roles rotates around issues arising from the mercantile ecosystem. + +### Aristocracy + +Aristocrats are basically settled outlaws who seek to establish a monopoly on extracting taxes from inhabitants and travellers in a particular region by driving out all other outlaws. Within the comain of an aristocrat, you have to pay tax but you're reasonably safe from being attacked by other outlaws and losing everything. Aristocrats may also maintain and improve roads and bridges and do other things to boost the economy of their territory, may expant into adjoining territory with no current aristocratic control, and may wage war on other aristocrats. + +An outlaw ought to be able to become an aristocrat, by dominating an ungoverned area or by defeating an existing aristocrat. + +### Soldiery + +Soldiers, like aristocrats, are basically on the same spectrum as outlaws. Outlaws may hire themselves out to merchants as caravan guards, or to aristocrats as soldiers. Soldiers or guards, falling on bad times, may revert to outlawry. + +## Routine, Discretion and Playability + +There's a term that's used in criticism of many computer games which is worth thinking about hard here: that term is 'farming'. 'Farming', in this sense, is doing something repetitive and dull to earn credits in a game. Generally this is not fun. What makes roles in a game-world fun is having individual discretion - the ability to choose between actions and strategies - and a lack of routine. + +Most craft skills - especially in the learning phase - are not like this, and crafts which are sophisticated enough to be actually engaging are very hard to model in a game. Learning a craft is essentially, inherently, repetitive and dull, and if you take that repetition out of it you probably don't have enough left to yield the feeling of mastery which would reward success; so it doesn't seem to me that making craft roles playable should be a priority. + +## Cruise control + +One of the most enjoyable aspects of The Witcher 3 - still my go-to game for ideas I want to improve on - is simply travelling through the world. Although fast travel is possible I find I rarely use it, and a journey which takes fifteen minutes of real world wall clock time can be enjoyable in and of itself. This is, of course, a credit to the beautiful way the world is realised. + +But nevertheless, in The Witcher 3, a decision was made to pack incident fairly densely - because players would find just travelling boring. This leads to a situation where peaceful villages exist two minutes travel from dangerous monsters or bandit camps, and the suspension of disbelief gets a little strained. Building a world big enough that a market simulation is believable means that for the individual, the travel time to a market where a particular desired good is likely to be cheaper becomes costly in itself. Otherwise, there's no arbitrage between markets and no ecological niche for a merchant to fill. The journey time from market to market has to be several in-game days. + +An in-game day doesn't have to be as long as a wall clock day, and, indeed, typically isn't. But nevertheless, doing several game days of incident-free travel, even in beautiful scenery, is not going to be engaging - which implies a fast-travel mechanic. + +I don't like fast travel, I find it a too-obvious breaking of immersion. Also, of course, one of the interesting things about a game in a merchant/outlaw ecosystem is the risk of interception on a journey. The Dragon Age series handled interrupted travel in 'fast travel' by randomly interacting the loading screen you get when moving from location to location in Dragon Age's patchwork worlds by dumping you into a tiny arena with enemies. That's really, really bad - there's no other way to say this. Everything about it shouts artifice. + +So I'm thinking of a different mechanism: one I'm calling cruise control. + +You set out on a task which will take a long time - such as a journey, but also such as any routine task. You're shown either a 'fast forward' of your character carrying out this task, or a series of cinematic 'shots along the way'. This depends, of course, on their being continuous renderable landscape between your departure and your destination, but there will be. This fast-forward proceeds at a substantially higher time gearing than normal game time - ten times as fast perhaps; we need it to, because as well as doing backgound scenery loading to move from one location to another, we're also simulating lots of non-player agents actions in parts of the world where the player currently isn't. So a 'jump cut' from one location to another isn't going to work anyway. + +The player can interrupt 'fast forward' at any time. But also, the game itself may bring you out of fast forward when it anticipates that there may be action which requires decision - for example, when there are outlaws in the vicinity. And it will do this **before** the player's party is under immediate attack - the player will have time to take stock of the situation and prepare appropriately. Finally, this will take place in the full open world; the player will have the option to choose *not* to enter the narrow defile, for example, to ask local people (if there are any) for any news of outlaw activity, or, if they are available, to send forward scouts. From 691b6b2959d0ee5ca02c495fdb0f7d03947f6da1 Mon Sep 17 00:00:00 2001 From: Simon Brooke <simon@journeyman.cc> Date: Sun, 12 Apr 2020 16:19:11 +0100 Subject: [PATCH 03/12] Starting to get `The spread of knowledge in a large game world` working --- project.clj | 1 + src/the_great_game/gossip/gossip.clj | 4 +- src/the_great_game/gossip/news_items.clj | 251 +++++++++++++++++++++++ src/the_great_game/world/location.clj | 10 + 4 files changed, 264 insertions(+), 2 deletions(-) create mode 100644 src/the_great_game/gossip/news_items.clj create mode 100644 src/the_great_game/world/location.clj diff --git a/project.clj b/project.clj index ff35841..f7dd23b 100644 --- a/project.clj +++ b/project.clj @@ -5,6 +5,7 @@ :output-path "docs/codox" :source-uri "https://github.com/simon-brooke/the-great-game/blob/master/{filepath}#L{line}"} :dependencies [[org.clojure/clojure "1.8.0"] + [org.clojure/math.numeric-tower "0.0.4"] [environ "1.1.0"] [com.taoensso/timbre "4.10.0"]] :description "Prototype code towards the great game I've been writing about for ten years, and know I will never finish." diff --git a/src/the_great_game/gossip/gossip.clj b/src/the_great_game/gossip/gossip.clj index efe442f..13aa961 100644 --- a/src/the_great_game/gossip/gossip.clj +++ b/src/the_great_game/gossip/gossip.clj @@ -1,5 +1,5 @@ (ns the-great-game.gossip.gossip - "Interchange of news events between agents agents" + "Interchange of news events between gossip agents" (:require [the-great-game.utils :refer [deep-merge]])) ;; Note that habitual travellers are all gossip agents; specifically, at this @@ -43,7 +43,7 @@ (defn move-gossip "Return a world like this `world` but with this `gossip` moved to this `new-location`. Many gossips are essentially shadow-records of agents of - other types, and the movement if the gossip should be controlled by the + other types, and the movement of the gossip should be controlled by the run function of the type of the record they shadow. The [[#run]] function below does NOT call this function." [gossip world new-location] diff --git a/src/the_great_game/gossip/news_items.clj b/src/the_great_game/gossip/news_items.clj new file mode 100644 index 0000000..bcb0398 --- /dev/null +++ b/src/the_great_game/gossip/news_items.clj @@ -0,0 +1,251 @@ +(ns the-great-game.gossip.news-items + "Categories of news events interesting to gossip agents" + (:require [clojure.math.numeric-tower :refer [expt sqrt]])) + +;; The ideas here are based on the essay 'The spread of knowledge in a large +;; game world', q.v.; they've advanced a little beyond that and will doubtless +;; advance further in the course of writing and debugging this namespace. + +;; A news item is a map with the keys: +;; +;; * `date` - the date on which the reported event happened; +;; * `nth-hand` - the number of agents the news item has passed through; +;; * `verb` - what it is that happened (key into `news-topics`); +;; +;; plus other keys taken from the `keys` value associated with the verb in +;; `news-topics` + +(def news-topics + "Topics of interest to gossip agents. Topics are keyed in this map by + their `verbs`. The `keys` associated with each topic are the extra pieces + of information required to give context to a gossip item. Generally: + + * `actor` is the id of the character who performed the action; + * `other` is the id of the character on whom the action was performed; + * `location` is the place at which the action was performed; + * `object` is an object (or possibly list of objects?) relevant to the action; + * `price` is special to buy/sell, but of significant interest to merchants. + + #### Notes: + + ##### Locations: + + A 'location' value is a list comprising at most the x/y coordinate location + and the ids of the settlement and region (possibly hierarchically) that contain + the location. If the x/y is not local to the home of the receiving agent, they + won't remember it and won't pass it on; if any of the ids are not interesting + So location information will degrade progressively as the item is passed along. + + It is assumed that the `:home` of a character is a location in this sense. + + ##### Inferences: + + If an agent learns that Adam has married Betty, they can infer that Betty has + married Adam; if they learn that Charles killed Dorothy, that Dorothy has died. + I'm not convinced that my representation of inferences here is ideal. + " + { ;; A significant attack is interesting whether or not it leads to deaths + :attack {:verb :attack :keys [:actor :other :location]} + ;; Deaths of characters may be interesting + :die {:verb :attack :keys [:actor :location]} + ;; Deliberate killings are interesting. + :kill {:verb :kill :keys [:actor :other :location] + :inferences [{:verb :die :actor :other :other :nil}]} + ;; Marriages may be interesting + :marry {:verb :marry :keys [:actor :other :location] + :inferences [{:verb :marry :actor :other :other :actor}]} + ;; The end of ongoing open conflict between to characters may be interesting + :peace {:verb :peace :keys [:actor :other :location] + :inferences [{:verb :peace :actor :other :other :actor}]} + ;; Things related to the plot are interesting, but will require special + ;; handling. Extra keys may be required by particular plot events. + :plot {:verb :plot :keys [:actor :other :object :location]} + ;; Rapes are interesting. + :rape {:verb :rape :keys [:actor :other :location] + :inferences [{:verb :attack} + {:verb :sex} + {:verb :sex :actor :other :other :actor}]} + ;; Merchants, especially, are interested in prices in other markets + :sell {:verb :sell :keys [:actor :other :object :location :price]} + ;; Sex can juicy gossip, although not normally if the participants are in an + ;; established sexual relationship. + :sex {:verb :sex :keys [:actor :other :location] + :inferences [{:verb :sex :actor :other :other :actor}]} + ;; Thefts are interesting + :steal {:verb :steal :keys [:actor :other :object :location]} + ;; The succession of rulers is interesting; of respected craftsmen, + ;; potentially also interesting. + :succession {:verb :succession :keys [:actor :other :location :rank]} + ;; The start of ongoing open conflict between to characters may be interesting + :war {:verb :war :keys [:actor :other :location] + :inferences [{:verb :war :actor :other :other :actor}]} + }) + + +(defn interest-in-character + "Integer representation of how interesting this `character` is to this + `gossip`." + [gossip character] + (count + (concat + (filter #(= (:actor % character)) (:knowledge gossip)) + (filter #(= (:other % character)) (:knowledge gossip))))) + +(defn interesting-character? + "Boolean representation of whether this `character` is interesting to this + `gossip`." + [gossip character] + (> (interest-in-character gossip character) 0)) + +(defn get-coords + "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." + [location] + (cond + (empty? location) nil + (map? location) + (cond + (and (number? (:x location)) (number? (:y location))) + location + (:location location) + (:location location)) + :else + (get-coords (first (remove keyword? location))))) + +;; (get-coords {:x 5 :y 7}) +;; (get-coords [{:x -4 :y 55} :auchencairn :galloway :scotland]) + +(defn distance-between + [location-1 location-2] + (let [c1 (get-coords location-1) + c2 (get-coords location-2)] + (if + (and c1 c2) + (sqrt (+ (expt (- (:x c1) (:x c2)) 2) (expt (- (:y c1) (:y c2)) 2)))))) + +;; (distance-between {:x 5 :y 5} {:x 2 :y 2}) +;; (distance-between {:x 5 :y 5} {:x 2 :y 5}) +;; (distance-between {:x 5 :y 5} [{:x -4 :y 55} :auchencairn :galloway :scotland]) +;; (distance-between {:x 5 :y 5} [:auchencairn :galloway :scotland]) + +(defn interest-in-location + "Integer representation of how interesting this `location` is to this + `gossip`." + [gossip location] + (cond + (coll? location) + (reduce + + + (map + #(interest-in-location gossip %) + location)) + (and (map? location) (:x location) (:y location)) + (if-let [home (:home gossip)] + (let [d (distance-between location home) + i (/ 10000 d) ;; 10000 at metre scale is 10km; interest should + ;;fall of with distance from home, but possibly on a log scale + ] + (if (i > 1) i 0) + i)) + :else + (count + (filter + #(some (fn [x] (= x location)) (:location %)) + (:knowledge gossip))))) + +;; (interest-in-location +;; {:knowledge [{:verb :steal +;; :actor :albert +;; :other :belinda +;; :object :foo +;; :location [{:x 35 :y 23} :auchencairn :galloway]}]} +;; :galloway) + +;; (interest-in-location +;; {:knowledge [{:verb :steal +;; :actor :albert +;; :other :belinda +;; :object :foo +;; :location [{:x 35 :y 23} :auchencairn :galloway]}]} +;; [:galloway :scotland]) + + +;; (interest-in-location +;; {:knowledge [{:verb :steal +;; :actor :albert +;; :other :belinda +;; :object :foo +;; :location [{:x 35 :y 23} :auchencairn :galloway]}]} +;; :dumfries) + +;; (interest-in-location +;; {:home {:x 35 :y 23}} +;; {:x 35 :y 24}) + +(defn interesting-location? + "True if the location of this news `item` is interesting to this `gossip`." + [gossip item] + (> (interest-in-location gossip (:location item)) 1)) + +(defn interesting-item? + "True if anything about this news `item` is interesting to this `gossip`." + [gossip item] + (or + (interesting-character? gossip (:actor item)) + (interesting-character? gossip (:other item)) + (interesting-location? gossip (:location item)) + (interesting-object? gossip (:object item)) + (interesting-topic? gossip (:verb item)))) + +(defn infer + "Infer a new knowledge item from this `item`, following this `rule`" + [item rule] + (reduce merge + item + (cons + {:verb (:verb rule)} + (map (fn [k] {k (apply (k rule) (list item))}) + (remove + #(= % :verb) + (keys rule)))))) + +;; (infer {:verb :marry :actor :adam :other :belinda} +;; {:verb :marry :actor :other :other :actor}) +;; (infer {:verb :rape :actor :adam :other :belinda} +;; {:verb :attack}) +;; (infer {:verb :rape :actor :adam :other :belinda} +;; {:verb :sex :actor :other :other :actor}) + +(defn learn-news-item + "Return a gossip like this `gossip`, which has learned this news `item` if + it is of interest to them." + ([gossip item] + (learn-news-item gossip item false)) + ([gossip item follow-inferences?] + (if + (interesting-item? gossip item) + (let [g (assoc gossip :knowledge + (cons + (assoc + item + :nth-hand (if + (number? (:nth-hand item)) + (inc (:nth-hand item)) + 1) + ;; ought to degrate the location + ;; ought to maybe-degrade characters we're not yet interested in + ) + ;; ought not to add knowledge items we already have, except + ;; to replace if new item is of increased specificity + (:knowledge gossip)))] + (if follow-inferences? + (reduce + merge + g + (map + #(learn-news-item gossip (infer item %) false) + (:inferences (news-topics (:verb item)))))))))) + diff --git a/src/the_great_game/world/location.clj b/src/the_great_game/world/location.clj new file mode 100644 index 0000000..6709f30 --- /dev/null +++ b/src/the_great_game/world/location.clj @@ -0,0 +1,10 @@ +(ns the-great-game.world.location + "Functions dealing with location in the world.") + +;; A 'location' value is a list comprising at most the x/y coordinate location +;; and the ids of the settlement and region (possibly hierarchically) that contain +;; the location. If the x/y is not local to the home of the receiving agent, they +;; won't remember it and won't pass it on; if any of the ids are not interesting +;; So location information will degrade progressively as the item is passed along. + +;; It is assumed that the `:home` of a character is a location in this sense. From b250310efc1d043417c399d9473bc98d346781e1 Mon Sep 17 00:00:00 2001 From: Simon Brooke <simon@journeyman.cc> Date: Sun, 12 Apr 2020 16:47:37 +0100 Subject: [PATCH 04/12] Added a stub file for agent --- src/the_great_game/agent/agent.clj | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/the_great_game/agent/agent.clj diff --git a/src/the_great_game/agent/agent.clj b/src/the_great_game/agent/agent.clj new file mode 100644 index 0000000..b9232ef --- /dev/null +++ b/src/the_great_game/agent/agent.clj @@ -0,0 +1,4 @@ +(ns the-great-game.agent.agent + "Anything in the game world with agency") + +;; hierarchy of needs probably gets implemented here From 7e7a55c8ec9734d9a2e9094f4734396b7e5fb066 Mon Sep 17 00:00:00 2001 From: Simon Brooke <simon@journeyman.cc> Date: Tue, 14 Apr 2020 08:30:41 +0100 Subject: [PATCH 05/12] Today is the Fifth Plough of the Plough Implemented almost the whole of the Myth of the God Incarnate calendar --- .gitignore | 2 - docs/cloverage/index.html | 127 ++- .../the_great_game/agent/agent.clj.html | 29 + .../the_great_game/gossip/gossip.clj.html | 4 +- .../the_great_game/gossip/news_items.clj.html | 740 ++++++++++++++++++ .../the_great_game/merchants/markets.clj.html | 34 +- docs/cloverage/the_great_game/time.clj.html | 440 +++++++++++ .../the_great_game/world/location.clj.html | 119 +++ docs/codox/economy.html | 2 +- docs/codox/index.html | 2 +- docs/codox/intro.html | 2 +- .../modelling_trading_cost_and_risk.html | 2 +- docs/codox/naming-of-characters.html | 26 + docs/codox/orgnic-quests.html | 34 + docs/codox/sandbox.html | 39 + docs/codox/sexual-dimorphism.html | 2 +- docs/codox/the-great-game.agent.agent.html | 3 + docs/codox/the-great-game.gossip.gossip.html | 2 +- .../the-great-game.gossip.news-items.html | 18 + .../the-great-game.merchants.markets.html | 2 +- ...e-great-game.merchants.merchant-utils.html | 2 +- .../the-great-game.merchants.merchants.html | 2 +- .../the-great-game.merchants.planning.html | 2 +- ...reat-game.merchants.strategies.simple.html | 2 +- docs/codox/the-great-game.time.html | 3 + docs/codox/the-great-game.utils.html | 2 +- docs/codox/the-great-game.world.location.html | 3 + docs/codox/the-great-game.world.routes.html | 2 +- docs/codox/the-great-game.world.run.html | 2 +- docs/codox/the-great-game.world.world.html | 2 +- src/the_great_game/agent/agent.clj | 3 + src/the_great_game/gossip/gossip.clj | 3 +- src/the_great_game/gossip/news_items.clj | 171 ++-- src/the_great_game/time.clj | 144 ++++ src/the_great_game/world/location.clj | 29 +- test/the_great_game/gossip/gossip_test.clj | 4 + .../the_great_game/gossip/news_items_test.clj | 132 ++++ test/the_great_game/time_test.clj | 79 ++ test/the_great_game/world/location_test.clj | 36 + 39 files changed, 2085 insertions(+), 167 deletions(-) create mode 100644 docs/cloverage/the_great_game/agent/agent.clj.html create mode 100644 docs/cloverage/the_great_game/gossip/news_items.clj.html create mode 100644 docs/cloverage/the_great_game/time.clj.html create mode 100644 docs/cloverage/the_great_game/world/location.clj.html create mode 100644 docs/codox/naming-of-characters.html create mode 100644 docs/codox/orgnic-quests.html create mode 100644 docs/codox/sandbox.html create mode 100644 docs/codox/the-great-game.agent.agent.html create mode 100644 docs/codox/the-great-game.gossip.news-items.html create mode 100644 docs/codox/the-great-game.time.html create mode 100644 docs/codox/the-great-game.world.location.html create mode 100644 src/the_great_game/time.clj create mode 100644 test/the_great_game/gossip/gossip_test.clj create mode 100644 test/the_great_game/gossip/news_items_test.clj create mode 100644 test/the_great_game/time_test.clj create mode 100644 test/the_great_game/world/location_test.clj diff --git a/.gitignore b/.gitignore index 7387005..0910231 100644 --- a/.gitignore +++ b/.gitignore @@ -17,5 +17,3 @@ pom.xml.asc .nrepl-port .cpcache/ *~ - -docs/cloverage/ diff --git a/docs/cloverage/index.html b/docs/cloverage/index.html index eba4573..4590c73 100644 --- a/docs/cloverage/index.html +++ b/docs/cloverage/index.html @@ -15,19 +15,15 @@ <td class="with-number">Total</td><td class="with-number">Blank</td><td class="with-number">Instrumented</td> </tr></thead> <tr> - <td><a href="the_great_game/core.clj.html">the-great-game.core</a></td><td class="with-bar"><div class="covered" - style="width:33.333333333333336%; - float:left;"> 2 </div><div class="not-covered" - style="width:66.66666666666667%; - float:left;"> 4 </div></td> -<td class="with-number">33.33 %</td> -<td class="with-bar"><div class="covered" - style="width:66.66666666666667%; - float:left;"> 2 </div><div class="not-covered" - style="width:33.333333333333336%; + <td><a href="the_great_game/agent/agent.clj.html">the-great-game.agent.agent</a></td><td class="with-bar"><div class="covered" + style="width:100.0%; float:left;"> 1 </div></td> -<td class="with-number">66.67 %</td> -<td class="with-number">6</td><td class="with-number">1</td><td class="with-number">3</td> +<td class="with-number">100.00 %</td> +<td class="with-bar"><div class="covered" + style="width:100.0%; + float:left;"> 1 </div></td> +<td class="with-number">100.00 %</td> +<td class="with-number">7</td><td class="with-number">2</td><td class="with-number">1</td> </tr> <tr> <td><a href="the_great_game/gossip/gossip.clj.html">the-great-game.gossip.gossip</a></td><td class="with-bar"><div class="covered" @@ -45,38 +41,55 @@ <td class="with-number">65</td><td class="with-number">5</td><td class="with-number">39</td> </tr> <tr> - <td><a href="the_great_game/merchants/markets.clj.html">the-great-game.merchants.markets</a></td><td class="with-bar"><div class="covered" - style="width:75.11737089201878%; - float:left;"> 160 </div><div class="not-covered" - style="width:24.88262910798122%; - float:left;"> 53 </div></td> -<td class="with-number">75.12 %</td> + <td><a href="the_great_game/gossip/news_items.clj.html">the-great-game.gossip.news-items</a></td><td class="with-bar"><div class="covered" + style="width:89.34108527131782%; + float:left;"> 461 </div><div class="not-covered" + style="width:10.65891472868217%; + float:left;"> 55 </div></td> +<td class="with-number">89.34 %</td> <td class="with-bar"><div class="covered" - style="width:56.81818181818182%; - float:left;"> 25 </div><div class="partial" - style="width:11.363636363636363%; - float:left;"> 5 </div><div class="not-covered" - style="width:31.818181818181817%; - float:left;"> 14 </div></td> -<td class="with-number">68.18 %</td> + style="width:83.65384615384616%; + float:left;"> 87 </div><div class="partial" + style="width:8.653846153846153%; + float:left;"> 9 </div><div class="not-covered" + style="width:7.6923076923076925%; + float:left;"> 8 </div></td> +<td class="with-number">92.31 %</td> +<td class="with-number">244</td><td class="with-number">29</td><td class="with-number">104</td> +</tr> +<tr> + <td><a href="the_great_game/merchants/markets.clj.html">the-great-game.merchants.markets</a></td><td class="with-bar"><div class="covered" + style="width:96.71361502347418%; + float:left;"> 206 </div><div class="not-covered" + style="width:3.2863849765258215%; + float:left;"> 7 </div></td> +<td class="with-number">96.71 %</td> +<td class="with-bar"><div class="covered" + style="width:93.18181818181819%; + float:left;"> 41 </div><div class="partial" + style="width:4.545454545454546%; + float:left;"> 2 </div><div class="not-covered" + style="width:2.272727272727273%; + float:left;"> 1 </div></td> +<td class="with-number">97.73 %</td> <td class="with-number">84</td><td class="with-number">8</td><td class="with-number">44</td> </tr> <tr> <td><a href="the_great_game/merchants/merchant_utils.clj.html">the-great-game.merchants.merchant-utils</a></td><td class="with-bar"><div class="covered" - style="width:46.017699115044245%; - float:left;"> 104 </div><div class="not-covered" - style="width:53.982300884955755%; - float:left;"> 122 </div></td> -<td class="with-number">46.02 %</td> + style="width:66.12377850162866%; + float:left;"> 203 </div><div class="not-covered" + style="width:33.876221498371336%; + float:left;"> 104 </div></td> +<td class="with-number">66.12 %</td> <td class="with-bar"><div class="covered" - style="width:54.09836065573771%; - float:left;"> 33 </div><div class="partial" - style="width:4.918032786885246%; - float:left;"> 3 </div><div class="not-covered" - style="width:40.98360655737705%; - float:left;"> 25 </div></td> -<td class="with-number">59.02 %</td> -<td class="with-number">92</td><td class="with-number">7</td><td class="with-number">61</td> + style="width:66.66666666666667%; + float:left;"> 48 </div><div class="partial" + style="width:5.555555555555555%; + float:left;"> 4 </div><div class="not-covered" + style="width:27.77777777777778%; + float:left;"> 20 </div></td> +<td class="with-number">72.22 %</td> +<td class="with-number">106</td><td class="with-number">7</td><td class="with-number">72</td> </tr> <tr> <td><a href="the_great_game/merchants/merchants.clj.html">the-great-game.merchants.merchants</a></td><td class="with-bar"><div class="covered" @@ -125,6 +138,23 @@ <td class="with-number">4.03 %</td> <td class="with-number">173</td><td class="with-number">6</td><td class="with-number">124</td> </tr> +<tr> + <td><a href="the_great_game/time.clj.html">the-great-game.time</a></td><td class="with-bar"><div class="covered" + style="width:98.10606060606061%; + float:left;"> 259 </div><div class="not-covered" + style="width:1.893939393939394%; + float:left;"> 5 </div></td> +<td class="with-number">98.11 %</td> +<td class="with-bar"><div class="covered" + style="width:96.66666666666667%; + float:left;"> 58 </div><div class="partial" + style="width:1.6666666666666667%; + float:left;"> 1 </div><div class="not-covered" + style="width:1.6666666666666667%; + float:left;"> 1 </div></td> +<td class="with-number">98.33 %</td> +<td class="with-number">144</td><td class="with-number">21</td><td class="with-number">60</td> +</tr> <tr> <td><a href="the_great_game/utils.clj.html">the-great-game.utils</a></td><td class="with-bar"><div class="covered" style="width:100.0%; @@ -136,6 +166,23 @@ <td class="with-number">100.00 %</td> <td class="with-number">35</td><td class="with-number">3</td><td class="with-number">19</td> </tr> +<tr> + <td><a href="the_great_game/world/location.clj.html">the-great-game.world.location</a></td><td class="with-bar"><div class="covered" + style="width:88.37209302325581%; + float:left;"> 76 </div><div class="not-covered" + style="width:11.627906976744185%; + float:left;"> 10 </div></td> +<td class="with-number">88.37 %</td> +<td class="with-bar"><div class="covered" + style="width:70.58823529411765%; + float:left;"> 12 </div><div class="partial" + style="width:17.647058823529413%; + float:left;"> 3 </div><div class="not-covered" + style="width:11.764705882352942%; + float:left;"> 2 </div></td> +<td class="with-number">88.24 %</td> +<td class="with-number">37</td><td class="with-number">4</td><td class="with-number">17</td> +</tr> <tr> <td><a href="the_great_game/world/routes.clj.html">the-great-game.world.routes</a></td><td class="with-bar"><div class="covered" style="width:99.21875%; @@ -183,9 +230,9 @@ </tr> <tr><td>Totals:</td> <td class="with-bar"></td> -<td class="with-number">51.99 %</td> +<td class="with-number">66.14 %</td> <td class="with-bar"></td> -<td class="with-number">54.62 %</td> +<td class="with-number">67.89 %</td> </tr> </table> </body> diff --git a/docs/cloverage/the_great_game/agent/agent.clj.html b/docs/cloverage/the_great_game/agent/agent.clj.html new file mode 100644 index 0000000..bbdf18f --- /dev/null +++ b/docs/cloverage/the_great_game/agent/agent.clj.html @@ -0,0 +1,29 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <link rel="stylesheet" href="../../coverage.css"/> <title> the_great_game/agent/agent.clj </title> + </head> + <body> +<span class="covered" title="1 out of 1 forms covered"> + 001 (ns the-great-game.agent.agent + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 002 "Anything in the game world with agency") + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 003 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 004 ;; hierarchy of needs probably gets implemented here + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 005 ;; I'm probably going to want to defprotocol stuff, to define the hierarchy + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 006 ;; of things in the gameworld; either that or drop to Java, wich I'd rather not do. + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 007 + </span><br/> + </body> +</html> diff --git a/docs/cloverage/the_great_game/gossip/gossip.clj.html b/docs/cloverage/the_great_game/gossip/gossip.clj.html index df4c108..069225a 100644 --- a/docs/cloverage/the_great_game/gossip/gossip.clj.html +++ b/docs/cloverage/the_great_game/gossip/gossip.clj.html @@ -8,7 +8,7 @@ 001 (ns the-great-game.gossip.gossip </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 002 "Interchange of news events between agents agents" + 002 "Interchange of news events between gossip agents" </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> 003 (:require [the-great-game.utils :refer [deep-merge]])) @@ -140,7 +140,7 @@ 045 `new-location`. Many gossips are essentially shadow-records of agents of </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 046 other types, and the movement if the gossip should be controlled by the + 046 other types, and the movement of the gossip should be controlled by the </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> 047 run function of the type of the record they shadow. The [[#run]] function diff --git a/docs/cloverage/the_great_game/gossip/news_items.clj.html b/docs/cloverage/the_great_game/gossip/news_items.clj.html new file mode 100644 index 0000000..0b410d6 --- /dev/null +++ b/docs/cloverage/the_great_game/gossip/news_items.clj.html @@ -0,0 +1,740 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <link rel="stylesheet" href="../../coverage.css"/> <title> the_great_game/gossip/news_items.clj </title> + </head> + <body> +<span class="covered" title="1 out of 1 forms covered"> + 001 (ns the-great-game.gossip.news-items + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 002 "Categories of news events interesting to gossip agents" + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 003 (:require [the-great-game.world.location :refer [distance-between]] + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 004 [the-great-game.time :refer [now]])) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 005 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 006 ;; The ideas here are based on the essay 'The spread of knowledge in a large + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 007 ;; game world', q.v.; they've advanced a little beyond that and will doubtless + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 008 ;; advance further in the course of writing and debugging this namespace. + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 009 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 010 ;; A news item is a map with the keys: + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 011 ;; + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 012 ;; * `date` - the date on which the reported event happened; + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 013 ;; * `nth-hand` - the number of agents the news item has passed through; + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 014 ;; * `verb` - what it is that happened (key into `news-topics`); + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 015 ;; + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 016 ;; plus other keys taken from the `keys` value associated with the verb in + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 017 ;; `news-topics` + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 018 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 019 (def news-topics + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 020 "Topics of interest to gossip agents. Topics are keyed in this map by + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 021 their `verbs`. The `keys` associated with each topic are the extra pieces + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 022 of information required to give context to a gossip item. Generally: + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 023 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 024 * `actor` is the id of the character who it is reported performed the + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 025 action; + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 026 * `other` is the id of the character on whom it is reported the action + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 027 was performed; + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 028 * `location` is the place at which the action was performed; + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 029 * `object` is an object (or possibly list of objects?) relevant to the + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 030 action; + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 031 * `price` is special to buy/sell, but of significant interest to merchants. + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 032 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 033 #### Notes: + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 034 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 035 ##### Characters: + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 036 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 037 *TODO* but note that at most all the receiver can learn about a character + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 038 from a news item is what the giver knows about that character, degraded by + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 039 what the receiver finds interesting about them. If we just pass the id here, + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 040 then either the receiver knows everything in the database about the + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 041 character, or else the receiver knows nothing at all about the character. + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 042 Neither is desirable. Further thought needed. + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 043 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 044 ##### Locations: + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 045 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 046 A 'location' value is a list comprising at most the x/y coordinate location + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 047 and the ids of the settlement and region (possibly hierarchically) that contain + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 048 the location. If the x/y is not local to the home of the receiving agent, they + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 049 won't remember it and won't pass it on; if any of the ids are not interesting + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 050 So location information will degrade progressively as the item is passed along. + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 051 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 052 It is assumed that the `:home` of a character is a location in this sense. + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 053 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 054 ##### Inferences: + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 055 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 056 If an agent learns that Adam has married Betty, they can infer that Betty has + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 057 married Adam; if they learn that Charles killed Dorothy, that Dorothy has died. + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 058 I'm not convinced that my representation of inferences here is ideal. + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 059 " + </span><br/> +<span class="covered" title="13 out of 13 forms covered"> + 060 { ;; A significant attack is interesting whether or not it leads to deaths + </span><br/> +<span class="covered" title="8 out of 8 forms covered"> + 061 :attack {:verb :attack :keys [:actor :other :location]} + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 062 ;; Deaths of characters may be interesting + </span><br/> +<span class="covered" title="7 out of 7 forms covered"> + 063 :die {:verb :attack :keys [:actor :location]} + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 064 ;; Deliberate killings are interesting. + </span><br/> +<span class="covered" title="9 out of 9 forms covered"> + 065 :kill {:verb :kill :keys [:actor :other :location] + </span><br/> +<span class="covered" title="8 out of 8 forms covered"> + 066 :inferences [{:verb :die :actor :other :other :nil}]} + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 067 ;; Marriages may be interesting + </span><br/> +<span class="covered" title="9 out of 9 forms covered"> + 068 :marry {:verb :marry :keys [:actor :other :location] + </span><br/> +<span class="covered" title="8 out of 8 forms covered"> + 069 :inferences [{:verb :marry :actor :other :other :actor}]} + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 070 ;; The end of ongoing open conflict between to characters may be interesting + </span><br/> +<span class="covered" title="9 out of 9 forms covered"> + 071 :peace {:verb :peace :keys [:actor :other :location] + </span><br/> +<span class="covered" title="8 out of 8 forms covered"> + 072 :inferences [{:verb :peace :actor :other :other :actor}]} + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 073 ;; Things related to the plot are interesting, but will require special + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 074 ;; handling. Extra keys may be required by particular plot events. + </span><br/> +<span class="covered" title="9 out of 9 forms covered"> + 075 :plot {:verb :plot :keys [:actor :other :object :location]} + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 076 ;; Rapes are interesting. + </span><br/> +<span class="covered" title="9 out of 9 forms covered"> + 077 :rape {:verb :rape :keys [:actor :other :location] + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 078 ;; Should you also infer from rape that actor is male and adult? + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 079 :inferences [{:verb :attack} + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 080 {:verb :sex} + </span><br/> +<span class="covered" title="7 out of 7 forms covered"> + 081 {:verb :sex :actor :other :other :actor}]} + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 082 ;; Merchants, especially, are interested in prices in other markets + </span><br/> +<span class="covered" title="10 out of 10 forms covered"> + 083 :sell {:verb :sell :keys [:actor :other :object :location :price]} + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 084 ;; Sex can juicy gossip, although not normally if the participants are in an + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 085 ;; established sexual relationship. + </span><br/> +<span class="covered" title="9 out of 9 forms covered"> + 086 :sex {:verb :sex :keys [:actor :other :location] + </span><br/> +<span class="covered" title="8 out of 8 forms covered"> + 087 :inferences [{:verb :sex :actor :other :other :actor}]} + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 088 ;; Thefts are interesting + </span><br/> +<span class="covered" title="9 out of 9 forms covered"> + 089 :steal {:verb :steal :keys [:actor :other :object :location]} + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 090 ;; The succession of rulers is interesting; of respected craftsmen, + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 091 ;; potentially also interesting. + </span><br/> +<span class="covered" title="9 out of 9 forms covered"> + 092 :succession {:verb :succession :keys [:actor :other :location :rank]} + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 093 ;; The start of ongoing open conflict between to characters may be interesting + </span><br/> +<span class="covered" title="9 out of 9 forms covered"> + 094 :war {:verb :war :keys [:actor :other :location] + </span><br/> +<span class="covered" title="8 out of 8 forms covered"> + 095 :inferences [{:verb :war :actor :other :other :actor}]} + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 096 }) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 097 + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 098 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 099 (defn interest-in-character + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 100 "Integer representation of how interesting this `character` is to this + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 101 `gossip`. + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 102 *TODO:* this assumes that characters are passed as keywords, but, as + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 103 documented above, they probably have to be maps, to allow for degradation." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 104 [gossip character] + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 105 (count + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 106 (concat + </span><br/> +<span class="partial" title="6 out of 12 forms covered"> + 107 (filter #(= (:actor % character)) (:knowledge gossip)) + </span><br/> +<span class="partial" title="6 out of 12 forms covered"> + 108 (filter #(= (:other % character)) (:knowledge gossip))))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 109 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 110 (defn interesting-character? + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 111 "Boolean representation of whether this `character` is interesting to this + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 112 `gossip`." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 113 [gossip character] + </span><br/> +<span class="covered" title="7 out of 7 forms covered"> + 114 (> (interest-in-character gossip character) 0)) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 115 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 116 (defn interest-in-location + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 117 "Integer representation of how interesting this `location` is to this + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 118 `gossip`." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 119 [gossip location] + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 120 (cond + </span><br/> +<span class="partial" title="20 out of 21 forms covered"> + 121 (and (map? location) (number? (:x location)) (number? (:y location))) + </span><br/> +<span class="partial" title="8 out of 9 forms covered"> + 122 (if-let [home (:home gossip)] + </span><br/> +<span class="covered" title="5 out of 5 forms covered"> + 123 (let [d (distance-between location home) + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 124 i (/ 10000 d) ;; 10000 at metre scale is 10km; interest should + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 125 ;;fall of with distance from home, but possibly on a log scale + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 126 ] + </span><br/> +<span class="covered" title="7 out of 7 forms covered"> + 127 (if (> i 1) i 0)) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 128 0) + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 129 (coll? location) + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 130 (reduce + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 131 + + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 132 (map + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 133 #(interest-in-location gossip %) + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 134 location)) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 135 :else + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 136 (count + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 137 (filter + </span><br/> +<span class="covered" title="10 out of 10 forms covered"> + 138 #(some (fn [x] (= x location)) (:location %)) + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 139 (:knowledge gossip))))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 140 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 141 (defn interesting-location? + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 142 "True if the location of this news `item` is interesting to this `gossip`." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 143 [gossip item] + </span><br/> +<span class="covered" title="9 out of 9 forms covered"> + 144 (> (interest-in-location gossip (:location item)) 1)) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 145 + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 146 (defn interesting-object? + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 147 [gossip object] + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 148 ;; TODO: Not yet (really) implemented + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 149 true) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 150 + </span><br/> +<span class="partial" title="1 out of 2 forms covered"> + 151 (defn interesting-topic? + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 152 [gossip topic] + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 153 ;; TODO: Not yet (really) implemented + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 154 true) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 155 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 156 (defn interesting-item? + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 157 "True if anything about this news `item` is interesting to this `gossip`." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 158 [gossip item] + </span><br/> +<span class="partial" title="13 out of 17 forms covered"> + 159 (or + </span><br/> +<span class="covered" title="6 out of 6 forms covered"> + 160 (interesting-character? gossip (:actor item)) + </span><br/> +<span class="covered" title="6 out of 6 forms covered"> + 161 (interesting-character? gossip (:other item)) + </span><br/> +<span class="covered" title="6 out of 6 forms covered"> + 162 (interesting-location? gossip (:location item)) + </span><br/> +<span class="covered" title="6 out of 6 forms covered"> + 163 (interesting-object? gossip (:object item)) + </span><br/> +<span class="not-covered" title="0 out of 5 forms covered"> + 164 (interesting-topic? gossip (:verb item)))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 165 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 166 (defn infer + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 167 "Infer a new knowledge item from this `item`, following this `rule`" + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 168 [item rule] + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 169 (reduce merge + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 170 item + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 171 (cons + </span><br/> +<span class="covered" title="5 out of 5 forms covered"> + 172 {:verb (:verb rule)} + </span><br/> +<span class="covered" title="13 out of 13 forms covered"> + 173 (map (fn [k] {k (apply (k rule) (list item))}) + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 174 (remove + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 175 #(= % :verb) + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 176 (keys rule)))))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 177 + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 178 (declare learn-news-item) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 179 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 180 (defn make-all-inferences + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 181 "Return a list of knowledge entries inferred from this news `item` by this + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 182 `gossip`." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 183 [item] + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 184 (set + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 185 (reduce + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 186 concat + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 187 (map + </span><br/> +<span class="covered" title="10 out of 10 forms covered"> + 188 #(:knowledge (learn-news-item {} (infer item %) false)) + </span><br/> +<span class="covered" title="7 out of 7 forms covered"> + 189 (:inferences (news-topics (:verb item))))))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 190 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 191 (defn degrade-character + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 192 "Return a character specification like this `character`, but comprising + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 193 only those properties this `gossip` is interested in." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 194 [gossip character] + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 195 ;; TODO: Not yet (really) implemented + </span><br/> +<span class="not-covered" title="0 out of 1 forms covered"> + 196 character) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 197 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 198 (defn degrade-location + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 199 "Return a location specification like this `location`, but comprising + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 200 only those elements this `gossip` is interested in. If none, return + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 201 `nil`." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 202 [gossip location] + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 203 (let [l (if + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 204 (coll? location) + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 205 (filter + </span><br/> +<span class="partial" title="5 out of 7 forms covered"> + 206 #(when (interesting-location? gossip %) %) + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 207 location))] + </span><br/> +<span class="partial" title="5 out of 7 forms covered"> + 208 (when-not (empty? l) l))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 209 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 210 (defn learn-news-item + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 211 "Return a gossip like this `gossip`, which has learned this news `item` if + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 212 it is of interest to them." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 213 ;; TODO: Not yet implemented + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 214 ([gossip item] + </span><br/> +<span class="not-covered" title="0 out of 5 forms covered"> + 215 (learn-news-item gossip item true)) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 216 ([gossip item follow-inferences?] + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 217 (if + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 218 (interesting-item? gossip item) + </span><br/> +<span class="covered" title="5 out of 5 forms covered"> + 219 (let [g (assoc gossip :knowledge + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 220 (cons + </span><br/> +<span class="covered" title="5 out of 5 forms covered"> + 221 (assoc + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 222 item + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 223 :nth-hand (if + </span><br/> +<span class="covered" title="5 out of 5 forms covered"> + 224 (number? (:nth-hand item)) + </span><br/> +<span class="not-covered" title="0 out of 5 forms covered"> + 225 (inc (:nth-hand item)) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 226 1) + </span><br/> +<span class="partial" title="8 out of 11 forms covered"> + 227 :date (if (number? (:date item)) (:date item) (now)) + </span><br/> +<span class="covered" title="6 out of 6 forms covered"> + 228 :location (degrade-location gossip (:location item)) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 229 ;; ought to degratde the location + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 230 ;; ought to maybe-degrade characters we're not yet interested in + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 231 ) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 232 ;; ought not to add knowledge items we already have, except + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 233 ;; to replace if new item is of increased specificity + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 234 (:knowledge gossip)))] + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 235 (if follow-inferences? + </span><br/> +<span class="not-covered" title="0 out of 3 forms covered"> + 236 (assoc + </span><br/> +<span class="not-covered" title="0 out of 1 forms covered"> + 237 g + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 238 :knowledge + </span><br/> +<span class="not-covered" title="0 out of 8 forms covered"> + 239 (concat (:knowledge g) (make-all-inferences item))) + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 240 g)) + </span><br/> +<span class="not-covered" title="0 out of 1 forms covered"> + 241 gossip))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 242 + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 243 + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 244 + </span><br/> + </body> +</html> diff --git a/docs/cloverage/the_great_game/merchants/markets.clj.html b/docs/cloverage/the_great_game/merchants/markets.clj.html index 618f25f..46dc44a 100644 --- a/docs/cloverage/the_great_game/merchants/markets.clj.html +++ b/docs/cloverage/the_great_game/merchants/markets.clj.html @@ -79,22 +79,22 @@ <span class="covered" title="3 out of 3 forms covered"> 025 id (:id c) </span><br/> -<span class="partial" title="9 out of 10 forms covered"> +<span class="covered" title="10 out of 10 forms covered"> 026 p (or (-> c :prices commodity) 0) </span><br/> <span class="covered" title="10 out of 10 forms covered"> 027 d (or (-> c :demands commodity) 0) </span><br/> -<span class="partial" title="9 out of 10 forms covered"> +<span class="covered" title="10 out of 10 forms covered"> 028 st (or (-> c :stock commodity) 0) </span><br/> -<span class="partial" title="9 out of 10 forms covered"> +<span class="covered" title="10 out of 10 forms covered"> 029 su (or (-> c :supplies commodity) 0) </span><br/> <span class="covered" title="4 out of 4 forms covered"> 030 decrement (min st d) </span><br/> -<span class="partial" title="3 out of 6 forms covered"> +<span class="partial" title="5 out of 6 forms covered"> 031 increment (cond </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> @@ -190,46 +190,46 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 062 ([world] </span><br/> -<span class="not-covered" title="0 out of 2 forms covered"> +<span class="covered" title="2 out of 2 forms covered"> 063 (reduce </span><br/> -<span class="not-covered" title="0 out of 1 forms covered"> +<span class="covered" title="1 out of 1 forms covered"> 064 deep-merge </span><br/> -<span class="not-covered" title="0 out of 1 forms covered"> +<span class="covered" title="1 out of 1 forms covered"> 065 world </span><br/> -<span class="not-covered" title="0 out of 3 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 066 (map </span><br/> -<span class="not-covered" title="0 out of 4 forms covered"> +<span class="covered" title="4 out of 4 forms covered"> 067 #(update-markets world %) </span><br/> -<span class="not-covered" title="0 out of 5 forms covered"> +<span class="covered" title="5 out of 5 forms covered"> 068 (keys (:cities world))))) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> 069 ([world city] </span><br/> -<span class="not-covered" title="0 out of 2 forms covered"> +<span class="covered" title="2 out of 2 forms covered"> 070 (reduce </span><br/> -<span class="not-covered" title="0 out of 1 forms covered"> +<span class="covered" title="1 out of 1 forms covered"> 071 deep-merge </span><br/> -<span class="not-covered" title="0 out of 1 forms covered"> +<span class="covered" title="1 out of 1 forms covered"> 072 {} </span><br/> -<span class="not-covered" title="0 out of 8 forms covered"> +<span class="covered" title="8 out of 8 forms covered"> 073 (map #(update-markets world city %) </span><br/> -<span class="not-covered" title="0 out of 5 forms covered"> +<span class="covered" title="5 out of 5 forms covered"> 074 (keys (:commodities world))))) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> 075 ([world city commodity] </span><br/> -<span class="not-covered" title="0 out of 5 forms covered"> +<span class="covered" title="5 out of 5 forms covered"> 076 (adjust-quantity-and-price world city commodity))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> @@ -250,7 +250,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 082 [world] </span><br/> -<span class="not-covered" title="0 out of 3 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 083 (update-markets world)) </span><br/> <span class="blank" title="0 out of 0 forms covered"> diff --git a/docs/cloverage/the_great_game/time.clj.html b/docs/cloverage/the_great_game/time.clj.html new file mode 100644 index 0000000..8822abe --- /dev/null +++ b/docs/cloverage/the_great_game/time.clj.html @@ -0,0 +1,440 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <link rel="stylesheet" href="../coverage.css"/> <title> the_great_game/time.clj </title> + </head> + <body> +<span class="covered" title="1 out of 1 forms covered"> + 001 (ns the-great-game.time + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 002 (:require [clojure.string :as s])) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 003 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 004 (def game-start-time + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 005 "The start time of this run." + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 006 (System/currentTimeMillis)) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 007 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 008 (def ^:const game-day-length + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 009 "The Java clock advances in milliseconds, which is fine. + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 010 But we need game-days to be shorter than real world days. + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 011 A Witcher 3 game day is 1 hour 36 minutes, or 96 minutes, which is + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 012 presumably researched. Round it up to 100 minutes for easier + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 013 calculation." + </span><br/> +<span class="covered" title="5 out of 5 forms covered"> + 014 (* 100 ;; minutes per game day + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 015 60 ;; seconds per minute + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 016 1000)) ;; milliseconds per second + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 017 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 018 (defn now + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 019 "For now, we'll use Java timestamp for time; ultimately, we need a + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 020 concept of game-time which allows us to drive day/night cycle, seasons, + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 021 et cetera, but what matters about time is that it is a value which + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 022 increases." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 023 [] + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 024 (System/currentTimeMillis)) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 025 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 026 (def ^:const canonical-ordering-of-houses + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 027 "The canonical ordering of religious houses." + </span><br/> +<span class="covered" title="10 out of 10 forms covered"> + 028 [:eye + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 029 :foot + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 030 :nose + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 031 :hand + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 032 :ear + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 033 :mouth + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 034 :stomach + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 035 :furrow + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 036 :plough]) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 037 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 038 (def ^:const days-of-week + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 039 "The eight-day week of the game world. This differs from the canonical + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 040 ordering of houses in that it omits the eye." + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 041 (rest canonical-ordering-of-houses)) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 042 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 043 (def ^:const days-in-week + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 044 "This world has an eight day week." + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 045 (count days-of-week)) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 046 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 047 (def ^:const seasons-of-year + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 048 "The ordering of seasons in the year is different from the canonical + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 049 ordering of the houses, for reasons of the agricultural cycle." + </span><br/> +<span class="covered" title="10 out of 10 forms covered"> + 050 [:foot + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 051 :nose + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 052 :hand + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 053 :ear + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 054 :mouth + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 055 :stomach + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 056 :plough + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 057 :furrow + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 058 :eye]) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 059 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 060 (def ^:const seasons-in-year + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 061 "Nine seasons in a year, one for each house (although the order is + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 062 different." + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 063 (count seasons-of-year)) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 064 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 065 (def ^:const weeks-of-season + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 066 "To fit nine seasons of eight day weeks into 365 days, each must be of + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 067 five weeks." + </span><br/> +<span class="covered" title="6 out of 6 forms covered"> + 068 [:first :second :third :fourth :fifth]) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 069 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 070 (def ^:const weeks-in-season + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 071 "To fit nine seasons of eight day weeks into 365 days, each must be of + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 072 five weeks." + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 073 (count weeks-of-season)) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 074 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 075 (def ^:const days-in-season + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 076 (* weeks-in-season days-in-week)) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 077 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 078 (defn game-time + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 079 "With no arguments, the current game time. If a Java `timestamp` value is + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 080 passed (as a `long`), the game time represented by that value." + </span><br/> +<span class="not-covered" title="0 out of 4 forms covered"> + 081 ([] (game-time (now))) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 082 ([timestamp] + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 083 (- timestamp game-start-time))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 084 + </span><br/> +<span class="covered" title="63 out of 63 forms covered"> + 085 (defmacro day-of-year + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 086 "The day of the year represented by this `game-time`, ignoring leap years." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 087 [game-time] + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 088 `(mod (long (/ ~game-time game-day-length)) 365)) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 089 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 090 (def waiting-day? + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 091 "Does this `game-time` represent a waiting day?" + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 092 (memoize + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 093 ;; we're likely to call this several times in quick succession on the + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 094 ;; same timestamp + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 095 (fn [game-time] + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 096 (>= + </span><br/> +<span class="covered" title="5 out of 5 forms covered"> + 097 (day-of-year game-time) + </span><br/> +<span class="covered" title="5 out of 5 forms covered"> + 098 (* seasons-in-year weeks-in-season days-in-week))))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 099 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 100 (defn day + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 101 "Day of the eight-day week represented by this `game-time`." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 102 [game-time] + </span><br/> +<span class="covered" title="9 out of 9 forms covered"> + 103 (let [day-of-week (mod (day-of-year game-time) days-in-week)] + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 104 (if (waiting-day? game-time) + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 105 (nth weeks-of-season day-of-week) + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 106 (nth days-of-week day-of-week)))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 107 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 108 (defn week + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 109 "Week of season represented by this `game-time`." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 110 [game-time] + </span><br/> +<span class="covered" title="9 out of 9 forms covered"> + 111 (let [day-of-season (mod (day-of-year game-time) days-in-season) + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 112 week (/ day-of-season days-in-week)] + </span><br/> +<span class="partial" title="4 out of 5 forms covered"> + 113 (if (waiting-day? game-time) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 114 :waiting + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 115 (nth weeks-of-season week)))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 116 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 117 (defn season + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 118 [game-time] + </span><br/> +<span class="covered" title="11 out of 11 forms covered"> + 119 (let [season (int (/ (day-of-year game-time) days-in-season))] + </span><br/> +<span class="covered" title="5 out of 5 forms covered"> + 120 (if (waiting-day? game-time) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 121 :waiting + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 122 (nth seasons-of-year season)))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 123 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 124 (defn date-string + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 125 "Return a correctly formatted date for this `game-time` in the calendar of + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 126 the Great Place." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 127 [game-time] + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 128 (s/join + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 129 " " + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 130 (if + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 131 (waiting-day? game-time) + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 132 [(s/capitalize + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 133 (name + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 134 (nth + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 135 weeks-of-season + </span><br/> +<span class="covered" title="8 out of 8 forms covered"> + 136 (mod (day-of-year game-time) days-in-week)))) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 137 "waiting day"] + </span><br/> +<span class="covered" title="9 out of 9 forms covered"> + 138 [(s/capitalize (name (week game-time))) + </span><br/> +<span class="covered" title="7 out of 7 forms covered"> + 139 (s/capitalize (name (day game-time))) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 140 "of the" + </span><br/> +<span class="covered" title="7 out of 7 forms covered"> + 141 (s/capitalize (name (season game-time)))]))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 142 + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 143 + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 144 + </span><br/> + </body> +</html> diff --git a/docs/cloverage/the_great_game/world/location.clj.html b/docs/cloverage/the_great_game/world/location.clj.html new file mode 100644 index 0000000..195df85 --- /dev/null +++ b/docs/cloverage/the_great_game/world/location.clj.html @@ -0,0 +1,119 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <link rel="stylesheet" href="../../coverage.css"/> <title> the_great_game/world/location.clj </title> + </head> + <body> +<span class="covered" title="1 out of 1 forms covered"> + 001 (ns the-great-game.world.location + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 002 "Functions dealing with location in the world." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 003 (:require [clojure.math.numeric-tower :refer [expt sqrt]])) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 004 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 005 ;; A 'location' value is a list comprising at most the x/y coordinate location + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 006 ;; and the ids of the settlement and region (possibly hierarchically) that contain + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 007 ;; the location. If the x/y is not local to the home of the receiving agent, they + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 008 ;; won't remember it and won't pass it on; if any of the ids are not interesting + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 009 ;; So location information will degrade progressively as the item is passed along. + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 010 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 011 ;; It is assumed that the `:home` of a character is a location in this sense. + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 012 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 013 (defn get-coords + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 014 "Return the coordinates in the game world of `location`, which may be + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 015 1. A coordinate pair in the format {:x 5 :y 32}; + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 016 2. A location, as discussed above; + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 017 3. Any other gameworld object, having a `:location` property whose value + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 018 is one of the above." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 019 [location] + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 020 (cond + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 021 (empty? location) nil + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 022 (map? location) + </span><br/> +<span class="partial" title="1 out of 3 forms covered"> + 023 (cond + </span><br/> +<span class="partial" title="13 out of 14 forms covered"> + 024 (and (number? (:x location)) (number? (:y location))) + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 025 location + </span><br/> +<span class="not-covered" title="0 out of 3 forms covered"> + 026 (:location location) + </span><br/> +<span class="not-covered" title="0 out of 3 forms covered"> + 027 (:location location)) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 028 :else + </span><br/> +<span class="covered" title="8 out of 8 forms covered"> + 029 (get-coords (first (remove keyword? location))))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 030 + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 031 (defn distance-between + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 032 [location-1 location-2] + </span><br/> +<span class="covered" title="4 out of 4 forms covered"> + 033 (let [c1 (get-coords location-1) + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 034 c2 (get-coords location-2)] + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 035 (when + </span><br/> +<span class="partial" title="5 out of 6 forms covered"> + 036 (and c1 c2) + </span><br/> +<span class="covered" title="26 out of 26 forms covered"> + 037 (sqrt (+ (expt (- (:x c1) (:x c2)) 2) (expt (- (:y c1) (:y c2)) 2)))))) + </span><br/> + </body> +</html> diff --git a/docs/codox/economy.html b/docs/codox/economy.html index 8d85673..a232ad2 100644 --- a/docs/codox/economy.html +++ b/docs/codox/economy.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Game world economy</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 current"><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#game-world-economy" name="game-world-economy"></a>Game world economy</h1> +<html><head><meta charset="UTF-8" /><title>Game world economy</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 current"><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#game-world-economy" name="game-world-economy"></a>Game world economy</h1> <p>Broadly this essay extends ideas presented in <a href="https://blog.journeyman.cc/2013/07/populating-game-world.html">Populating a game world</a>, q.v.</p> <h2><a href="#primary-producers" name="primary-producers"></a>Primary producers</h2> <h3><a href="#herdsfolk" name="herdsfolk"></a>Herdsfolk</h3> diff --git a/docs/codox/index.html b/docs/codox/index.html index 0a34e6b..375d513 100644 --- a/docs/codox/index.html +++ b/docs/codox/index.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>The-great-game 0.1.0</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 current"><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="namespace-index" id="content"><h1><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></h1><h5 class="license">Released under the <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GNU General Public License,version 2.0 or (at your option) any later version</a></h5><div class="doc"><p>Prototype code towards the great game I've been writing about for ten years, and know I will never finish.</p></div><h2>Installation</h2><p>To install, add the following dependency to your project or build file:</p><pre class="deps">[the-great-game "0.1.0"]</pre><h2>Topics</h2><ul class="topics"><li><a href="economy.html">Game world economy</a></li><li><a href="intro.html">Introduction to the-great-game</a></li><li><a href="modelling_trading_cost_and_risk.html">Modelling trading cost and risk</a></li><li><a href="sexual-dimorphism.html">Sexual dimorphism</a></li></ul><h2>Namespaces</h2><div class="namespace"><h3><a href="the-great-game.core.html">the-great-game.core</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.core.html#var-foo">foo</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.gossip.html">the-great-game.gossip.gossip</a></h3><div class="doc"><div class="markdown"><p>Interchange of news events between agents agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.gossip.html#var-dialogue">dialogue</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-gather-news">gather-news</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-move-gossip">move-gossip</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.markets.html">the-great-game.merchants.markets</a></h3><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price">adjust-quantity-and-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-new-price">new-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-run">run</a> </li><li> <a href="the-great-game.merchants.markets.html#var-update-markets">update-markets</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchant-utils.html">the-great-game.merchants.merchant-utils</a></h3><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices">add-known-prices</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-stock">add-stock</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-burden">burden</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-afford">can-afford</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-carry">can-carry</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-expected-price">expected-price</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchants.html">the-great-game.merchants.merchants</a></h3><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchants.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.planning.html">the-great-game.merchants.planning</a></h3><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.planning.html#var-augment-plan">augment-plan</a> </li><li> <a href="the-great-game.merchants.planning.html#var-generate-trade-plans">generate-trade-plans</a> </li><li> <a href="the-great-game.merchants.planning.html#var-nearest-with-targets">nearest-with-targets</a> </li><li> <a href="the-great-game.merchants.planning.html#var-plan-trade">plan-trade</a> </li><li> <a href="the-great-game.merchants.planning.html#var-select-cargo">select-cargo</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.strategies.simple.html">the-great-game.merchants.strategies.simple</a></h3><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.strategies.simple.html#var-move-merchant">move-merchant</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy">plan-and-buy</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-re-plan">re-plan</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy">sell-and-buy</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.utils.html">the-great-game.utils</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.utils.html#var-cyclic.3F">cyclic?</a> </li><li> <a href="the-great-game.utils.html#var-deep-merge">deep-merge</a> </li><li> <a href="the-great-game.utils.html#var-make-target-filter">make-target-filter</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.routes.html">the-great-game.world.routes</a></h3><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.routes.html#var-find-route">find-route</a> </li><li> <a href="the-great-game.world.routes.html#var-find-routes">find-routes</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.run.html">the-great-game.world.run</a></h3><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.run.html#var-init">init</a> </li><li> <a href="the-great-game.world.run.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.world.html">the-great-game.world.world</a></h3><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.world.html#var-actual-price">actual-price</a> </li><li> <a href="the-great-game.world.world.html#var-default-world">default-world</a> </li><li> <a href="the-great-game.world.world.html#var-run">run</a> </li></ul></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>The-great-game 0.1.1-SNAPSHOT</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 current"><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="namespace-index" id="content"><h1><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></h1><h5 class="license">Released under the <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GNU General Public License,version 2.0 or (at your option) any later version</a></h5><div class="doc"><p>Prototype code towards the great game I've been writing about for ten years, and know I will never finish.</p></div><h2>Installation</h2><p>To install, add the following dependency to your project or build file:</p><pre class="deps">[the-great-game "0.1.1-SNAPSHOT"]</pre><h2>Topics</h2><ul class="topics"><li><a href="economy.html">Game world economy</a></li><li><a href="intro.html">Introduction to the-great-game</a></li><li><a href="modelling_trading_cost_and_risk.html">Modelling trading cost and risk</a></li><li><a href="naming-of-characters.html">Naming of Characters</a></li><li><a href="orgnic-quests.html">Organic Quests</a></li><li><a href="sandbox.html">Sandbox</a></li><li><a href="sexual-dimorphism.html">Sexual dimorphism</a></li></ul><h2>Namespaces</h2><div class="namespace"><h3><a href="the-great-game.agent.agent.html">the-great-game.agent.agent</a></h3><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div><div class="index"><p>Public variables and functions:</p><ul></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.gossip.html">the-great-game.gossip.gossip</a></h3><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.gossip.html#var-dialogue">dialogue</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-gather-news">gather-news</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-move-gossip">move-gossip</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.news-items.html">the-great-game.gossip.news-items</a></h3><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.news-items.html#var-degrade-character">degrade-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-degrade-location">degrade-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-infer">infer</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-character">interest-in-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-location">interest-in-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-character.3F">interesting-character?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-item.3F">interesting-item?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-location.3F">interesting-location?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-object.3F">interesting-object?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F">interesting-topic?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-learn-news-item">learn-news-item</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-make-all-inferences">make-all-inferences</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-news-topics">news-topics</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.markets.html">the-great-game.merchants.markets</a></h3><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price">adjust-quantity-and-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-new-price">new-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-run">run</a> </li><li> <a href="the-great-game.merchants.markets.html#var-update-markets">update-markets</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchant-utils.html">the-great-game.merchants.merchant-utils</a></h3><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices">add-known-prices</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-stock">add-stock</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-burden">burden</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-afford">can-afford</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-carry">can-carry</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-expected-price">expected-price</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchants.html">the-great-game.merchants.merchants</a></h3><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchants.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.planning.html">the-great-game.merchants.planning</a></h3><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.planning.html#var-augment-plan">augment-plan</a> </li><li> <a href="the-great-game.merchants.planning.html#var-generate-trade-plans">generate-trade-plans</a> </li><li> <a href="the-great-game.merchants.planning.html#var-nearest-with-targets">nearest-with-targets</a> </li><li> <a href="the-great-game.merchants.planning.html#var-plan-trade">plan-trade</a> </li><li> <a href="the-great-game.merchants.planning.html#var-select-cargo">select-cargo</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.strategies.simple.html">the-great-game.merchants.strategies.simple</a></h3><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.strategies.simple.html#var-move-merchant">move-merchant</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy">plan-and-buy</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-re-plan">re-plan</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy">sell-and-buy</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.time.html">the-great-game.time</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.time.html#var-canonical-ordering-of-houses">canonical-ordering-of-houses</a> </li><li> <a href="the-great-game.time.html#var-date-string">date-string</a> </li><li> <a href="the-great-game.time.html#var-day">day</a> </li><li> <a href="the-great-game.time.html#var-day-of-year">day-of-year</a> </li><li> <a href="the-great-game.time.html#var-days-in-season">days-in-season</a> </li><li> <a href="the-great-game.time.html#var-days-in-week">days-in-week</a> </li><li> <a href="the-great-game.time.html#var-days-of-week">days-of-week</a> </li><li> <a href="the-great-game.time.html#var-game-day-length">game-day-length</a> </li><li> <a href="the-great-game.time.html#var-game-start-time">game-start-time</a> </li><li> <a href="the-great-game.time.html#var-game-time">game-time</a> </li><li> <a href="the-great-game.time.html#var-now">now</a> </li><li> <a href="the-great-game.time.html#var-season">season</a> </li><li> <a href="the-great-game.time.html#var-seasons-in-year">seasons-in-year</a> </li><li> <a href="the-great-game.time.html#var-seasons-of-year">seasons-of-year</a> </li><li> <a href="the-great-game.time.html#var-waiting-day.3F">waiting-day?</a> </li><li> <a href="the-great-game.time.html#var-week">week</a> </li><li> <a href="the-great-game.time.html#var-weeks-in-season">weeks-in-season</a> </li><li> <a href="the-great-game.time.html#var-weeks-of-season">weeks-of-season</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.utils.html">the-great-game.utils</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.utils.html#var-cyclic.3F">cyclic?</a> </li><li> <a href="the-great-game.utils.html#var-deep-merge">deep-merge</a> </li><li> <a href="the-great-game.utils.html#var-make-target-filter">make-target-filter</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.location.html">the-great-game.world.location</a></h3><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.location.html#var-distance-between">distance-between</a> </li><li> <a href="the-great-game.world.location.html#var-get-coords">get-coords</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.routes.html">the-great-game.world.routes</a></h3><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.routes.html#var-find-route">find-route</a> </li><li> <a href="the-great-game.world.routes.html#var-find-routes">find-routes</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.run.html">the-great-game.world.run</a></h3><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.run.html#var-init">init</a> </li><li> <a href="the-great-game.world.run.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.world.html">the-great-game.world.world</a></h3><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.world.html#var-actual-price">actual-price</a> </li><li> <a href="the-great-game.world.world.html#var-default-world">default-world</a> </li><li> <a href="the-great-game.world.world.html#var-run">run</a> </li></ul></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/intro.html b/docs/codox/intro.html index 32cce64..b17bd13 100644 --- a/docs/codox/intro.html +++ b/docs/codox/intro.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Introduction to the-great-game</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 current"><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#introduction-to-the-great-game" name="introduction-to-the-great-game"></a>Introduction to the-great-game</h1> +<html><head><meta charset="UTF-8" /><title>Introduction to the-great-game</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 current"><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#introduction-to-the-great-game" name="introduction-to-the-great-game"></a>Introduction to the-great-game</h1> <h1><a href="#the-great-game" name="the-great-game"></a>The Great Game</h1> <p>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.</p> <p>So, firstly, how does one characterise this game?</p> diff --git a/docs/codox/modelling_trading_cost_and_risk.html b/docs/codox/modelling_trading_cost_and_risk.html index 88dd04c..72b183e 100644 --- a/docs/codox/modelling_trading_cost_and_risk.html +++ b/docs/codox/modelling_trading_cost_and_risk.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Modelling trading cost and risk</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 current"><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#modelling-trading-cost-and-risk" name="modelling-trading-cost-and-risk"></a>Modelling trading cost and risk</h1> +<html><head><meta charset="UTF-8" /><title>Modelling trading cost and risk</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 current"><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#modelling-trading-cost-and-risk" name="modelling-trading-cost-and-risk"></a>Modelling trading cost and risk</h1> <p>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.</p> <p>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 <a href="null">gossip</a> 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.</p> <p>So: to what extent is it worth modelling the spread of knowledge of trade cost and risk?</p> diff --git a/docs/codox/naming-of-characters.html b/docs/codox/naming-of-characters.html new file mode 100644 index 0000000..6d76b98 --- /dev/null +++ b/docs/codox/naming-of-characters.html @@ -0,0 +1,26 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>Naming of Characters</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 current"><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#naming-of-characters" name="naming-of-characters"></a>Naming of Characters</h1> +<p>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.</p> +<p>The full name of each character will be made up as follows:</p> +<p>[epithet] [clan] [personal-name] the [trade-or-rank] of [location], son/daughter of [parent]</p> +<p>Based on, roughly, historical name patterns like</p> +<p>Archibald (personal-name) the Grim (epithet), Earl (trade-or-rank) of Douglas (location)</p> +<p>Where</p> +<ol> + <li> + <p><em>epithet</em> is a prefix based on some notable feature or feat of the character. Most characters won’t have an epithet, unless they have some notable feature or they’ve done something notable. If a character does something notable in the course of the game, they will subsequently gain an epithet; ‘notability’ may be measured by how many times the event is transmitted through the gossip network.</p></li> + <li> + <p><em>clan</em> is special to the Western Clans, although people from the Great Place may possible use the name of their house similarly.</p></li> + <li> + <p><em>personal-name</em> is chosen from one of a limited set of limited sets; different cultural groups will have different (possibly overlapping) sets of names, but within each set there will only be a limited subset</p></li> + <li> + <p><em>trade-or-rank</em> is just that. “Smith”, “Miller”, “Ariston”, “Captain”. Either only master craftsfolk have the trade-or-rank name of their craft, or we distinguish between ‘Calon the Smith’, who may be a journeyman, and ‘Calon the Master Smith’, who is a master.</p></li> + <li> + <p><em>location</em> is the name of a location; a village, town, city or province. The location which forms part of a character’s name is the location where there current home is, not the location where they were born or where their ancestors came from</p></li> +</ol> +<p>Full names will almost never be used - only, perhaps, in extremely formal circumstances. The form of a name used will depend on context, and will generally be just sufficient to disambiguate the character in the context.</p> +<p>If the speaker is in Sinhua and referring to someone from Sinhua, they won’t refer to them as ‘of Sinhua’.</p> +<p>If everyone present is a bargee and the speaker referring to someone who is also a bargee, they won’t refer to them as ‘the bargee’.</p> +<p>The question asked influences the context: in answer to the question ‘who is the best sword smith’, the answer will not be ‘Calon the Smith’ but ‘Calon of Sinhua’.</p> +<p>Patronymics/matronymics will not normally be used of adults (although they may be used of apprentices and journeymen.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/orgnic-quests.html b/docs/codox/orgnic-quests.html new file mode 100644 index 0000000..ca6e4a8 --- /dev/null +++ b/docs/codox/orgnic-quests.html @@ -0,0 +1,34 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>Organic Quests</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 current"><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#organic-quests" name="organic-quests"></a>Organic Quests</h1> +<p>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](<a href="https://en.wikipedia.org/wiki/Quest_(gaming)">https://en.wikipedia.org/wiki/Quest_(gaming)</a>) offers a typology of quests as follows:</p> +<ol> + <li>Kill quests</li> + <li>Combo quests</li> + <li>Delivery quests</li> + <li>Gather quests</li> + <li>Escort quests</li> + <li>Syntax quests</li> + <li>Hybrids</li> +</ol> +<p>‘Gather quests’ are more frequently referred to in the literature as ‘fetch quests’, and ‘kill quests’ are simply a specialised form of fetch quest where the item to be fetched is a trophy of the kill. A delivery quest is a sort of reverse fetch quest: instead of going to some location or NPC and getting a specific item to return to the quest giver, the player is tasked to take a specific item from the quest giver to some location or NPC.</p> +<p>Hybrids are in effect chains of quests: do this task in order to get this precondition of this other task, in order to get the overall objective; obviously such chains can be deep and involved - the ‘main quest’ of every role playing game I know of is a chain or hybrid quest.</p> +<p>My understanding is that what Wikipedia means by a ‘syntax quest’ is what one would normally call a puzzle.</p> +<p>An escort quest is typically a request to take a specified non-player character safely through a dangerous area.</p> +<p>Combo quests are not, in my opinion, particularly relevant to the sorts of game we’re discussing here.</p> +<p>So essentially quests break down into three core types</p> +<ol> + <li>Fetch and deliver quests</li> + <li>Escort quests</li> + <li>Puzzles</li> +</ol> +<p>which are combined together into more or less complex chains, where the simplest chain is a single quest.</p> +<p>Given that quests are as simple as this, it’s obvious that narrative sophistication is required to make them interesting; and this point is clearly made by some variants of roguelike games which procedurally generate quests: they’re generally pretty dull. By contrast, the Witcher series is full of fetch-quests which are made to really matter by being wrapped in interesting character interaction and narrative plausibility. Very often this takes the form of tragedy: as one reviewer pointed out, the missing relatives that Geralt is asked to find generally turn out to be (horribly) dead. In other words, creative scripting tends to deliver much more narratively satisfying quests than is usually delivered by procedural generation.</p> +<p>But, if we’re thinking of a game with much more intelligent non-player characters with much more conversational repertoir, as I am, can satisfying quests emerge organically? In space trading games such as <a href="https://www.telegraph.co.uk/games/11051122/Elite-the-game-that-changed-the-world.html">Elite</a>, a primary activity is moving goods from markets with surplus (and thus low prices) to markets with shortage (and thus high prices). This is, in effect, a game made up of deliver quests - but rather than deliver quests which are scripted, they are deliver quests which arise organically out of the structure of the game world.</p> +<p>I already have working code for non-player character merchants, who move goods from city to city based on market information available to them. For player characters to join in this trading is an organic activity emerging from the structure of the world, which provides an activity. But moving merchants provides a market opportunity for bandits, who can intercept and steal cargoes, and so for mercenaries, who can protect cargoes from bandits, and so on. And because I have an architecture that allows non-player characters to fill economic niches, there will be non-player characters in all these niches.</p> +<p>Where a non-player character can act, so can a player character: when a (non-player character) merchant seeks to hire a caravan guard and a player character responds, that’s an organic escort quest.</p> +<p>The key idea behind organic quests is that the circumstance and requirments for quests emerges as an emergent behaviour out of the mechanics of the game world. A non-player character doesn’t know that there is a player character who is different from them; rather, when a non-player character needs something they can’t readily achieve for themselves, they will ask other characters to help, and that may include the player character.</p> +<p>This means, of course, that characters need a goal-seeking planning algorithm to decide their actions, with one option in any plan being ‘ask for help’. Thus, ‘asking for help’ becomes a mechanism within the game, a normal behaviour. Ideally non-player characters will keep track of quite complex webs of loyalty and of obligation - debts of honour, duties of hospitality, collective loyalties. So that, if you do a favour for some character in the world, that character’s tribe, friends, obligation circle, whatever, are now more likely to do favours for you.</p> +<p>Obviously, this doesn’t stop you doing jobs you get directly paid/rewarded for, but I’d like the web of obligation to be at least potentially much richer than just tit for tat.</p> +<p>Related to this notion is the notion that, if you are asked to do a task by a character and you do it well, whether for pay or as a favour, your reputation for being competent in tasks of that kind will improve and the more likely it is that other characters will ask you to do similar tasks; and this will apply to virtually anything another character can ask of you in the game world, from carrying out an assassination to delivering a message to finding a quantiy of some specific commodity to having sex.</p> +<p>So quests can emerge organically from the mechanics of the world and be richly varied; I’m confident that will work. What I’m not confident of is that they can be narratively satisfying. This relates directly to the generation of speech.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/sandbox.html b/docs/codox/sandbox.html new file mode 100644 index 0000000..fefc173 --- /dev/null +++ b/docs/codox/sandbox.html @@ -0,0 +1,39 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>Sandbox</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 current"><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sandbox" name="sandbox"></a>Sandbox</h1> +<p>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.</p> +<p>Why?</p> +<p>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</p> +<ul> + <li>Where is the nearest craftsman of this craft?</li> + <li>What price can I expect to get for this item in the local market?</li> + <li>What news have you heard recently?</li> + <li>Where does this person from your village live?</li> +</ul> +<p>and where there’s a sufficiently sophisticated and robust economy simulation that buying goods in one market and selling them in another is viable.</p> +<p>The original BBC Micro space trading game Elite had very little more in terms of game mechanics than a sandbox with a means to navigate it and an economy simulation, which wasn’t even nearly as sophisticated as the one I have working now. Yet that combination resulted in engaging game play.</p> +<h2><a href="#main-sandbox-roles" name="main-sandbox-roles"></a>Main sandbox roles</h2> +<p>The idea of a sandbox is that the player character should be able to do pretty much anything they like within the mechanics of the game. From that, it seems to me reasonable that the player ought to be able to do more or less everything a non-player character can do. But creating the game mechanics to make each additional task doable takes time and investment, so there’s a need to prioritise.</p> +<p>So, as Elite did, I propose to make the first available sandbox roles</p> +<h3><a href="#merchant" name="merchant"></a>Merchant</h3> +<p>Someone who travels from city to city, buying goods cheap in one and selling them for more in another; and</p> +<h3><a href="#outlaw" name="outlaw"></a>Outlaw</h3> +<p>Someone who intercepts and steals from merchants (and may also attack outlying farms and villages)</p> +<h2><a href="#second-tier-playable-roles" name="second-tier-playable-roles"></a>Second tier playable roles</h2> +<p>The next tier of playable roles rotates around issues arising from the mercantile ecosystem. </p> +<h3><a href="#aristocracy" name="aristocracy"></a>Aristocracy</h3> +<p>Aristocrats are basically settled outlaws who seek to establish a monopoly on extracting taxes from inhabitants and travellers in a particular region by driving out all other outlaws. Within the comain of an aristocrat, you have to pay tax but you’re reasonably safe from being attacked by other outlaws and losing everything. Aristocrats may also maintain and improve roads and bridges and do other things to boost the economy of their territory, may expant into adjoining territory with no current aristocratic control, and may wage war on other aristocrats.</p> +<p>An outlaw ought to be able to become an aristocrat, by dominating an ungoverned area or by defeating an existing aristocrat.</p> +<h3><a href="#soldiery" name="soldiery"></a>Soldiery</h3> +<p>Soldiers, like aristocrats, are basically on the same spectrum as outlaws. Outlaws may hire themselves out to merchants as caravan guards, or to aristocrats as soldiers. Soldiers or guards, falling on bad times, may revert to outlawry.</p> +<h2><a href="#routine-discretion-and-playability" name="routine-discretion-and-playability"></a>Routine, Discretion and Playability</h2> +<p>There’s a term that’s used in criticism of many computer games which is worth thinking about hard here: that term is ‘farming’. ‘Farming’, in this sense, is doing something repetitive and dull to earn credits in a game. Generally this is not fun. What makes roles in a game-world fun is having individual discretion - the ability to choose between actions and strategies - and a lack of routine.</p> +<p>Most craft skills - especially in the learning phase - are not like this, and crafts which are sophisticated enough to be actually engaging are very hard to model in a game. Learning a craft is essentially, inherently, repetitive and dull, and if you take that repetition out of it you probably don’t have enough left to yield the feeling of mastery which would reward success; so it doesn’t seem to me that making craft roles playable should be a priority.</p> +<h2><a href="#cruise-control" name="cruise-control"></a>Cruise control</h2> +<p>One of the most enjoyable aspects of The Witcher 3 - still my go-to game for ideas I want to improve on - is simply travelling through the world. Although fast travel is possible I find I rarely use it, and a journey which takes fifteen minutes of real world wall clock time can be enjoyable in and of itself. This is, of course, a credit to the beautiful way the world is realised.</p> +<p>But nevertheless, in The Witcher 3, a decision was made to pack incident fairly densely - because players would find just travelling boring. This leads to a situation where peaceful villages exist two minutes travel from dangerous monsters or bandit camps, and the suspension of disbelief gets a little strained. Building a world big enough that a market simulation is believable means that for the individual, the travel time to a market where a particular desired good is likely to be cheaper becomes costly in itself. Otherwise, there’s no arbitrage between markets and no ecological niche for a merchant to fill. The journey time from market to market has to be several in-game days.</p> +<p>An in-game day doesn’t have to be as long as a wall clock day, and, indeed, typically isn’t. But nevertheless, doing several game days of incident-free travel, even in beautiful scenery, is not going to be engaging - which implies a fast-travel mechanic.</p> +<p>I don’t like fast travel, I find it a too-obvious breaking of immersion. Also, of course, one of the interesting things about a game in a merchant/outlaw ecosystem is the risk of interception on a journey. The Dragon Age series handled interrupted travel in ‘fast travel’ by randomly interacting the loading screen you get when moving from location to location in Dragon Age’s patchwork worlds by dumping you into a tiny arena with enemies. That’s really, really bad - there’s no other way to say this. Everything about it shouts artifice.</p> +<p>So I’m thinking of a different mechanism: one I’m calling cruise control.</p> +<p>You set out on a task which will take a long time - such as a journey, but also such as any routine task. You’re shown either a ‘fast forward’ of your character carrying out this task, or a series of cinematic ‘shots along the way’. This depends, of course, on their being continuous renderable landscape between your departure and your destination, but there will be. This fast-forward proceeds at a substantially higher time gearing than normal game time - ten times as fast perhaps; we need it to, because as well as doing backgound scenery loading to move from one location to another, we’re also simulating lots of non-player agents actions in parts of the world where the player currently isn’t. So a ‘jump cut’ from one location to another isn’t going to work anyway.</p> +<p>The player can interrupt ‘fast forward’ at any time. But also, the game itself may bring you out of fast forward when it anticipates that there may be action which requires decision - for example, when there are outlaws in the vicinity. And it will do this <strong>before</strong> the player’s party is under immediate attack - the player will have time to take stock of the situation and prepare appropriately. Finally, this will take place in the full open world; the player will have the option to choose <em>not</em> to enter the narrow defile, for example, to ask local people (if there are any) for any news of outlaw activity, or, if they are available, to send forward scouts.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/sexual-dimorphism.html b/docs/codox/sexual-dimorphism.html index 8cf4c50..3cb1205 100644 --- a/docs/codox/sexual-dimorphism.html +++ b/docs/codox/sexual-dimorphism.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Sexual dimorphism</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 current"><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sexual-dimorphism" name="sexual-dimorphism"></a>Sexual dimorphism</h1> +<html><head><meta charset="UTF-8" /><title>Sexual dimorphism</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 current"><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sexual-dimorphism" name="sexual-dimorphism"></a>Sexual dimorphism</h1> <p>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.</p> <p>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.</p> <p>OK? Let’s start.</p> diff --git a/docs/codox/the-great-game.agent.agent.html b/docs/codox/the-great-game.agent.agent.html new file mode 100644 index 0000000..02353e9 --- /dev/null +++ b/docs/codox/the-great-game.agent.agent.html @@ -0,0 +1,3 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>the-great-game.agent.agent documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3 current"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.agent.agent</h1><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.gossip.gossip.html b/docs/codox/the-great-game.gossip.gossip.html index 3e8cf5c..559aa1c 100644 --- a/docs/codox/the-great-game.gossip.gossip.html +++ b/docs/codox/the-great-game.gossip.gossip.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.gossip documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 current"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-dialogue"><div class="inner"><span>dialogue</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-gather-news"><div class="inner"><span>gather-news</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-move-gossip"><div class="inner"><span>move-gossip</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.gossip</h1><div class="doc"><div class="markdown"><p>Interchange of news events between agents agents</p></div></div><div class="public anchor" id="var-dialogue"><h3>dialogue</h3><div class="usage"><code>(dialogue enquirer respondent world)</code></div><div class="doc"><div class="markdown"><p>Dialogue between an <code>enquirer</code> and an <code>agent</code> in this <code>world</code>; returns a map identical to <code>enquirer</code> except that its <code>:gossip</code> collection may have additional entries.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L9">view source</a></div></div><div class="public anchor" id="var-gather-news"><h3>gather-news</h3><div class="usage"><code>(gather-news world)</code><code>(gather-news world gossip)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L17">view source</a></div></div><div class="public anchor" id="var-move-gossip"><h3>move-gossip</h3><div class="usage"><code>(move-gossip gossip world new-location)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> but with this <code>gossip</code> moved to this <code>new-location</code>. Many gossips are essentially shadow-records of agents of other types, and the movement if the gossip should be controlled by the run function of the type of the record they shadow. The <a href="null">#run</a> function below does NOT call this function.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L43">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with news items exchanged between gossip agents.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L61">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.gossip documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-dialogue"><div class="inner"><span>dialogue</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-gather-news"><div class="inner"><span>gather-news</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-move-gossip"><div class="inner"><span>move-gossip</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.gossip</h1><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="public anchor" id="var-dialogue"><h3>dialogue</h3><div class="usage"><code>(dialogue enquirer respondent world)</code></div><div class="doc"><div class="markdown"><p>Dialogue between an <code>enquirer</code> and an <code>agent</code> in this <code>world</code>; returns a map identical to <code>enquirer</code> except that its <code>:gossip</code> collection may have additional entries.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L9">view source</a></div></div><div class="public anchor" id="var-gather-news"><h3>gather-news</h3><div class="usage"><code>(gather-news world)</code><code>(gather-news world gossip)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L17">view source</a></div></div><div class="public anchor" id="var-move-gossip"><h3>move-gossip</h3><div class="usage"><code>(move-gossip gossip world new-location)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> but with this <code>gossip</code> moved to this <code>new-location</code>. Many gossips are essentially shadow-records of agents of other types, and the movement of the gossip should be controlled by the run function of the type of the record they shadow. The <a href="null">#run</a> function below does NOT call this function.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L43">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with news items exchanged between gossip agents.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L61">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.gossip.news-items.html b/docs/codox/the-great-game.gossip.news-items.html new file mode 100644 index 0000000..e145054 --- /dev/null +++ b/docs/codox/the-great-game.gossip.news-items.html @@ -0,0 +1,18 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.news-items documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3 current"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-character"><div class="inner"><span>degrade-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-location"><div class="inner"><span>degrade-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-infer"><div class="inner"><span>infer</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-character"><div class="inner"><span>interest-in-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-location"><div class="inner"><span>interest-in-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-character.3F"><div class="inner"><span>interesting-character?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-item.3F"><div class="inner"><span>interesting-item?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-location.3F"><div class="inner"><span>interesting-location?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-object.3F"><div class="inner"><span>interesting-object?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F"><div class="inner"><span>interesting-topic?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-learn-news-item"><div class="inner"><span>learn-news-item</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-make-all-inferences"><div class="inner"><span>make-all-inferences</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-news-topics"><div class="inner"><span>news-topics</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.news-items</h1><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="public anchor" id="var-degrade-character"><h3>degrade-character</h3><div class="usage"><code>(degrade-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Return a character specification like this <code>character</code>, but comprising only those properties this <code>gossip</code> is interested in.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L191">view source</a></div></div><div class="public anchor" id="var-degrade-location"><h3>degrade-location</h3><div class="usage"><code>(degrade-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Return a location specification like this <code>location</code>, but comprising only those elements this <code>gossip</code> is interested in. If none, return <code>nil</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L198">view source</a></div></div><div class="public anchor" id="var-infer"><h3>infer</h3><div class="usage"><code>(infer item rule)</code></div><div class="doc"><div class="markdown"><p>Infer a new knowledge item from this <code>item</code>, following this <code>rule</code></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L166">view source</a></div></div><div class="public anchor" id="var-interest-in-character"><h3>interest-in-character</h3><div class="usage"><code>(interest-in-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>character</code> is to this <code>gossip</code>. <em>TODO:</em> this assumes that characters are passed as keywords, but, as documented above, they probably have to be maps, to allow for degradation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L99">view source</a></div></div><div class="public anchor" id="var-interest-in-location"><h3>interest-in-location</h3><div class="usage"><code>(interest-in-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>location</code> is to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L116">view source</a></div></div><div class="public anchor" id="var-interesting-character.3F"><h3>interesting-character?</h3><div class="usage"><code>(interesting-character? gossip character)</code></div><div class="doc"><div class="markdown"><p>Boolean representation of whether this <code>character</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L110">view source</a></div></div><div class="public anchor" id="var-interesting-item.3F"><h3>interesting-item?</h3><div class="usage"><code>(interesting-item? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if anything about this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L156">view source</a></div></div><div class="public anchor" id="var-interesting-location.3F"><h3>interesting-location?</h3><div class="usage"><code>(interesting-location? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if the location of this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L141">view source</a></div></div><div class="public anchor" id="var-interesting-object.3F"><h3>interesting-object?</h3><div class="usage"><code>(interesting-object? gossip object)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L146">view source</a></div></div><div class="public anchor" id="var-interesting-topic.3F"><h3>interesting-topic?</h3><div class="usage"><code>(interesting-topic? gossip topic)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L151">view source</a></div></div><div class="public anchor" id="var-learn-news-item"><h3>learn-news-item</h3><div class="usage"><code>(learn-news-item gossip item)</code><code>(learn-news-item gossip item follow-inferences?)</code></div><div class="doc"><div class="markdown"><p>Return a gossip like this <code>gossip</code>, which has learned this news <code>item</code> if it is of interest to them.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L210">view source</a></div></div><div class="public anchor" id="var-make-all-inferences"><h3>make-all-inferences</h3><div class="usage"><code>(make-all-inferences item)</code></div><div class="doc"><div class="markdown"><p>Return a list of knowledge entries inferred from this news <code>item</code> by this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L180">view source</a></div></div><div class="public anchor" id="var-news-topics"><h3>news-topics</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Topics of interest to gossip agents. Topics are keyed in this map by their <code>verbs</code>. The <code>keys</code> associated with each topic are the extra pieces of information required to give context to a gossip item. Generally:</p> +<ul> + <li><code>actor</code> is the id of the character who it is reported performed the action;</li> + <li><code>other</code> is the id of the character on whom it is reported the action was performed;</li> + <li><code>location</code> is the place at which the action was performed;</li> + <li><code>object</code> is an object (or possibly list of objects?) relevant to the action;</li> + <li><code>price</code> is special to buy/sell, but of significant interest to merchants.</li> +</ul> +<h4><a href="#notes-" name="notes-"></a>Notes:</h4> +<h5><a href="#characters-" name="characters-"></a>Characters:</h5> +<p><em>TODO</em> but note that at most all the receiver can learn about a character from a news item is what the giver knows about that character, degraded by what the receiver finds interesting about them. If we just pass the id here, then either the receiver knows everything in the database about the character, or else the receiver knows nothing at all about the character. Neither is desirable. Further thought needed.</p> +<h5><a href="#locations-" name="locations-"></a>Locations:</h5> +<p>A ‘location’ value is a list comprising at most the x/y coordinate location and the ids of the settlement and region (possibly hierarchically) that contain the location. If the x/y is not local to the home of the receiving agent, they won’t remember it and won’t pass it on; if any of the ids are not interesting So location information will degrade progressively as the item is passed along.</p> +<p>It is assumed that the <code>:home</code> of a character is a location in this sense.</p> +<h5><a href="#inferences-" name="inferences-"></a>Inferences:</h5> +<p>If an agent learns that Adam has married Betty, they can infer that Betty has married Adam; if they learn that Charles killed Dorothy, that Dorothy has died. I’m not convinced that my representation of inferences here is ideal.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L19">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.merchants.markets.html b/docs/codox/the-great-game.merchants.markets.html index 3c3d546..7d7e83e 100644 --- a/docs/codox/the-great-game.merchants.markets.html +++ b/docs/codox/the-great-game.merchants.markets.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.markets documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price"><div class="inner"><span>adjust-quantity-and-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-new-price"><div class="inner"><span>new-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-run"><div class="inner"><span>run</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-update-markets"><div class="inner"><span>update-markets</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.markets</h1><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="public anchor" id="var-adjust-quantity-and-price"><h3>adjust-quantity-and-price</h3><div class="usage"><code>(adjust-quantity-and-price world city commodity)</code></div><div class="doc"><div class="markdown"><p>Adjust the quantity of this <code>commodity</code> currently in stock in this <code>city</code> of this <code>world</code>. Return a fragmentary world which can be deep-merged into this world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L17">view source</a></div></div><div class="public anchor" id="var-new-price"><h3>new-price</h3><div class="usage"><code>(new-price old stock supply demand)</code></div><div class="doc"><div class="markdown"><p>If <code>stock</code> is greater than the maximum of <code>supply</code> and <code>demand</code>, then there is surplus and <code>old</code> price is too high, so shold be reduced. If lower, then it is too low and should be increased.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L6">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L79">view source</a></div></div><div class="public anchor" id="var-update-markets"><h3>update-markets</h3><div class="usage"><code>(update-markets world)</code><code>(update-markets world city)</code><code>(update-markets world city commodity)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand. If <code>city</code> or <code>city</code> and <code>commodity</code> are specified, return a fragmentary world with only the changes for that <code>city</code> (and <code>commodity</code> if specified) populated.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L57">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.markets documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price"><div class="inner"><span>adjust-quantity-and-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-new-price"><div class="inner"><span>new-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-run"><div class="inner"><span>run</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-update-markets"><div class="inner"><span>update-markets</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.markets</h1><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="public anchor" id="var-adjust-quantity-and-price"><h3>adjust-quantity-and-price</h3><div class="usage"><code>(adjust-quantity-and-price world city commodity)</code></div><div class="doc"><div class="markdown"><p>Adjust the quantity of this <code>commodity</code> currently in stock in this <code>city</code> of this <code>world</code>. Return a fragmentary world which can be deep-merged into this world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L17">view source</a></div></div><div class="public anchor" id="var-new-price"><h3>new-price</h3><div class="usage"><code>(new-price old stock supply demand)</code></div><div class="doc"><div class="markdown"><p>If <code>stock</code> is greater than the maximum of <code>supply</code> and <code>demand</code>, then there is surplus and <code>old</code> price is too high, so shold be reduced. If lower, then it is too low and should be increased.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L6">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L79">view source</a></div></div><div class="public anchor" id="var-update-markets"><h3>update-markets</h3><div class="usage"><code>(update-markets world)</code><code>(update-markets world city)</code><code>(update-markets world city commodity)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand. If <code>city</code> or <code>city</code> and <code>commodity</code> are specified, return a fragmentary world with only the changes for that <code>city</code> (and <code>commodity</code> if specified) populated.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L57">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.merchants.merchant-utils.html b/docs/codox/the-great-game.merchants.merchant-utils.html index b1b0b5f..58e0534 100644 --- a/docs/codox/the-great-game.merchants.merchant-utils.html +++ b/docs/codox/the-great-game.merchants.merchant-utils.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchant-utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices"><div class="inner"><span>add-known-prices</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-stock"><div class="inner"><span>add-stock</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-burden"><div class="inner"><span>burden</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-afford"><div class="inner"><span>can-afford</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-carry"><div class="inner"><span>can-carry</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-expected-price"><div class="inner"><span>expected-price</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchant-utils</h1><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="public anchor" id="var-add-known-prices"><h3>add-known-prices</h3><div class="usage"><code>(add-known-prices merchant world)</code></div><div class="doc"><div class="markdown"><p>Add the current prices at this <code>merchant</code>’s location in the <code>world</code> to a new cacke of known prices, and return it.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L74">view source</a></div></div><div class="public anchor" id="var-add-stock"><h3>add-stock</h3><div class="usage"><code>(add-stock a b)</code></div><div class="doc"><div class="markdown"><p>Where <code>a</code> and <code>b</code> are both maps all of whose values are numbers, return a map whose keys are a union of the keys of <code>a</code> and <code>b</code> and whose values are the sums of their respective values.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L62">view source</a></div></div><div class="public anchor" id="var-burden"><h3>burden</h3><div class="usage"><code>(burden merchant world)</code></div><div class="doc"><div class="markdown"><p>The total weight of the current cargo carried by this <code>merchant</code> in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L17">view source</a></div></div><div class="public anchor" id="var-can-afford"><h3>can-afford</h3><div class="usage"><code>(can-afford merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can afford to buy in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L48">view source</a></div></div><div class="public anchor" id="var-can-carry"><h3>can-carry</h3><div class="usage"><code>(can-carry merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can carry in this <code>world</code>, given their current burden.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L35">view source</a></div></div><div class="public anchor" id="var-expected-price"><h3>expected-price</h3><div class="usage"><code>(expected-price merchant commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the price anticipated, given this <code>world</code>, by this <code>merchant</code> for this <code>commodity</code> in this <code>city</code>. If no information, assume 1. <code>merchant</code> should be passed as a map, <code>commodity</code> and <code>city</code> should be passed as keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L4">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchant-utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices"><div class="inner"><span>add-known-prices</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-stock"><div class="inner"><span>add-stock</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-burden"><div class="inner"><span>burden</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-afford"><div class="inner"><span>can-afford</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-carry"><div class="inner"><span>can-carry</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-expected-price"><div class="inner"><span>expected-price</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchant-utils</h1><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="public anchor" id="var-add-known-prices"><h3>add-known-prices</h3><div class="usage"><code>(add-known-prices merchant world)</code></div><div class="doc"><div class="markdown"><p>Add the current prices at this <code>merchant</code>’s location in the <code>world</code> to a new cache of known prices, and return it.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L82">view source</a></div></div><div class="public anchor" id="var-add-stock"><h3>add-stock</h3><div class="usage"><code>(add-stock a b)</code></div><div class="doc"><div class="markdown"><p>Where <code>a</code> and <code>b</code> are both maps all of whose values are numbers, return a map whose keys are a union of the keys of <code>a</code> and <code>b</code> and whose values are the sums of their respective values.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L70">view source</a></div></div><div class="public anchor" id="var-burden"><h3>burden</h3><div class="usage"><code>(burden merchant world)</code></div><div class="doc"><div class="markdown"><p>The total weight of the current cargo carried by this <code>merchant</code> in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L17">view source</a></div></div><div class="public anchor" id="var-can-afford"><h3>can-afford</h3><div class="usage"><code>(can-afford merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can afford to buy in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L50">view source</a></div></div><div class="public anchor" id="var-can-carry"><h3>can-carry</h3><div class="usage"><code>(can-carry merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can carry in this <code>world</code>, given their current burden.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L35">view source</a></div></div><div class="public anchor" id="var-expected-price"><h3>expected-price</h3><div class="usage"><code>(expected-price merchant commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the price anticipated, given this <code>world</code>, by this <code>merchant</code> for this <code>commodity</code> in this <code>city</code>. If no information, assume 1. <code>merchant</code> should be passed as a map, <code>commodity</code> and <code>city</code> should be passed as keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L4">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.merchants.merchants.html b/docs/codox/the-great-game.merchants.merchants.html index 870c8d7..46e3dc1 100644 --- a/docs/codox/the-great-game.merchants.merchants.html +++ b/docs/codox/the-great-game.merchants.merchants.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchants documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchants.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchants</h1><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a partial world based on this <code>world</code>, but with each merchant moved.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchants.clj#L8">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchants documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchants.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchants</h1><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a partial world based on this <code>world</code>, but with each merchant moved.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchants.clj#L8">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.merchants.planning.html b/docs/codox/the-great-game.merchants.planning.html index 1274f66..2d17459 100644 --- a/docs/codox/the-great-game.merchants.planning.html +++ b/docs/codox/the-great-game.merchants.planning.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.planning documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-augment-plan"><div class="inner"><span>augment-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-generate-trade-plans"><div class="inner"><span>generate-trade-plans</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-nearest-with-targets"><div class="inner"><span>nearest-with-targets</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-plan-trade"><div class="inner"><span>plan-trade</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-select-cargo"><div class="inner"><span>select-cargo</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.planning</h1><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="public anchor" id="var-augment-plan"><h3>augment-plan</h3><div class="usage"><code>(augment-plan merchant world plan)</code></div><div class="doc"><div class="markdown"><p>Augment this <code>plan</code> constructed in this <code>world</code> for this <code>merchant</code> with the <code>:quantity</code> of goods which should be bought and the <code>:expected-profit</code> of the trade.</p> +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.planning documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-augment-plan"><div class="inner"><span>augment-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-generate-trade-plans"><div class="inner"><span>generate-trade-plans</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-nearest-with-targets"><div class="inner"><span>nearest-with-targets</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-plan-trade"><div class="inner"><span>plan-trade</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-select-cargo"><div class="inner"><span>select-cargo</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.planning</h1><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="public anchor" id="var-augment-plan"><h3>augment-plan</h3><div class="usage"><code>(augment-plan merchant world plan)</code></div><div class="doc"><div class="markdown"><p>Augment this <code>plan</code> constructed in this <code>world</code> for this <code>merchant</code> with the <code>:quantity</code> of goods which should be bought and the <code>:expected-profit</code> of the trade.</p> <p>Returns the augmented plan.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/planning.clj#L110">view source</a></div></div><div class="public anchor" id="var-generate-trade-plans"><h3>generate-trade-plans</h3><div class="usage"><code>(generate-trade-plans merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Generate all possible trade plans for this <code>merchant</code> and this <code>commodity</code> in this <code>world</code>.</p> <p>Returned plans are maps with keys:</p> <ul> diff --git a/docs/codox/the-great-game.merchants.strategies.simple.html b/docs/codox/the-great-game.merchants.strategies.simple.html index ca81e5b..d5ba1e3 100644 --- a/docs/codox/the-great-game.merchants.strategies.simple.html +++ b/docs/codox/the-great-game.merchants.strategies.simple.html @@ -1,4 +1,4 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.strategies.simple documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4 current"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-move-merchant"><div class="inner"><span>move-merchant</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy"><div class="inner"><span>plan-and-buy</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-re-plan"><div class="inner"><span>re-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy"><div class="inner"><span>sell-and-buy</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.strategies.simple</h1><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p> +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.strategies.simple documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4 current"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-move-merchant"><div class="inner"><span>move-merchant</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy"><div class="inner"><span>plan-and-buy</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-re-plan"><div class="inner"><span>re-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy"><div class="inner"><span>sell-and-buy</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.strategies.simple</h1><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p> <p>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.</p></div></div><div class="public anchor" id="var-move-merchant"><h3>move-merchant</h3><div class="usage"><code>(move-merchant merchant world)</code></div><div class="doc"><div class="markdown"><p>Handle general en route movement of this <code>merchant</code> in this <code>world</code>; return a (partial or full) world like this <code>world</code> but in which the merchant may have been moved ot updated.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L126">view source</a></div></div><div class="public anchor" id="var-plan-and-buy"><h3>plan-and-buy</h3><div class="usage"><code>(plan-and-buy merchant world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, in which this <code>merchant</code> 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.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L17">view source</a></div></div><div class="public anchor" id="var-re-plan"><h3>re-plan</h3><div class="usage"><code>(re-plan merchant world)</code></div><div class="doc"><div class="markdown"><p>Having failed to sell a cargo at current location, re-plan a route to sell the current cargo. Returns a revised world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L65">view source</a></div></div><div class="public anchor" id="var-sell-and-buy"><h3>sell-and-buy</h3><div class="usage"><code>(sell-and-buy merchant world)</code></div><div class="doc"><div class="markdown"><p>Return a new world like this <code>world</code>, in which this <code>merchant</code> has sold their current stock in their current location, and planned a new trade, and bought appropriate stock for it.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L84">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.time.html b/docs/codox/the-great-game.time.html new file mode 100644 index 0000000..76496a1 --- /dev/null +++ b/docs/codox/the-great-game.time.html @@ -0,0 +1,3 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>the-great-game.time documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.time.html#var-canonical-ordering-of-houses"><div class="inner"><span>canonical-ordering-of-houses</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-date-string"><div class="inner"><span>date-string</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day"><div class="inner"><span>day</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day-of-year"><div class="inner"><span>day-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-season"><div class="inner"><span>days-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-week"><div class="inner"><span>days-in-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-of-week"><div class="inner"><span>days-of-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-day-length"><div class="inner"><span>game-day-length</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-start-time"><div class="inner"><span>game-start-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-time"><div class="inner"><span>game-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-now"><div class="inner"><span>now</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-season"><div class="inner"><span>season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-in-year"><div class="inner"><span>seasons-in-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-of-year"><div class="inner"><span>seasons-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-waiting-day.3F"><div class="inner"><span>waiting-day?</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-week"><div class="inner"><span>week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-in-season"><div class="inner"><span>weeks-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-of-season"><div class="inner"><span>weeks-of-season</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.time</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-canonical-ordering-of-houses"><h3>canonical-ordering-of-houses</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The canonical ordering of religious houses.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L26">view source</a></div></div><div class="public anchor" id="var-date-string"><h3>date-string</h3><div class="usage"><code>(date-string game-time)</code></div><div class="doc"><div class="markdown"><p>Return a correctly formatted date for this <code>game-time</code> in the calendar of the Great Place.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L124">view source</a></div></div><div class="public anchor" id="var-day"><h3>day</h3><div class="usage"><code>(day game-time)</code></div><div class="doc"><div class="markdown"><p>Day of the eight-day week represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L100">view source</a></div></div><div class="public anchor" id="var-day-of-year"><h3>day-of-year</h3><h4 class="type">macro</h4><div class="usage"><code>(day-of-year game-time)</code></div><div class="doc"><div class="markdown"><p>The day of the year represented by this <code>game-time</code>, ignoring leap years.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L85">view source</a></div></div><div class="public anchor" id="var-days-in-season"><h3>days-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L75">view source</a></div></div><div class="public anchor" id="var-days-in-week"><h3>days-in-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>This world has an eight day week.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L43">view source</a></div></div><div class="public anchor" id="var-days-of-week"><h3>days-of-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The eight-day week of the game world. This differs from the canonical ordering of houses in that it omits the eye.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L38">view source</a></div></div><div class="public anchor" id="var-game-day-length"><h3>game-day-length</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The Java clock advances in milliseconds, which is fine. But we need game-days to be shorter than real world days. A Witcher 3 game day is 1 hour 36 minutes, or 96 minutes, which is presumably researched. Round it up to 100 minutes for easier calculation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L8">view source</a></div></div><div class="public anchor" id="var-game-start-time"><h3>game-start-time</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The start time of this run.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L4">view source</a></div></div><div class="public anchor" id="var-game-time"><h3>game-time</h3><div class="usage"><code>(game-time)</code><code>(game-time timestamp)</code></div><div class="doc"><div class="markdown"><p>With no arguments, the current game time. If a Java <code>timestamp</code> value is passed (as a <code>long</code>), the game time represented by that value.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L78">view source</a></div></div><div class="public anchor" id="var-now"><h3>now</h3><div class="usage"><code>(now)</code></div><div class="doc"><div class="markdown"><p>For now, we’ll use Java timestamp for time; ultimately, we need a concept of game-time which allows us to drive day/night cycle, seasons, et cetera, but what matters about time is that it is a value which increases.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L18">view source</a></div></div><div class="public anchor" id="var-season"><h3>season</h3><div class="usage"><code>(season game-time)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L117">view source</a></div></div><div class="public anchor" id="var-seasons-in-year"><h3>seasons-in-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Nine seasons in a year, one for each house (although the order is different.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L60">view source</a></div></div><div class="public anchor" id="var-seasons-of-year"><h3>seasons-of-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The ordering of seasons in the year is different from the canonical ordering of the houses, for reasons of the agricultural cycle.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L47">view source</a></div></div><div class="public anchor" id="var-waiting-day.3F"><h3>waiting-day?</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Does this <code>game-time</code> represent a waiting day?</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L90">view source</a></div></div><div class="public anchor" id="var-week"><h3>week</h3><div class="usage"><code>(week game-time)</code></div><div class="doc"><div class="markdown"><p>Week of season represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L108">view source</a></div></div><div class="public anchor" id="var-weeks-in-season"><h3>weeks-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L70">view source</a></div></div><div class="public anchor" id="var-weeks-of-season"><h3>weeks-of-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L65">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.utils.html b/docs/codox/the-great-game.utils.html index b23284d..84eba13 100644 --- a/docs/codox/the-great-game.utils.html +++ b/docs/codox/the-great-game.utils.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.utils.html#var-cyclic.3F"><div class="inner"><span>cyclic?</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-deep-merge"><div class="inner"><span>deep-merge</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-make-target-filter"><div class="inner"><span>make-target-filter</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.utils</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-cyclic.3F"><h3>cyclic?</h3><div class="usage"><code>(cyclic? route)</code></div><div class="doc"><div class="markdown"><p>True if two or more elements of <code>route</code> are identical</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L3">view source</a></div></div><div class="public anchor" id="var-deep-merge"><h3>deep-merge</h3><div class="usage"><code>(deep-merge & maps)</code></div><div class="doc"><div class="markdown"><p>Recursively merges maps. Stolen from <a href="https://dnaeon.github.io/recursively-merging-maps-in-clojure/">https://dnaeon.github.io/recursively-merging-maps-in-clojure/</a></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L8">view source</a></div></div><div class="public anchor" id="var-make-target-filter"><h3>make-target-filter</h3><div class="usage"><code>(make-target-filter targets)</code></div><div class="doc"><div class="markdown"><p>Construct a filter which, when applied to a list of maps, will pass those which match these <code>targets</code>, where each target is a tuple [key value].</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L18">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.utils.html#var-cyclic.3F"><div class="inner"><span>cyclic?</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-deep-merge"><div class="inner"><span>deep-merge</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-make-target-filter"><div class="inner"><span>make-target-filter</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.utils</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-cyclic.3F"><h3>cyclic?</h3><div class="usage"><code>(cyclic? route)</code></div><div class="doc"><div class="markdown"><p>True if two or more elements of <code>route</code> are identical</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L3">view source</a></div></div><div class="public anchor" id="var-deep-merge"><h3>deep-merge</h3><div class="usage"><code>(deep-merge & maps)</code></div><div class="doc"><div class="markdown"><p>Recursively merges maps. Stolen from <a href="https://dnaeon.github.io/recursively-merging-maps-in-clojure/">https://dnaeon.github.io/recursively-merging-maps-in-clojure/</a></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L8">view source</a></div></div><div class="public anchor" id="var-make-target-filter"><h3>make-target-filter</h3><div class="usage"><code>(make-target-filter targets)</code></div><div class="doc"><div class="markdown"><p>Construct a filter which, when applied to a list of maps, will pass those which match these <code>targets</code>, where each target is a tuple [key value].</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L18">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.location.html b/docs/codox/the-great-game.world.location.html new file mode 100644 index 0000000..e3836dc --- /dev/null +++ b/docs/codox/the-great-game.world.location.html @@ -0,0 +1,3 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>the-great-game.world.location documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.location.html#var-distance-between"><div class="inner"><span>distance-between</span></div></a></li><li class="depth-1"><a href="the-great-game.world.location.html#var-get-coords"><div class="inner"><span>get-coords</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.location</h1><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="public anchor" id="var-distance-between"><h3>distance-between</h3><div class="usage"><code>(distance-between location-1 location-2)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L31">view source</a></div></div><div class="public anchor" id="var-get-coords"><h3>get-coords</h3><div class="usage"><code>(get-coords location)</code></div><div class="doc"><div class="markdown"><p>Return the coordinates in the game world of <code>location</code>, 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 <code>:location</code> property whose value is one of the above.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L13">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.routes.html b/docs/codox/the-great-game.world.routes.html index 4694894..f5a5455 100644 --- a/docs/codox/the-great-game.world.routes.html +++ b/docs/codox/the-great-game.world.routes.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.routes documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-route"><div class="inner"><span>find-route</span></div></a></li><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-routes"><div class="inner"><span>find-routes</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.routes</h1><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="public anchor" id="var-find-route"><h3>find-route</h3><div class="usage"><code>(find-route world-or-routes from to)</code></div><div class="doc"><div class="markdown"><p>Find a single route from <code>from</code> to <code>to</code> in this <code>world-or-routes</code>, which may be either a world as defined in <a href="the-great-game.world.world.html">the-great-game.world.world</a> or else a sequence of tuples of keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L46">view source</a></div></div><div class="public anchor" id="var-find-routes"><h3>find-routes</h3><div class="usage"><code>(find-routes routes from)</code><code>(find-routes routes from to)</code><code>(find-routes routes from to steps)</code></div><div class="doc"><div class="markdown"><p>Find routes from among these <code>routes</code> from <code>from</code>; if <code>to</code> is supplied, to <code>to</code>, by breadth-first search.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L5">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.routes documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-route"><div class="inner"><span>find-route</span></div></a></li><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-routes"><div class="inner"><span>find-routes</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.routes</h1><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="public anchor" id="var-find-route"><h3>find-route</h3><div class="usage"><code>(find-route world-or-routes from to)</code></div><div class="doc"><div class="markdown"><p>Find a single route from <code>from</code> to <code>to</code> in this <code>world-or-routes</code>, which may be either a world as defined in <a href="the-great-game.world.world.html">the-great-game.world.world</a> or else a sequence of tuples of keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L46">view source</a></div></div><div class="public anchor" id="var-find-routes"><h3>find-routes</h3><div class="usage"><code>(find-routes routes from)</code><code>(find-routes routes from to)</code><code>(find-routes routes from to steps)</code></div><div class="doc"><div class="markdown"><p>Find routes from among these <code>routes</code> from <code>from</code>; if <code>to</code> is supplied, to <code>to</code>, by breadth-first search.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L5">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.run.html b/docs/codox/the-great-game.world.run.html index 1d3b216..0aca065 100644 --- a/docs/codox/the-great-game.world.run.html +++ b/docs/codox/the-great-game.world.run.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.run documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.run.html#var-init"><div class="inner"><span>init</span></div></a></li><li class="depth-1"><a href="the-great-game.world.run.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.run</h1><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="public anchor" id="var-init"><h3>init</h3><div class="usage"><code>(init)</code><code>(init config)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L11">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>The pipeline to run the simulation each game day. Returns a world like this world, with all the various active elements updated. The optional <code>date</code> argument, if supplied, is set as the <code>:date</code> of the returned world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L26">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.run documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.run.html#var-init"><div class="inner"><span>init</span></div></a></li><li class="depth-1"><a href="the-great-game.world.run.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.run</h1><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="public anchor" id="var-init"><h3>init</h3><div class="usage"><code>(init)</code><code>(init config)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L11">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>The pipeline to run the simulation each game day. Returns a world like this world, with all the various active elements updated. The optional <code>date</code> argument, if supplied, is set as the <code>:date</code> of the returned world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L26">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.world.html b/docs/codox/the-great-game.world.world.html index fcec6c3..c417377 100644 --- a/docs/codox/the-great-game.world.world.html +++ b/docs/codox/the-great-game.world.world.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.world documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.0</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2 branch"><a href="the-great-game.core.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>core</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3 current"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.world.html#var-actual-price"><div class="inner"><span>actual-price</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-default-world"><div class="inner"><span>default-world</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.world</h1><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="public anchor" id="var-actual-price"><h3>actual-price</h3><div class="usage"><code>(actual-price world commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the actual current price of this <code>commodity</code> in this <code>city</code> given this <code>world</code>. <strong>NOTE</strong> that merchants can only know the actual prices in the city in which they are currently located.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L178">view source</a></div></div><div class="public anchor" id="var-default-world"><h3>default-world</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>A basic world for testing concepts</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L10">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> with only the <code>:date</code> to this <code>date</code> (or id <code>date</code> not supplied, the current value incremented by one). For running other aspects of the simulation, see <a href="the-great-game.world.run.html">the-great-game.world.run</a>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L185">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.world documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3 current"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.world.html#var-actual-price"><div class="inner"><span>actual-price</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-default-world"><div class="inner"><span>default-world</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.world</h1><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="public anchor" id="var-actual-price"><h3>actual-price</h3><div class="usage"><code>(actual-price world commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the actual current price of this <code>commodity</code> in this <code>city</code> given this <code>world</code>. <strong>NOTE</strong> that merchants can only know the actual prices in the city in which they are currently located.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L178">view source</a></div></div><div class="public anchor" id="var-default-world"><h3>default-world</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>A basic world for testing concepts</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L10">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> with only the <code>:date</code> to this <code>date</code> (or id <code>date</code> not supplied, the current value incremented by one). For running other aspects of the simulation, see <a href="the-great-game.world.run.html">the-great-game.world.run</a>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L185">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/src/the_great_game/agent/agent.clj b/src/the_great_game/agent/agent.clj index b9232ef..7a17103 100644 --- a/src/the_great_game/agent/agent.clj +++ b/src/the_great_game/agent/agent.clj @@ -2,3 +2,6 @@ "Anything in the game world with agency") ;; hierarchy of needs probably gets implemented here +;; I'm probably going to want to defprotocol stuff, to define the hierarchy +;; of things in the gameworld; either that or drop to Java, wich I'd rather not do. + diff --git a/src/the_great_game/gossip/gossip.clj b/src/the_great_game/gossip/gossip.clj index 13aa961..af743f3 100644 --- a/src/the_great_game/gossip/gossip.clj +++ b/src/the_great_game/gossip/gossip.clj @@ -1,6 +1,7 @@ (ns the-great-game.gossip.gossip "Interchange of news events between gossip agents" - (:require [the-great-game.utils :refer [deep-merge]])) + (:require [the-great-game.utils :refer [deep-merge]] + [the-great-game.gossip.news-items :refer [learn-news-item]])) ;; Note that habitual travellers are all gossip agents; specifically, at this ;; stage, that means merchants. When merchants are moved we also need to diff --git a/src/the_great_game/gossip/news_items.clj b/src/the_great_game/gossip/news_items.clj index bcb0398..4591f3a 100644 --- a/src/the_great_game/gossip/news_items.clj +++ b/src/the_great_game/gossip/news_items.clj @@ -1,6 +1,7 @@ (ns the-great-game.gossip.news-items "Categories of news events interesting to gossip agents" - (:require [clojure.math.numeric-tower :refer [expt sqrt]])) + (:require [the-great-game.world.location :refer [distance-between]] + [the-great-game.time :refer [now]])) ;; The ideas here are based on the essay 'The spread of knowledge in a large ;; game world', q.v.; they've advanced a little beyond that and will doubtless @@ -20,14 +21,26 @@ their `verbs`. The `keys` associated with each topic are the extra pieces of information required to give context to a gossip item. Generally: - * `actor` is the id of the character who performed the action; - * `other` is the id of the character on whom the action was performed; + * `actor` is the id of the character who it is reported performed the + action; + * `other` is the id of the character on whom it is reported the action + was performed; * `location` is the place at which the action was performed; - * `object` is an object (or possibly list of objects?) relevant to the action; + * `object` is an object (or possibly list of objects?) relevant to the + action; * `price` is special to buy/sell, but of significant interest to merchants. #### Notes: + ##### Characters: + + *TODO* but note that at most all the receiver can learn about a character + from a news item is what the giver knows about that character, degraded by + what the receiver finds interesting about them. If we just pass the id here, + then either the receiver knows everything in the database about the + character, or else the receiver knows nothing at all about the character. + Neither is desirable. Further thought needed. + ##### Locations: A 'location' value is a list comprising at most the x/y coordinate location @@ -62,6 +75,7 @@ :plot {:verb :plot :keys [:actor :other :object :location]} ;; Rapes are interesting. :rape {:verb :rape :keys [:actor :other :location] + ;; Should you also infer from rape that actor is male and adult? :inferences [{:verb :attack} {:verb :sex} {:verb :sex :actor :other :other :actor}]} @@ -84,7 +98,9 @@ (defn interest-in-character "Integer representation of how interesting this `character` is to this - `gossip`." + `gossip`. + *TODO:* this assumes that characters are passed as keywords, but, as + documented above, they probably have to be maps, to allow for degradation." [gossip character] (count (concat @@ -97,99 +113,46 @@ [gossip character] (> (interest-in-character gossip character) 0)) -(defn get-coords - "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." - [location] - (cond - (empty? location) nil - (map? location) - (cond - (and (number? (:x location)) (number? (:y location))) - location - (:location location) - (:location location)) - :else - (get-coords (first (remove keyword? location))))) - -;; (get-coords {:x 5 :y 7}) -;; (get-coords [{:x -4 :y 55} :auchencairn :galloway :scotland]) - -(defn distance-between - [location-1 location-2] - (let [c1 (get-coords location-1) - c2 (get-coords location-2)] - (if - (and c1 c2) - (sqrt (+ (expt (- (:x c1) (:x c2)) 2) (expt (- (:y c1) (:y c2)) 2)))))) - -;; (distance-between {:x 5 :y 5} {:x 2 :y 2}) -;; (distance-between {:x 5 :y 5} {:x 2 :y 5}) -;; (distance-between {:x 5 :y 5} [{:x -4 :y 55} :auchencairn :galloway :scotland]) -;; (distance-between {:x 5 :y 5} [:auchencairn :galloway :scotland]) - (defn interest-in-location "Integer representation of how interesting this `location` is to this `gossip`." [gossip location] (cond + (and (map? location) (number? (:x location)) (number? (:y location))) + (if-let [home (:home gossip)] + (let [d (distance-between location home) + i (/ 10000 d) ;; 10000 at metre scale is 10km; interest should + ;;fall of with distance from home, but possibly on a log scale + ] + (if (> i 1) i 0)) + 0) (coll? location) (reduce + (map #(interest-in-location gossip %) location)) - (and (map? location) (:x location) (:y location)) - (if-let [home (:home gossip)] - (let [d (distance-between location home) - i (/ 10000 d) ;; 10000 at metre scale is 10km; interest should - ;;fall of with distance from home, but possibly on a log scale - ] - (if (i > 1) i 0) - i)) :else (count (filter #(some (fn [x] (= x location)) (:location %)) (:knowledge gossip))))) -;; (interest-in-location -;; {:knowledge [{:verb :steal -;; :actor :albert -;; :other :belinda -;; :object :foo -;; :location [{:x 35 :y 23} :auchencairn :galloway]}]} -;; :galloway) - -;; (interest-in-location -;; {:knowledge [{:verb :steal -;; :actor :albert -;; :other :belinda -;; :object :foo -;; :location [{:x 35 :y 23} :auchencairn :galloway]}]} -;; [:galloway :scotland]) - - -;; (interest-in-location -;; {:knowledge [{:verb :steal -;; :actor :albert -;; :other :belinda -;; :object :foo -;; :location [{:x 35 :y 23} :auchencairn :galloway]}]} -;; :dumfries) - -;; (interest-in-location -;; {:home {:x 35 :y 23}} -;; {:x 35 :y 24}) - (defn interesting-location? "True if the location of this news `item` is interesting to this `gossip`." [gossip item] (> (interest-in-location gossip (:location item)) 1)) +(defn interesting-object? + [gossip object] + ;; TODO: Not yet (really) implemented + true) + +(defn interesting-topic? + [gossip topic] + ;; TODO: Not yet (really) implemented + true) + (defn interesting-item? "True if anything about this news `item` is interesting to this `gossip`." [gossip item] @@ -212,18 +175,44 @@ #(= % :verb) (keys rule)))))) -;; (infer {:verb :marry :actor :adam :other :belinda} -;; {:verb :marry :actor :other :other :actor}) -;; (infer {:verb :rape :actor :adam :other :belinda} -;; {:verb :attack}) -;; (infer {:verb :rape :actor :adam :other :belinda} -;; {:verb :sex :actor :other :other :actor}) +(declare learn-news-item) + +(defn make-all-inferences + "Return a list of knowledge entries inferred from this news `item` by this + `gossip`." + [item] + (set + (reduce + concat + (map + #(:knowledge (learn-news-item {} (infer item %) false)) + (:inferences (news-topics (:verb item))))))) + +(defn degrade-character + "Return a character specification like this `character`, but comprising + only those properties this `gossip` is interested in." + [gossip character] + ;; TODO: Not yet (really) implemented + character) + +(defn degrade-location + "Return a location specification like this `location`, but comprising + only those elements this `gossip` is interested in. If none, return + `nil`." + [gossip location] + (let [l (if + (coll? location) + (filter + #(when (interesting-location? gossip %) %) + location))] + (when-not (empty? l) l))) (defn learn-news-item "Return a gossip like this `gossip`, which has learned this news `item` if it is of interest to them." + ;; TODO: Not yet implemented ([gossip item] - (learn-news-item gossip item false)) + (learn-news-item gossip item true)) ([gossip item follow-inferences?] (if (interesting-item? gossip item) @@ -235,17 +224,21 @@ (number? (:nth-hand item)) (inc (:nth-hand item)) 1) - ;; ought to degrate the location + :date (if (number? (:date item)) (:date item) (now)) + :location (degrade-location gossip (:location item)) + ;; ought to degratde the location ;; ought to maybe-degrade characters we're not yet interested in ) ;; ought not to add knowledge items we already have, except ;; to replace if new item is of increased specificity (:knowledge gossip)))] (if follow-inferences? - (reduce - merge + (assoc g - (map - #(learn-news-item gossip (infer item %) false) - (:inferences (news-topics (:verb item)))))))))) + :knowledge + (concat (:knowledge g) (make-all-inferences item))) + g)) + gossip))) + + diff --git a/src/the_great_game/time.clj b/src/the_great_game/time.clj new file mode 100644 index 0000000..2378937 --- /dev/null +++ b/src/the_great_game/time.clj @@ -0,0 +1,144 @@ +(ns the-great-game.time + (:require [clojure.string :as s])) + +(def game-start-time + "The start time of this run." + (System/currentTimeMillis)) + +(def ^:const game-day-length + "The Java clock advances in milliseconds, which is fine. + But we need game-days to be shorter than real world days. + A Witcher 3 game day is 1 hour 36 minutes, or 96 minutes, which is + presumably researched. Round it up to 100 minutes for easier + calculation." + (* 100 ;; minutes per game day + 60 ;; seconds per minute + 1000)) ;; milliseconds per second + +(defn now + "For now, we'll use Java timestamp for time; ultimately, we need a + concept of game-time which allows us to drive day/night cycle, seasons, + et cetera, but what matters about time is that it is a value which + increases." + [] + (System/currentTimeMillis)) + +(def ^:const canonical-ordering-of-houses + "The canonical ordering of religious houses." + [:eye + :foot + :nose + :hand + :ear + :mouth + :stomach + :furrow + :plough]) + +(def ^:const days-of-week + "The eight-day week of the game world. This differs from the canonical + ordering of houses in that it omits the eye." + (rest canonical-ordering-of-houses)) + +(def ^:const days-in-week + "This world has an eight day week." + (count days-of-week)) + +(def ^:const seasons-of-year + "The ordering of seasons in the year is different from the canonical + ordering of the houses, for reasons of the agricultural cycle." + [:foot + :nose + :hand + :ear + :mouth + :stomach + :plough + :furrow + :eye]) + +(def ^:const seasons-in-year + "Nine seasons in a year, one for each house (although the order is + different." + (count seasons-of-year)) + +(def ^:const weeks-of-season + "To fit nine seasons of eight day weeks into 365 days, each must be of + five weeks." + [:first :second :third :fourth :fifth]) + +(def ^:const weeks-in-season + "To fit nine seasons of eight day weeks into 365 days, each must be of + five weeks." + (count weeks-of-season)) + +(def ^:const days-in-season + (* weeks-in-season days-in-week)) + +(defn game-time + "With no arguments, the current game time. If a Java `timestamp` value is + passed (as a `long`), the game time represented by that value." + ([] (game-time (now))) + ([timestamp] + (- timestamp game-start-time))) + +(defmacro day-of-year + "The day of the year represented by this `game-time`, ignoring leap years." + [game-time] + `(mod (long (/ ~game-time game-day-length)) 365)) + +(def waiting-day? + "Does this `game-time` represent a waiting day?" + (memoize + ;; we're likely to call this several times in quick succession on the + ;; same timestamp + (fn [game-time] + (>= + (day-of-year game-time) + (* seasons-in-year weeks-in-season days-in-week))))) + +(defn day + "Day of the eight-day week represented by this `game-time`." + [game-time] + (let [day-of-week (mod (day-of-year game-time) days-in-week)] + (if (waiting-day? game-time) + (nth weeks-of-season day-of-week) + (nth days-of-week day-of-week)))) + +(defn week + "Week of season represented by this `game-time`." + [game-time] + (let [day-of-season (mod (day-of-year game-time) days-in-season) + week (/ day-of-season days-in-week)] + (if (waiting-day? game-time) + :waiting + (nth weeks-of-season week)))) + +(defn season + [game-time] + (let [season (int (/ (day-of-year game-time) days-in-season))] + (if (waiting-day? game-time) + :waiting + (nth seasons-of-year season)))) + +(defn date-string + "Return a correctly formatted date for this `game-time` in the calendar of + the Great Place." + [game-time] + (s/join + " " + (if + (waiting-day? game-time) + [(s/capitalize + (name + (nth + weeks-of-season + (mod (day-of-year game-time) days-in-week)))) + "waiting day"] + [(s/capitalize (name (week game-time))) + (s/capitalize (name (day game-time))) + "of the" + (s/capitalize (name (season game-time)))]))) + + + diff --git a/src/the_great_game/world/location.clj b/src/the_great_game/world/location.clj index 6709f30..b7c3fd0 100644 --- a/src/the_great_game/world/location.clj +++ b/src/the_great_game/world/location.clj @@ -1,5 +1,6 @@ (ns the-great-game.world.location - "Functions dealing with location in the world.") + "Functions dealing with location in the world." + (:require [clojure.math.numeric-tower :refer [expt sqrt]])) ;; A 'location' value is a list comprising at most the x/y coordinate location ;; and the ids of the settlement and region (possibly hierarchically) that contain @@ -8,3 +9,29 @@ ;; So location information will degrade progressively as the item is passed along. ;; It is assumed that the `:home` of a character is a location in this sense. + +(defn get-coords + "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." + [location] + (cond + (empty? location) nil + (map? location) + (cond + (and (number? (:x location)) (number? (:y location))) + location + (:location location) + (:location location)) + :else + (get-coords (first (remove keyword? location))))) + +(defn distance-between + [location-1 location-2] + (let [c1 (get-coords location-1) + c2 (get-coords location-2)] + (when + (and c1 c2) + (sqrt (+ (expt (- (:x c1) (:x c2)) 2) (expt (- (:y c1) (:y c2)) 2)))))) diff --git a/test/the_great_game/gossip/gossip_test.clj b/test/the_great_game/gossip/gossip_test.clj new file mode 100644 index 0000000..176fab4 --- /dev/null +++ b/test/the_great_game/gossip/gossip_test.clj @@ -0,0 +1,4 @@ +(ns the-great-game.gossip.gossip-test + (:require [clojure.test :refer :all] + [the-great-game.gossip.gossip :refer :all])) + diff --git a/test/the_great_game/gossip/news_items_test.clj b/test/the_great_game/gossip/news_items_test.clj new file mode 100644 index 0000000..908e330 --- /dev/null +++ b/test/the_great_game/gossip/news_items_test.clj @@ -0,0 +1,132 @@ +(ns the-great-game.gossip.news-items-test + (:require [clojure.test :refer :all] + [the-great-game.gossip.news-items :refer :all])) + + +(deftest location-test + (testing "Interest in locations" + (let [expected 1 + actual (interest-in-location + {:knowledge [{:verb :steal + :actor :albert + :other :belinda + :object :foo + :location [{:x 35 :y 23} :auchencairn :galloway]}]} + :galloway)] + (is (= actual expected))) + (let [expected 2 + actual (interest-in-location + {:knowledge [{:verb :steal + :actor :albert + :other :belinda + :object :foo + :location [{:x 35 :y 23} :auchencairn :galloway :scotland]}]} + [:galloway :scotland])] + (is (= actual expected))) + (let [expected 0 + actual (interest-in-location + {:knowledge [{:verb :steal + :actor :albert + :other :belinda + :object :foo + :location [{:x 35 :y 23} :auchencairn :galloway]}]} + [:dumfries])] + (is (= actual expected))) + (let [expected 7071.067811865475 + actual (interest-in-location + {:home [{:x 35 :y 23}]} + [{:x 34 :y 24}])] + (is (= actual expected) + "TODO: 7071.067811865475 is actually a bad answer.")) + (let [expected 0 + actual (interest-in-location + {:home [{:x 35 :y 23}]} + [{:x 34 :y 24000}])] + (is (= actual expected) + "Too far apart (> 10000).")) + (let [expected true + actual (interesting-location? + {:knowledge [{:verb :steal + :actor :albert + :other :belinda + :object :foo + :location [{:x 35 :y 23} :auchencairn :galloway]}]} + :galloway)] + (is (= actual expected))) + (let [expected true + actual (interesting-location? + {:knowledge [{:verb :steal + :actor :albert + :other :belinda + :object :foo + :location [{:x 35 :y 23} :auchencairn :galloway]}]} + [:galloway :scotland])] + (is (= actual expected))) + (let [expected false + actual (interesting-location? + {:knowledge [{:verb :steal + :actor :albert + :other :belinda + :object :foo + :location [{:x 35 :y 23} :auchencairn :galloway]}]} + [:dumfries])] + (is (= actual expected))) + (let [expected true + actual (interesting-location? + {:home [{:x 35 :y 23}]} + [{:x 34 :y 24}])] + (is (= actual expected))) + (let [expected false + actual (interesting-location? + {:home [{:x 35 :y 23}]} + [{:x 34 :y 240000}])] + (is (= actual expected)))) + (testing "Degrading locations" + (let [expected [:galloway] + actual (degrade-location + {:home [{0 0} :test-home :galloway]} + [{-4 55} :auchencairn :galloway])] + (is (= actual expected))) + (let [expected nil + actual (degrade-location + {:home [{0 0} :test-home :galloway]} + [:froboz])] + (is (= actual expected))))) + +(deftest inference-tests + (testing "Ability to infer new knowledge from news items: single rule tests" + (let [expected {:verb :marry, :actor :belinda, :other :adam} + actual (infer {:verb :marry :actor :adam :other :belinda} + {:verb :marry :actor :other :other :actor})] + (is (= actual expected))) + (let [expected {:verb :attack, :actor :adam, :other :belinda} + actual (infer {:verb :rape :actor :adam :other :belinda} + {:verb :attack})] + (is (= actual expected))) + (let [expected {:verb :sex, :actor :belinda, :other :adam} + actual (infer {:verb :rape :actor :adam :other :belinda} + {:verb :sex :actor :other :other :actor})] + (is (= actual expected)))) + (testing "Ability to infer new knowledge from news items: all applicable rules" + (let [expected #{{:verb :sex, :actor :belinda, :other :adam, :location nil, :nth-hand 1} + {:verb :sex, :actor :adam, :other :belinda, :location nil, :nth-hand 1} + {:verb :attack, :actor :adam, :other :belinda, :location nil, :nth-hand 1}} + ;; dates will not be and cannot be expected to be equal + actual (make-all-inferences + {:verb :rape :actor :adam :other :belinda :location :test-home}) + actual' (map #(dissoc % :date) actual)] + (is (= actual' expected))))) + +;; (deftest learn-tests +;; (testing "Learning from an interesting news item." +;; (let [expected {:home [{0 0} :test-home], +;; :knowledge ({:verb :rape, :actor :adam, :other :belinda, :location nil, :nth-hand 1} +;; {:verb :sex, :actor :belinda, :other :adam, :location nil, :nth-hand 1} +;; {:verb :attack, :actor :adam, :other :belinda, :location nil, :nth-hand 1} +;; {:verb :sex, :actor :adam, :other :belinda, :location nil, :nth-hand 1})} +;; actual (learn-news-item +;; {:home [{0, 0} :test-home] +;; :knowledge []} +;; {:verb :rape :actor :adam :other :belinda :location [:test-home]}) +;; actual' (assoc actual :knowledge (map #(dissoc % :date) (:knowledge actual)))] +;; (is (= actual' expected))))) diff --git a/test/the_great_game/time_test.clj b/test/the_great_game/time_test.clj new file mode 100644 index 0000000..4727fdd --- /dev/null +++ b/test/the_great_game/time_test.clj @@ -0,0 +1,79 @@ +(ns the-great-game.time-test + (:require [clojure.test :refer :all] +;; [clojure.core.async :refer [thread <!]] + [the-great-game.time :refer :all])) + +(deftest now-tests + (testing "Time progresses" + (let [t1 (now)] + (is (> t1 game-start-time)) + (Thread/sleep 1000) + (is (> (now) t1))))) + +(deftest game-time-tests + (testing "Getting game-time" + (is (= (game-time (inc game-start-time)) 1)))) + +(deftest calendar-tests + (testing "In-game calendar functions" + (let [expected :foot + actual (day 0)] + (is (= actual expected))) + (let [expected :stomach + actual (day (* 5 game-day-length))] + (is (= actual expected))) + (let [expected :foot + actual (day (* days-in-week game-day-length))] + (is (= actual expected))) + (let [expected :first ;; waiting day + actual (day (* 360 game-day-length))] + (is (= actual expected))) + (let [expected :first + actual (week 0)] + (is (= actual expected))) + (let [expected :second + actual (week (* days-in-week game-day-length))] + (is (= actual expected))) + (let [expected :first + actual (week (* days-in-season game-day-length))] + (is (= actual expected))) + (let [expected :foot + actual (season 0)] + (is (= actual expected))) + (let [expected :mouth + actual (season (* 180 game-day-length))] + (is (= actual expected))) + (let [expected :eye + actual (season (* 359 game-day-length))] + (is (= actual expected))) + (let [expected :waiting + actual (season (* 360 game-day-length))] + (is (= actual expected))) + (let [expected :foot + actual (season (* 365 game-day-length))] + (is (= actual expected))))) + +(deftest date-string-tests + (testing "Date-string formatting" + (let [expected "First Foot of the Foot" + actual (date-string 0)] + (is (= actual expected))) + (let [expected "First Foot of the Nose" + actual (date-string + (* days-in-season game-day-length))] + (is (= actual expected))) + (let [expected "Third Mouth of the Mouth" + actual (date-string (* 180 game-day-length))] + (is (= actual expected))) + (let [expected "Fifth Plough of the Eye" + actual (date-string (* 359 game-day-length))] + (is (= actual expected))) + (let [expected "First waiting day" + actual (date-string (* 360 game-day-length))] + (is (= actual expected))) + (let [expected "First Foot of the Foot" + actual (date-string (* 365 game-day-length))] + (is (= actual expected))))) + + + diff --git a/test/the_great_game/world/location_test.clj b/test/the_great_game/world/location_test.clj new file mode 100644 index 0000000..7303e1f --- /dev/null +++ b/test/the_great_game/world/location_test.clj @@ -0,0 +1,36 @@ +(ns the-great-game.world.location-test + (:require [clojure.test :refer :all] + [the-great-game.world.location :refer :all])) + +(deftest get-coords-test + (testing "Get coordinates of location" + (let [expected {:x 5 :y 7} + actual (get-coords {:x 5 :y 7})] + (is (= actual expected))) + (let [expected {:x -4 :y 55} + actual (get-coords [{:x -4 :y 55} :auchencairn :galloway :scotland])] + (is (= actual expected))) + (let [expected nil + actual (get-coords [:auchencairn :galloway :scotland])] + (is (= actual expected))) + )) + +(deftest distance-test + (testing "Distance between two locations" + (let [expected 4.242640687119285 + actual (distance-between {:x 5 :y 5} {:x 2 :y 2})] + (is (= actual expected))) + (let [expected 3 + actual (distance-between {:x 5 :y 5} {:x 2 :y 5})] + (is (= actual expected))) + (let [expected 50.80354318352215 + actual (distance-between + {:x 5 :y 5} + [{:x -4 :y 55} :auchencairn :galloway :scotland])] + (is (= actual expected))) + (let [expected nil + actual (distance-between + {:x 5 :y 5} + [:auchencairn :galloway :scotland])] + (is (= actual expected))) + )) From 3fcf16e0798470601a27c49d5ba3103e8560630d Mon Sep 17 00:00:00 2001 From: Simon Brooke <simon@journeyman.cc> Date: Wed, 15 Apr 2020 16:40:59 +0100 Subject: [PATCH 06/12] Much work on tidying documentation, not yet complete. --- .gitignore | 2 + doc/Baking-the-world.md | 81 +++++ doc/Populating-a-game-world.md | 112 +++++++ doc/Settling-a-game-world.md | 87 +++++ ...read-of-knowledge-in-a-large-game-world.md | 64 ++++ doc/Voice-acting-considered-harmful.md | 90 ++++++ doc/{on-dying.ods => on-dying.md} | 0 doc/sandbox.md | 6 +- docs/cloverage/index.html | 46 ++- .../the_great_game/gossip/gossip.clj.html | 129 ++++---- .../the_great_game/gossip/news_items.clj.html | 266 ++++++++-------- docs/cloverage/the_great_game/time.clj.html | 2 +- docs/codox/Baking-the-world.html | 54 ++++ docs/codox/Populating-a-game-world.html | 297 ++++++++++++++++++ docs/codox/Settling-a-game-world.html | 68 ++++ ...ad-of-knowledge-in-a-large-game-world.html | 41 +++ .../Voice-acting-considered-harmful.html | 49 +++ docs/codox/economy.html | 2 +- docs/codox/index.html | 2 +- docs/codox/intro.html | 2 +- .../modelling_trading_cost_and_risk.html | 2 +- docs/codox/naming-of-characters.html | 2 +- docs/codox/on-dying.html | 9 + docs/codox/orgnic-quests.html | 2 +- docs/codox/sandbox.html | 8 +- docs/codox/sexual-dimorphism.html | 2 +- docs/codox/the-great-game.agent.agent.html | 2 +- docs/codox/the-great-game.gossip.gossip.html | 2 +- .../the-great-game.gossip.news-items.html | 2 +- .../the-great-game.merchants.markets.html | 2 +- ...e-great-game.merchants.merchant-utils.html | 2 +- .../the-great-game.merchants.merchants.html | 2 +- .../the-great-game.merchants.planning.html | 2 +- ...reat-game.merchants.strategies.simple.html | 2 +- docs/codox/the-great-game.time.html | 2 +- docs/codox/the-great-game.utils.html | 2 +- docs/codox/the-great-game.world.location.html | 2 +- docs/codox/the-great-game.world.routes.html | 2 +- docs/codox/the-great-game.world.run.html | 2 +- docs/codox/the-great-game.world.world.html | 2 +- docs/index.html | 7 +- src/the_great_game/gossip/news_items.clj | 10 +- .../the_great_game/gossip/news_items_test.clj | 30 +- 43 files changed, 1233 insertions(+), 267 deletions(-) create mode 100644 doc/Baking-the-world.md create mode 100644 doc/Populating-a-game-world.md create mode 100644 doc/Settling-a-game-world.md create mode 100644 doc/The-spread-of-knowledge-in-a-large-game-world.md create mode 100644 doc/Voice-acting-considered-harmful.md rename doc/{on-dying.ods => on-dying.md} (100%) create mode 100644 docs/codox/Baking-the-world.html create mode 100644 docs/codox/Populating-a-game-world.html create mode 100644 docs/codox/Settling-a-game-world.html create mode 100644 docs/codox/The-spread-of-knowledge-in-a-large-game-world.html create mode 100644 docs/codox/Voice-acting-considered-harmful.html create mode 100644 docs/codox/on-dying.html diff --git a/.gitignore b/.gitignore index 0910231..b0ebaf1 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ pom.xml.asc .nrepl-port .cpcache/ *~ + +doc/.~lock.Population.ods# diff --git a/doc/Baking-the-world.md b/doc/Baking-the-world.md new file mode 100644 index 0000000..c41c6cc --- /dev/null +++ b/doc/Baking-the-world.md @@ -0,0 +1,81 @@ +# Baking the world + +#### Wednesday, 8 May 2019 + + + + In previous posts, I've described algorithms for dynamically [populating](Populating-a-game-world.html) and dynamically [settling](Settling-a-game-world.html) a game world. But at kilometre scale (and I think we need a higher resolution than that - something closer to hectare scale), settling the British Isles using my existing algorithms takes about 24 hours of continuous compute on an eight core, 3GHz machine. You cannot do that every time you launch a new game. + + So the game development has to run in four phases: the first three phases happen during development, to create a satisfactory, already populated and settled, initial world for the game to start from. This is particularly necessary if hand-crafted buildings and environments are going to be added to the world; the designers of those buildings and environments have to be able to see the context into which their models must fit. + +## Phase one: proving - the procedural world + + I'm going to call the initial phase of the game run - the phase which takes place before the quest team write their quests and the art department adds their hand-crafted models - 'proving', as when dough has been been made and set aside to rise. + + Then, when the landscape has developed - the areas of forest, scrub, open meadow, moorland, savanah and desert are determined, the rivers plotted, the settlers moved in, their trades determined and their settlements allocated, the roadways which link settlements routed, river crossings and ports defined - the proving process ends, and the world is turned over to the plot-writers, quest builders and designers, for a process we can see as analogous to kneading. + + But, before going there, to summarise the proving stage. The inputs are: + +1. A raster height map (although this could be randomly generated using any one of many fractal algorithms) - this probably uses ideas from [tessellated multi-layer height map](../../2013/07/tessellated-multi-layer-height-map.html); +1. Optionally, a raster rainfall map at 1km resolution (although my personal preference is that this should be generated procedurally from the height map). + + The outputs are + +1. A vector drainage map (rivers); +1. A raster biome map at roughly 1 km resolution (it might be anything between hectare resolution and 1Km resolution, but obviously higher resolution takes more storage); +1. A database of settlers and their settlements, such that the settlements have x,y co-ordinates; +1. A vector road map. + + In this sense, the 'biome map' is just the end state of a [Microworld](../../2014/08/modelling-settlement-with-cellular.html) run. The 'biomes' include things like 'forest', 'scrub', 'heath', 'pasture', but they may also include human settlement, and even settlement by different cultural groups. + + This gives us all we need to vegetate and furnish the world. When rendering each square metre we have + +1. The x,y coordinates, obviously; +1. The altitude, taken from the height map; +1. The biome, taken from the biome map; +1. The biomes of adjacent cells in the biome map; +1. The proximity of the nearest watercourse; +1. The proximity of the nearest road or pathway; +1. Whether we are inside, or outside, a settlement (where for these purposes, 'settlement' includes enclosed field), and if inside, what type of settlement it is. + + Given these parameters, and using the x, y coordinates as seed of a deterministic pseudo-random number generator, we can generate appropriate vegetation and buildings to render a believable world. The reason for pulling adjacent biomes into the renderer is that sharp transitions from one biome to another - especially ones which align to a rectangular grid - rarely exist in nature, and that consequently most transitions from one biome to another should be gradual. + + Note that proving, although extremely compute intensive, is not necessarily a one-time job. If the designers aren't satisfied with the first world to emerge from this process, they can run it again, and again, to generate a world with which they are satisfied. It's also possible to hand-edit the output of proving, if needed. + + But now, designers and story-writers can see the world in which their creations will be set. + +## Phase two: kneading - making the world fit our needs + + Enough of proving, let's get on to kneading. + + Hand-designed buildings and environments are likely to be needed, or at least useful, for plot; also, particularly, very high status buildings are probably better hand designed. I'm inclined to think that less is more here, for two reasons: + + You cannot hand design a very large world, it's just impossible. How CD Project Red managed with Witcher 3 I don't know, since I understand that is largely hand designed; but that was a very large team, and even so it isn't a world on the scale I'm envisaging. + + Procedurally generated models take a wee bit of compute power to reify, but not a huge amount, and they're trivial to store - you need one single birch leaf model and one single birch-bark texture generator to make every birch tree in the game, and probably a single parameterised tree function can draw every tree of every species (and quite a lot of shrubs and ground-cover plants, too). But once reified, they take no longer to render than a manually crafted model. + + By contrast, a manually crafted model will take a very great deal more space to store, such that being able to render a large world from hand crafted models, without excessive model re-use, isn't going to be possible. + + So it's better in my opinion to put effort into good procedural generation functions, not just for foliage but also for buildings. My reason for using a picture of a medieval bridge at the head of the essay is to illustrate exactly this point: even in the medieval period, bridges comprise a series of repeating modules. Take one arch module and one ramp module from Devorgilla's bridge as models, add texture skins for several different stone types, stretch the modules a little in whatever dimension is needed, and repeat the arch module as many times as needed, and you can create a range of bridges to span many different rivers - which will all be visibly similar, but that's fine, that's the nature of a traditional culture - but each slightly different. + + Take half a dozen sets of models - timber bridges for forested biomes, brick bridges for biomes without stone or timber - and you can build procedural bridges across a whole continent without ever exactly repeating yourself. + + However, in some places the designers and story writers will want, for plot reasons and to create iconic environments, to add models. I'm inclined not to over do this, both for reasons of development effort and for reasons of storage cost, but they will. Very high status buildings may need to be unique and distinctive, for example. These need to be designed and their locations and spatial dimensions added to the database, so that the models can be rendered in the right positions (and, critically, procedurally generated models can be omitted in those positions!) + + Story and quest writers will also want characters for their plots. While there's no reason why writers cannot add entirely new characters to the database, there's no reason why they cannot incorporate characters generated in the settlement phase into the story; for this reason, characters need to be able to be tagged in the database as plot characters, and with what quests/elements of the plot they're associated. + + This allows a mechanism to prevent a plot character from being killed by another non-player character, or dying of disease or starvation, before the plot elements in which they feature have been completed. + +## Phase three: baking - making it delicious + + Once the world has been populated, settled, vegetated, the story has been written, the models built, the quests designed, there is probably a process of optimisation - stripping out things which aren't needed at play time, streamlining things that are - before you have a game ready to ship; but really I haven't yet given that much thought. + +## Phase four: eating! + + At the end, though, you have a game, and a player plays it. How much of the dynamic, organic life that brought the game through proving continues on into the playing phase? If the [gossip](The-spread-of-knowledge-in-a-large-game.html) ideas are to work, if unscripted, non-plot-related events (as well as scripted, plot related events) are to happen while the player plays, if news of these events is to percolate through the world and reach the player in organic, unscripted ways, if a lot of the emergent gameplay I'm imagining is to work, then quite a lot of the dynamic things must be happening. + + Of course, part of this depends on the length of 'game world time' is expected to elapse in the course of one play through of the game. If it's less than a year, then you don't need children dynamically being born, and characters dynamically growing older; but if more, then you do. Similarly, you don't need a real simulation of trading to dynamically drive prices in markets, but for a fun trading sub-game to emerge, you probably do, and if you are using merchants as news spreading agents the additional compute cost is not high. + + And I understand that many game writers will shudder at the thought that a war might (or might not) start in the middle of their plot, that a battle might, one time in a thousand, take place right where they've plotted some significant encounter. Most modern video games are essentially just very complicated state machines: if you make this sequence of choices, this outcome will happen, guaranteed. Or else they're puddles of random soup, where everything that happens is more or less driven by a random number generator. What I'm envisaging is something quite different: a world in which traders gonna trade, robbers gonna rob, lovers gonna love, scandal-mongers gonna make scandal, organically and dynamically whether the player is there or not, and news of these events will filter through to the player through the gossip network also organically and dynamically. + + A world, in short, through which no two runs will ever be the same, in which interesting bits of story will happen with no-one directing or scripting them. And for that to work, some of the same dynamic processes that drove the proving phase have to continue into the eating phase. diff --git a/doc/Populating-a-game-world.md b/doc/Populating-a-game-world.md new file mode 100644 index 0000000..1783a78 --- /dev/null +++ b/doc/Populating-a-game-world.md @@ -0,0 +1,112 @@ +# 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](../../2009/12/settling-game-world.html), 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. + +## Basic occupations + + The following are 'unskilled' occupations which form the base of the occupation system. Generally a male character at maturity becomes a 'Vagrant' and wanders though the world until he encounters a condition which allows him to advance up the occupation graph. If an occupation wholly fails, the character can revert to being a 'Vagrant' and start again. + + + +| Occupation | Dwelling | condition | New trade | Notes | +| --- | --- | --- | --- | --- | +| Vagrant | None | land available and animals available | Herdsman | | +| Vagrant | None | arable land available | Farmer | See crops | +| Vagrant | None | has weapons | Outlaw | | +| Herdsman | None | Insufficient food | Vagrant | | +| Farmer | Farm | Insufficient food | Vagrant | | +| Outlaw | None | loses weapons | Vagrant | | +| Vagrant | None | craftsman willing to take on apprentice | Apprentice | | +| Herdsman | None | arable land available | Farmer | | +| Outlaw | None | Battle hardened | OutlawLeader | | +| Apprentice | (craftsman's) | Qualified | Journeyman | | +| Journeyman | None | Unserviced customers available | Craftsman | See crafts | +| Craftsman | See crafts | Too few customers | Journeyman | | +| Journeyman | None | arable land available | Farmer | | +| Vagrant | None | Lord with vacancies available | Soldier | See military | +| OutlawLeader | None | Unprotected farms available | Laird | See nobility | + + +### Gender dimorphism + + In the paragraph above I said 'a male character'. It may seem unfair to create a game world in which the sexual inequality of the real world is carried over, and for that reason it seems sensible that female children should have the same opportunities as male children. But games work on conflicts and injustices, and so it seems reasonable to me to have a completely different occupation graph for women. I haven't yet drawn that up. + +### Wandering + + Vagrants wander in a fairly random way. While vagrants are wandering they are assumed to live off the land and require no resources. Solitary outlaws similarly wander until they find a leader, although they will avoid the areas protected by nobles. Herdsmen also wander but only over unenclosed pasture. They visit markets, if available, periodically; otherwise, they live off their herds. Journeymen wander from market to market, but are assumed to trade skills with farmers along the way. + +## Crafts + + Crafts are occupations which require acquired skills. In the initial seeding of the game world there are probably 'pioneers', who are special vagrants who, on encountering the conditions for a particular craft to thrive, instantly become masters of that craft. + + +| Craft | Dwelling | Supplies | Perishable? | Customer types | Needs market? | Customers | Supplier | Suppliers | Recruits | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| | | | | | | Solo | Per journeyman | Per apprentice | | | | +| | | | | | | --- | --- | --- | | | | +| | | | | | | Min | Max | Min | Max | Min | Max | | | | +| --- | | | | | | --- | --- | --- | --- | --- | --- | | | | +| Smith | Forge | Metal Items | no | Farmer, Soldier | No | 6 | 10 | 4 | 6 | 1 | 3 | Miner | 1 | Vagrant | +| Baker | Bakery | Bread | yes | All NPCs | No | 20 | 30 | 12 | 18 | 6 | 10 | Miller | 1 | Vagrant | +| Miller | Mill | Flour, meal | no | Baker, Innkeeper | No | 2 | 3 | 1 | 2 | 1 | 1 | Farmer | 6 | Vagrant | +| Weaver | Weaver's house | Cloth | no | All NPCs | Yes | 6 | 10 | 4 | 6 | 1 | 3 | Herdsman | 2 | Vagrant | +| Innkeeper | Inn | Food, hospitality | yes | Merhant, Soldier, Farmer, Lord | No | 10 | 20 | 5 | 10 | 2 | 4 | Farmer,Herdsman | 2 | Vagrant | +| Miner | Mine | Ores | no | Smith | Yes | 2 | 3 | 1 | 2 | 1 | 1 | Farmer | 1 | Vagrant | +| Butcher | Butchery | Meat | yes | All NPCs | No | 10 | 20 | 4 | 8 | 2 | 4 | Farmer, Herdsman | 2 | Vagrant | +| Merchant | Townhouse | Transport, logistics | n/a | Craftsmen, nobility | Yes | 10 | 20 | 4 | 8 | 2 | 4 | n/a | n/a | Vagrant | +| Banker | Bank | Financial services | yes | Merchant | Yes | 10 | 20 | 4 | 8 | 2 | 4 | n/a | n/a | Merchant | +| Scholar | Academy | Knowledge | n/a | Ariston, Tyrranos, General, Banker | No | 1 | 4 | 1 | 2 | 0.25 | 0.5 | n/a | n/a | Vagrant | +| Priest | Temple | Religion | n/a | All NPCs | No | 50 | 100 | | | | | | | Scholar | +| Chancellor | Chancellory | Administration | n/a | Ariston, Tyrranos | No | 1 | 1 | 0 | 0 | 0 | 0 | | | Scholar | +| Lawyer | Townhouse | Legal services | n/a | Ariston, Merchant, Banker | No | 4 | 6 | 2 | 3 | 1 | 2 | | | Scholar | +| Magus | Townhouse | Magic | n/a | Tyrranos, General | No | 3 | 4 | 1 | 2 | 0.25 | 0.5 | | | Scholar | + + + A craftsman starts as an apprentice to a master of the chosen crafts. Most crafts recruit from vagrants, A character must be a journeyman merchant before becoming an apprentice banker, while various intellectual crafts recruit from journeyman scholars. + + It's assumed that a journeyman scholar, presented with the opportunity, would prefer to become an apprentice magus than a master scholar. + + A journeyman settles and becomes a master when he finds a location with at least the solo/min number of appropriate customer type who are not serviced by another master craftsman of the same craft; he also (obviously) needs to find enough free land to set up his dwelling. The radius within which his serviced customers must live may be a fixed 10Km or it may be variable dependent on craft. If there are unserviced customers within his service radius, the master craftsman may take on apprentices and journeymen to service the additional customers up to a fixed limit – perhaps a maximum of four of each, perhaps variable by craft. If the number of customers falls, the master craftsman will first dismiss journeymen, and only in desperate circumstances dismiss apprentices. Every apprentice becomes a journeyman after three years service. + + The list of crafts given here is illustrative, not necessarily exhaustive. + +## Aristocracy + + As in the real world, aristocracy is essentially a protection racket, and all nobles are originally outlaw leaders who found an area with rich pickings and settled down. + + +| Rank | Follower rank | Client type | Clients protected | Trade in market | Followers per client | +| --- | --- | --- | --- | --- | --- | +| | | | Min | Max | Min | Max | Min | Max | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | +| Bonnet Laird | Private | Farmer | 6 | 20 | 0 | 100 | 0.25 | 0.5 | +| Ariston | Captain | Bonnet Laird | 10 | 30 | 25 | 1000 | 0.5 | 1 | +| Tyrranos | General | Ariston | 10 | unlimited | 250 | unlimited | 0.1 | 0.5 | + + + Every noble establishes a market and, if he employs a chancellor, taxes trade in it. Crafts which 'need a market' can only be established in the vicinity of a market, irrespective of whether there are sufficient customers elsewhere. All non-perishable goods are traded through the markets, and merchants will transfer surpluses between markets if they can make a profit from it. + + My world has essentially three ranks of nobility. The title of the lowest rank will probably change to something vaguely italianate. An aristocrat advances to the next rank when either the requisite number of clients become available in the locality to support the next rank, or the trade in his market becomes sufficient to support the next rank. + + Obviously when a province has eleven unprotected bonnet lairds, under the rules given above any of them may become the ariston, and essentially it will be the next one to move after the condition becomes true. If the number of available clients drops below the minimum and the market trade also drops below the minimum, the noble sinks to a lower level – in the case of the bonnet laird, to outlaw leader. + +## Military + + The aristocracy is supported by the military. An outlaw becomes a soldier when his leader becomes a noble. Otherwise, vagrants are recruited as soldiers by bonnet lairds or sergeants who have vacancies. Captains are recruited similarly by aristons or generals, and generals are recruited by tyrranos. If the conditions for employment no longer exist, a soldier is allowed a period of unemployment while he lives off savings and finds another employer, but if no employer is found he will eventually become an outlaw (or, if an officer, an outlaw leader). A private is employed by his sergeant or bonnet laird, a sergeant by his captain, a captain by his arison or general, a general by his tyrranos. + + +| Rank | Follower rank | Followers | | Condition | New rank | +| --- | --- | --- | --- | --- | --- | +| | | Min | Max | | | +| --- | --- | --- | --- | --- | --- | +| Private | None | 0 | 0 | Battle hardened, unled privates | Sergeant | +| Sergeant | Private | 5 | 15 | More battle hardened, unled sergeantts | Captain | +| Captain | Sergeant | 5 | 15 | More battle hardened, unled captains | General | +| General | Captain | 5 | unlimited | | | + + + Soldiers have no loyalty to their employer's employer. diff --git a/doc/Settling-a-game-world.md b/doc/Settling-a-game-world.md new file mode 100644 index 0000000..e391a3c --- /dev/null +++ b/doc/Settling-a-game-world.md @@ -0,0 +1,87 @@ +# Settling a game world + +#### Wednesday, 30 December 2009 + + *This essay is part of a series with '[Worlds and Flats](Worlds-and-flats.html)' and '[The spread of knowledge in a large game world](The-spread-of-knowledge-in-a-large-game-world.html)'; 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](Populating-a-game-world.html)')* + +### Microworld + + Some twenty years ago I wrote a rather sophisticated cellular automaton which I called 'Microworld' which modelled the spread of human population over a landscape. It did this by first fractally folding a grid to assign elevations to cells. Then, cells below a critical elevation – the tree line – were assigned as forest. For each cycle – 'year' – a cell remained forest, its soil fertility would increase. Random events – 'lightning strikes' could change a cell from forest to clearing. Then the following transitions might take place, each with a probability, where each cell is considered to have eight neighbours: + +* A forest cell with a lightning strike as a neighbour may catch fire and burn +* A forest cell with a fire as a neighbour may catch fire and burn +* A burning cell become a clearing cell +* A clearing cell with forest or scrub as a neighbour may become scrub +* A scrub cell may become forest + + This more or less completes the 'natural' cycle... then we get to settlement. Pastoral and agrarian 1 cells gradually degrade soil fertility (erosion, etc). Agrarian 2 cells do not degrade fertility. + +* A clearing cell (including cells above the treeline) may become a pastoral cell (pastoral 1, no settlement) +* A pastoral 1 cell whose soil fertility falls below a threshhold becomes waste +* A pastoral 1 cell with no pastoral neighbours may become waste +* A waste cell below the treeline may become scrub +* A waste cell may become clearing +* A pastoral 1 cell with two or more pastoral neighbours may become a pastoral 2 cell (settlement) +* A forest cell with two or more pastoral neighbours may become clearing +* A pastoral 2 cell with two or more pastoral 2 neighbours may become agrarian 1 +* An agrarian 1 cell which falls below a critical fertility becomes pastoral 1 +* An agrarian 1 cell with three or more agrarian 1 neighbours becomes agrarian 2 (smith, mill) +* A cell with three or more agrarian 2 neighbours becomes market +* A market cell with no agrarian 2, market or urban neighbours becomes waste +* A cell with two or more market neighbours becomes urban + + That's simple, but it provides a remarkable good model of population spread. however, it is essentially a grid and so doesn't make for natural-seeming landscapes when considered as a three dimensional rendered world. How can we do better? + +### Microworld Two + + The objective of this essay is to outline an angorithm for creating inhabited landscapes in which games can be set, which are satisfyingly believable when rendered in three dimensions. The objective of creating landscapes 'procedurally' – that is, with algorithms – is that they can be very much larger than designed landscapes for the same richness of local detail. This does not mean that every aspect of the final landscape must be 'procedural'. It would be possible to use the techniques outlined here to create landscapes which were different every time the game was played, but it would be equally possible to create a landscape which was frozen at a particular point and then hand edited to add features useful to the game's plot. And while I'm principally thinking in this about role playing games, this sort of landscape would be applicable to many other sorts of games – strategy games, god games, first person shooters... + +### The physical geography + + Consider our landscape as, once again, a fractally folded sheet on which any given point has characteristics based on its elevation and orientation. There are two critical levels – water level and treeline. The water level is, overall, sea level, but in the case of a localised depression it is equal to the lowest land height between the depression and the sea (lakes form in depressions). Computing the fractal sheet forms stage one in computing the landscape. Next, we need functions which, for any given point on the landscape, compute two different dimensions of soil fertility: water and warmth. We'll assume a coriolis prevailing wind blowing from the west, bringing in damp air from an ocean in that direction. Western slopes are wetter than eastern slopes. In principle, also, there's likely to be a rain shadow to the east of high ground leading to considerable aridity, but that may be too expensive to compute. Rain runs swiftly off steeper slopes, more slowly on flatter ground, so flatter ground is wetter than steeper ground. Water flows down hill, so lower ground is on the whole wetter than higher ground. This isn't a precise model of soil hydrology, but I think it's good enough. From each lake a watercourse follows the lowest possible path to the sea. Watercourses modify the land overwhich they flow, carving out a route at least sufficient to carry the amount of water collected in the watershed above each point. Where watercourses flow down steeper gradients, they carve out gullies, possibly with waterfalls. Where they cross shallower gradients or level ground, they become broader. Computing the watercourses becomes the second stage of computing the lanscape. + +### Vegetation + + Now sprinkle seeds randomly across the landscape at a density of roughly one every ten square metres. Seeds which fall in water, ignore (? or make into water plants?). The position of the plant is taken from the random sprinkling. The species and size of the plant that grows from the plant are a function of the water and warmth functions described above, with latitude and longitude as seeds for pseudo-random functions delivering aspects like branching and so on – enough to make individual plants distinct and not carbon copies even of other plants of the same species, but nevertheless recreatable from just the latitude and longitude. So for each plant only two integers need to be stored, yet every time a player passes he will see an identically recreated world. Of course there is a trade-off between storage space and rendering time, and it may be more efficient to build and cache a detailed model of each plant. Like a lot of other things it depends on the game being designed and the processing power of the platform on which that game is delivered. As to how the functions which select the vegetation type work, obviously trees grow better in wetter places, grassland plants in dryer places; within the wetter places, coniferous trees are more prevalent where it is cooler, broadleaves where it is warmer. In the very wettest places, willows, alders and marshland plants. These plants – the seeded plants – are the feature plants of the landscape. When rendering the landscape the renderer would first apply a suitable local surface texture, for example, in grassland areas, grass. + +### Settling the world + + So now we need to make this an inhabited landscape. My proposal for this is to introduce proto-actors, which may be the same software agents as the non-player characters the user will interact with (see my essay on the spread of knowledge). At this stage in their lifecycle, the proto-actors are fairly simple state transition machines. Generally, their algorithm is as follows: Starting from one or two seed points, proto-agents will initially move across the landscape travelling at most 20Km in a day, preferring to stop at inns or else at existing settlements; and will maintain a history of the places they have been, never revisiting a place until they have settled. Whenever moving, whether before they have settled or after, proto-actors will plan their route across the landscape, avoiding trees, buildings, and steep gradients, and will prefer to cross rivers at a bridge (if available) or else a ferry (if available), or failing that at the narrowest convenient point. When proto-actors settle, they will claim an area of territory appropriate to their trade – more below; the system must build up a database of land holdings. In particular a land holding will never cross a watercourse, an existing road or overlap another land holding (although roads may develop across existing holdings). This is key because I don't want holdings normally to have regular shapes. A settled proto-agent will build a building to live in, and possibly an additional one for his trade. When building buildings, proto-actors will prefer to build at the edge of their land holding, as close as possible to existing buildings and ideally at the side of an existing road. The richer an existing building is, the more attractive it will be to new buildings. Buildings will be built with their long edge aligned with the edge of the owner's hoding. + +* A proto-actor is initially, as described above, an itinerant. Itinerants are introduced into the world at a small number of geographical locations, and gradually, not all at once. Itinerants travel as described above. As they move they will leave breadcrumb trails with a roughly ten metre resolution. If they cross an existing track which goes in roughly the right direction they will prefer to follow it. Once a track has been followed by a certain number of proto-actors, it becomes a road. +* An itinerant who finds an area of unsettled grassland of ten hectares with low soil fertility and not more than one hundred trees settles and becomes a pastoralist. He builds a cottage. +* An itinerant who finds an area of unsettled grassland of ten hectares with medium or high soil fertility becomes an agrarian. He builds a homestead. Depending on the fertility of his land he can support between zero and ten labourers, 10% of a smith, 10% of a miller and 10% of a bonnet laird. +* An itinerant who finds an area of unsettled land of 100 square metres within five hundred metres of a homestead with unfulfilled labourer demand becomes a labourer. He builds a cottage. +* An itinerant who finds an area of unsettled land of 100 square metres within five kilometres of ten farmers with unfilled smithing slots becomes a smith. He builds a cottage and a forge. +* An itinerant who finds an area of unsettled land either at the side of a water course or at the top of a hill, and within 5 kilometers of ten farmers with unfilled milling slots becomes a miller. He builds a mill – water or wind, appropriate to location. +* Any settler who plays host to more than a certain number of travellers becomes an innkeeper. He claims 400 square metres of unclaimed land as close as possible to his existing settlement and buids an inn and stableyard. +* An itinerant who finds 400 square metres of unclaimed land within a certain distance of an inn and a smith will become a merchant, provided that there are three smiths within a 5Km radius who have unfilled market slots. The merchant builds a marketplace and a counting house. +* An itinerant who finds 200 square metres of unclaimed land within a specified distance of a market with an unfilled chapel slot becomes a priest and builds a chapel and manse, and possibly a school. +* An itinerant who finds 100 square metres of unclaimed land adjacent to where a road crosses a river becomes a ferryman. +* A ferryman who carries more than a certain number of passengers in a given period becomes a tollkeeper and builds a bridge. + + This set of rules – and possibly others like them (woodcutters, fishermen, hunters...) provide the first wave of settlement. Once the landscape is sufficiently settled by this first wave, there needs to be a period of establishing trading routes. First, every settler will visit his nearest market, leaving a permanent track if there is not already a road. Where several of these tracks overlay one another, once again a road is created. Each merchant then visits each of the ten markets nearest his own, following existing tracks and roads where available. Wherever the merchants do not find roads, new roads are created. This completes the roads network. Each market is now assigned a value which is a function of + +* the number of people for whom it is the nearest market +* the sum of the wealth (soil fertility) of the homesteads for which it is the nearest market +* the wealth of other markets within a day's travel + + Depending on its wealth a market may support up to twenty stallholders, including bakers, butchers, tanners, weavers, cobblers, chandlers and so on. So a second wave of itinerants sets off. These follow the original rules for itinerants, but if they find an unsettled 100 square metres within five hundred metres of a market, will set up as a stallholder, building a town house and appropriate trade building on their own settlement, and a stall in the market. An itinerant finding a hundred square metres within five hundred metres of a market which has all its stallholder slots filled may become a slum landlord, and build a tenement for day-labourers. Finally, aristocracy. In the second wave an itinerant who finds either a hilltop, an island in a lake or river, or a significant river crossing, with one hectare of unclaimed land and within 5Km of ten farms with unfilled bonnet laird slots becomes a bonnet laird (or 'squire', if you prefer) and builds a fortified house. At the end of the second wave of settlement the ten percent of bonnet lairds with the richest fiefs (using much the same metric as for the wealth of markets) become barons and build castles. + +### Rendering the buildings + + This seems to me to provide an algorithmic means of settling a landscape which will generate organic and satisfying patterns of settlement. But it all fails if the buildings are chosen from a limited palette of models. As with the trees I think we need algorithmic mechanisms of building similar-but-different buildings which can be repeatably rendered from relatively small data sets. As an example of what I mean, in damper landscapes where wood is likely to be available, there might be a higher probability of stave buildings, or weatherboarding, with mainly shingle roofs. In slightly less damp areas where timber is still available, cruck frames and half timbered buildings will prevail, with mostly thatched roofs. In the dryest areas, cob and brick buildings will be common, often with tile roofs. On steeper hillsides, stone buildings will be common, perhaps with slate roofs. Within each of these types there are essential cells from which a building is created. These cells can be longer or shorter, taller or lower, wider or narrower. A building may comprise a single cell, or more. If more than three cells they may be arranged in a row or round a courtyard. And they may have one story or two. Which they have can be based – like the details of the plants – on functions which take latitude and longitude as arguments and which, internally use pseudo-randoms seeded from those latitude and longitude values. + +### How vast a world? + + OK, so, with this general approach, how big can we go? The answer seems to me to be 'big enough'. A 32 bit integer gives somewhat over four billion values, so can resolve down to one millimetre precision in a world 4000 kilometres by 4000 kilometres. But we don't actually need millimetre resolution; centimetre would be quite small enough. And that gives us potential for a world 40000Km square, or 1.6 billion square kilometres, which is three times the surface area of planet Earth. + + In practice we can't go that big for all sorts of space and time reasons. Recording land heights is inevitably an issue. I don't know of a pseudo random function which will generate satisfying land heights. Anything based on Julia sets, for example, ends up with landforms symmetrical around a central point. Furthermore, the shapes of fractals which can be constructed from simple functions tend to have a noticable and unnatural degree of self-similarity across scales. I'd dearly like to be wrong on this, but I think we need to store at minimum elevation values at ten metre intervals. If we can accept 100mm resolution for elevations, storing 16 bit values gives a range of 6,500 metres - 21,000 feet - from the deepest seabed to the peaks of the highest mountains. + + This means that landform information alone requires 20Kbytes per square kilometre - unindexed, but seeing it's a rigid ten metre grid that isn't a problem. Which, in turn, means that you can store landform information for a planet the size of Earth in one terrabyte. But we don't need a planet the size of earth. Scotland is 80,000 square kilometers of land area; allowing for a bit of sea around to the horizon around it, say 100,000 square kilometers. That seems to me more than big enough to be a game space. It amounts to 160Mb of landform data, which is completely manageable. + + If we stored plant data for every distinctive plant in Scotland - even at one per ten square metres - that does become an impractically large data set, because quite apart from anything else, the plant locations do have to be indexed. But actually, given that the actual plants that grow are a function of the location at which they grow, no player is going to notice if the pattern of the locations of plants is the same for each square kilometre. So we can manage plant data for a land area the size of Scotland in 400,000 bytes - we could do it in less (if the locations were generated using a pseudo-random function, much less). + + Building data is different. We need to store the latitude, longitude and type of every building explicitly, and again they need to be indexed in order that we can recover the buildings in a given area efficiently. We need about 16 bytes per building (four bytes latitude, four longitude, two type; then for each tile a null-terminated vector of pointers to building records). If we assume that our feudal land of 80,000 square kilometers has a population of a million, and that there are on average five occupants of every building, that's two hundred thousand buildings, implying 3.2Mb of data. + + Of course, that's just the backing store size. As tiles are loaded into active memory - see the essay 'Tiles and Flats' this raw backing data has to be inflated procedurally into actual models that can be rendered; models which may have thousands of vertices and hundreds of kilobytes of textures. The functions which do that inflating have some finite size, and, significantly, they'll need to work on prototype models which will in turn take storage space. Finally there are hand-edited models potentially used at particular plot locations; those need to be stored more or less in full. But all this has not become an unmanageable amount of data. It seems to me plausible that you could store a fully populated 100,000 square kilometer game world on one uncompressed 700Mb CD. On a 4Gb DVD, you could do it very easily. diff --git a/doc/The-spread-of-knowledge-in-a-large-game-world.md b/doc/The-spread-of-knowledge-in-a-large-game-world.md new file mode 100644 index 0000000..40e842b --- /dev/null +++ b/doc/The-spread-of-knowledge-in-a-large-game-world.md @@ -0,0 +1,64 @@ +# 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-great-game.gossip.news-items.html). The original version of the essay is [still available on my blog](https://blog.journeyman.cc/2008/04/the-spread-of-knowledge-in-large-game.html)._ + + These days we have television, and news. But in a late bronze age world there are no broadcast media. News spreads by word of mouth. If non-player characters are to respond effectively to events in the world, knowledge has to spread. + + How to model this? + + Some non-player characters - doesn't need to be many - are news-spreaders. News-spreaders need to travel. They have to travel even when there are no player characters in the vicinity. But, they don't have to travel very often - once or twice every game day. When a news-spreader is in the immediate vicinity of another character, the pair may (with some degree of randomness) exchange news. There needs to be a hierarchy in the exchange of news, so that 'I-saw' events need to be more likely to be passed on than 'I-heard' events; there needs to be a counter which counts the number of times a knowledge item has been passed on, and also an age counter so that knowledge items are less likely to be passed on as they get older. + + One obvious class of news-spreader is a merchant. Merchant agents can either shuttle mechanically between a fixed group of markets or else possibly respond intelligently to supply and demand. Provided that there is a mesh of merchant routes covering the markets of the game world, and that a useful subset of non-merchant characters are required to visit a market every few game days, this should give a reasonably realistic framework for news spreading. + + What else? What things qualify as news items? I think at least the following: + +* Deaths of sentient characters, especially if violent +* Commodity prices +* Changes of rulers in cities +* Marriages of sentient characters +* Plot events, flagged as events by the game designer + + Obviously, news is more valuable if the people involved are important or notorious: the significance of a story is probably the product of the significance of the people concerned. + + So a news item becomes a tuple + + `(days-old nth-hand significance action (actors))` + + for example + + `(54 2 10 'killed '(fred joe))` + + meaning 'I spoke to a man who'd spoken to a man who said he saw notorious fred kill well-liked joe on 54 days ago'. Obviously, the non-player character must be able to construct a natural language sentence from the tuple when speaking within the hearing of a player character, but there's no need for a non-player character to produce a natural language sentence for another non-player character to parse; instead they can just exchange tuples. + + But if we're exchanging knowledge between agents, then agents must have a means of representing knowledge. This knowledge is an association between subjects and sets of statement, such that when the agent learns the statement + + `(54 2 10 'killed '(fred joe))` + + it adds this statement (with the 2 incremented to 3) to the set of statements it knows about fred and also to the set of statements it knows about joe. It's possible that the receiving agent could then challenge for further statements about fred and/or joe, the automated equivalent of a 'who's joe?' question. + + There could be feedback in this. Fred's and joe's significance scores could be incremented for each character to whom the statement is passed on, increasing the likeliness that fred, at least, would feature in more news stories in future. There needs also to be some means of managing how the non-player character's attitude to the subjects of the statement are affected. For example, If fred kills joe, and the character (say bill) receiving the news feels positively towards joe, then bill's attitude to fred should become sharply more hostile. If bill feels neutral about joe, then bill's attitude to fred should still become a bit more hostile, since killing people is on the whole a bad thing. But it bill feels very hostile towards joe, then bill's attitude to fred should become more friendly. + + Obviously the rate of decay, and the degree of randomness, of the news-passing algorithm would need to be tuned, but this schema seems to me to describe a system with the following features: + +* Non-player characters can respond to questions about significant things which happen in the world - without it all having to be scripted +* If you travel fast enough, you can keep ahead of your notoriety +* Characters on major trade routes will know more about what is happening in the world than characters in backwaters + + This seems to me a reasonably good model of news spread. + +### Scaling of the algorithm + + Let's work around the idea that a 'game day' equates to about two hours of wall clock time. Let's work around the idea that there are of the order of fifty markets in the game world, and that for each market there are two or three merchants whose 'home base' it is. + + Obviously non-player characters who are within the vicinity of a player character have to be 'awake', in order that the player can see them interacting with their world and can interact with them. Those characters have to be in working memory and have to be in the action polling loop in any case. So there's no extra cost to their gossiping away between each other - around the player there's a moving bubble of gossip, allowing each character the player interacts with to have a high probability of having some recent news. + + But the merchants who aren't in the vicinity of a player don't have to be in working memory all the time. Each merchant simply requires to be 'woken up' - loaded into memory - once per game day, move a day's journey in one hop, and then, if arriving at an inn or at a market, wake and exchange news with one resident character - an innkeeper or a gossip. So the cost of this algorithm in a fifty-market game is at worst the cost of loading and unloading two non-player characters from memory every minute, and copying two or three statements from the knowledge set of one to the knowledge set of the other. If you're dynamically modifying significance scores, of course, you'd need to also load the characters about whom news was being passed on; but this still doesn't seem unduly onerous. + + Obviously, if memory is not too constrained it may be possible to maintain all the merchants, all the innkeepers and all the characters currently being talked about in memory all the time, further reducing the cost. diff --git a/doc/Voice-acting-considered-harmful.md b/doc/Voice-acting-considered-harmful.md new file mode 100644 index 0000000..9abf923 --- /dev/null +++ b/doc/Voice-acting-considered-harmful.md @@ -0,0 +1,90 @@ +# Voice acting considered harmful + +#### Wednesday, 25 February 2015 + + + + 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 + Create a new room north of here called dungeon-3 the player was playing the game + Pick up the rusty sword and go north or the player was talking to a non-player character + Say to the wizard 'can you tell me the way to the castle' Of course, the parser didn't 'understand' English. It worked on trees of words, in which terminal nodes were actions and branching nodes were key words, and it had the property that any word it didn't recognise at that point in sentence was a noise word and could be ignored. A few special hacks (such as 'the', 'a', or 'an' was an indicator that what came next was probably a noun phrase, and thus that if there was more than one sword in the player's immediate environment the one that was wanted was the one tagged with the adjective 'rusty'), and you ended up with a parser that most of the time convincingly interpreted most of what the player threw at it. + + Text adventures fell into desuetude partly because they weren't graphic, but mainly because people didn't find typing natural, or became dissatisfied with the repertoire of their parsers. Trying to find exactly the right combination tokens to persuade the game to carry out some simple action is not 'fun', it's just frustrating, and it turned people off. Which is a shame because just at the time when people were abandoning text adventures we were beginning to have command parsers which were actually pretty good. Mine, I think, were good - you could have a pretty natural conversation with them, and in 'building' mode, when it hit a 'sorry I don't understand' point, it allowed you to input a path of keywords and a Lisp function so that in future it would understand. + + So much, so [Eliza](http://www.csee.umbc.edu/courses/331/papers/eliza.html). + + Modern role-playing games - the evolutionary successors of those high and far off text adventures - don't have text input. Instead, at each stage in a conversation, the user is offered a choice of three or four canned responses, and can pick one; very often what the player's character actually says then differs from the text the user has chosen, often with differences of nuance which the user feels (s)he didn't intend. And the non-player-character's response is similarly canned. Indeed, the vast majority of non-player characters in most games have a 'repertoire', if one may call it that, of only one sentence. Others will have one shallow conversational tree, addressing one minor quest or plot-point. + + If you want to talk to them about anything else - well, you just can't. + + Only a very few key non-player characters will have a large repertoire of conversational trees, relevant to all parts of the plot. And even those trees are not deep. You soon exhaust them; the characters' ability to simulate real agency just isn't there. + + I first wrote about the limiting effects of voice acting in [my review of the original Witcher game](../../2008/02/the-witcher-story-telling-of-high-order.html), back in 2008; things haven't got better. + + +## On phones: speaking + + In my pocket I carry a phone. It's not big: 127 x 64.9 x 8.6mm. A small thing. + + When I first used Android phones for navigation, I used to delight in their pronunciation of Scots placenames - pronouncing them phonetically, as spelled, and as though their spelling were modern English. What's delightful about Scots placenames is that they are linguistically and orthographically so varied - their components may be Brythonic, Goidaelic, Anglian, Norn, French, English, or even Latin; and very frequently they combine elements of more than one language (Benlaw Hill, anyone? Derrywoodwachy?). + + Yes, gentle reader, this does seem a long way from game design; be patient, I'm getting there. But I'm going to digress even further for first... + + There have been orthographic changes, and pronunciation changes consequent on orthographic changes. For example, medieval Scots used the letter [Yogh](http://en.wikipedia.org/wiki/Yogh) (ȝ), which isn't present in the English alphabet. So when Edinburgh printers in the early modern period bought type for their printing presses from England, there was no Yogh in the font. So they substituted Zed. So we get names like Dalȝiel, Kirkgunȝeon, Menȝies, Cockenȝie. How do you pronounce them? + + The letter that looks like a 'z' is pronounced rather like a 'y'; so + +* Deeyell +* Kirkgunyeon +* Mingis + + and... drumroll... + +* Cockenzie. + + What happened? + + Well, Dalȝiel and Menȝies are personal names, and people are protective of their own names. Kirkgunȝeon is a small, unimportant place, and all the locals know how it is pronounced. Scots folk, are, after all, used to Scots orthography and its peculiarities. So those names haven't changed. + + But at Cockenȝie, another small, unimportant place, a nuclear power station was built. The nuclear power station was built by people (mostly) from England, who didn't know about Yogh or the peculiarities of Scots orthography - and were possibly too arrogant to care. So they called it 'Cockenzie'. And as there were so many more of them and they had so much higher status than the locals, their name stuck, and nowadays even local people mostly say 'Cockenzie', as though it were spelled with a Zed. Because, of course, it is spelled with a Zed. Because, as any British schoolchild knows, there's no Yogh in the alphabet. + + Except, of course, when there is. + + Another more interesting example of the same thing is '[Kirkcudbright](http://www.journeyman.cc/placenames/place?id=153)'. It's a town built around the kirk (church) of saint Cuthbert. So how does it come to have a 'd' in it? And why is it pronounced 'Kirkoobry'? Well, the venerable Cuthbert pronounced his name in a way which would be represented in modern English as 'Coothbrecht', but he spelled it 'Cuðbrecht'. See that 'ð'? That's not a 'd', it's an Eth. Because Cuðbrecht was Anglian, and the Anglian alphabet had [Eth](http://en.wikipedia.org/wiki/Eth); it's pronounced as a soft 'th', and Icelandic still has it (as well as Thorn, þ, a hard 'th' sound). Medieval scribes didn't know about Eth, so in copying out ð they wrote the more familiar d. The local people, however, mostly couldn't read, so the pronunciation of the name didn't change with the change in spelling (although the pronunciation, too, has drifted a little with time). + + So, in brief, pronouncing Scots placenames is hard, and there are a lot of curious rules, and consequently it's not surprising that five years ago, listening to Android's pronunciation of Scots placenames was really funny. + + But what's really curious is that now it isn't. Now, it rarely makes a mistake. Now, Android can do text to speech on unusual and perverse orthography, and get it right better than 95% of the time - and manage a reasonably natural speaking voice while doing so. On a small, low power machine which fits in my pocket. + + +## On phones: listening + + But navigation is not all I can do with my phone. I can also dictate. By which I don't mean I can make a voice recording, play it back later and type what I hear, although, of course, I can. I mean I can dictate, for example, an email, and see it in text on my phone before I send it. It quickly learned my peculiarities of diction, and it now needs very little correction. On a small, low power machine which fits in my pocket. + + +## And breathe + + Right, so where am I going with all this? Well, we interact with modern computer role playing games through very restricted, entirely scripted dialogues. Why do we do so? Why, on our modern machines with huge amounts of store, do our non-player characters - and worse still, our player character, our own avatar - have such restricted repertoires? + + Because they are voice acted. Don't get me wrong, voice acting makes a game far more engaging. But for voice acting to work, the people doing the acting have to know not only the full range of sentences that their character is going to speak, but also roughly how they feel (angry? sad? excited?) when they say it. Ten years ago, voice acting was probably the only way you could have got this immediacy into games, because ten years ago, text-to-speech systems were pretty crude - think of Stephen Hawking's voice synthesiser. But now, Edinburgh University's [open source synthesiser](http://www.cstr.ed.ac.uk/projects/festival/morevoices.html) is pretty good, and comes with twenty-four voices (and seeing it's open source, you can of course add your own). Speech to text was probably better ten years ago - think of [Dragon Naturally Speaking](http://en.wikipedia.org/wiki/Dragon_NaturallySpeaking) - but it was proprietary software, and used a fair proportion of a machine's horsepower. Now there's (among others) Carnegie Mellon's open source [Sphinx](http://cmusphinx.sourceforge.net/) engine, which can quickly adapt to your voice. + + So, we have text-to-speech engines which can generate from samples of many different voices, and speech to text engines which can easily be tuned to your particular voice. There's even a program called [Voice Attack](http://www.voiceattack.com/), built on top of Microsoft's proprietary speech to text engine, which already allows you to [control games with speech](https://www.youtube.com/watch?v=8dnJ--pSjdE). Where does that take us? + + Well, we already know how to make sophisticated natural language parsers for text, given moderately limited domains - we don't need full natural language comprehension here. + + +## You may think it's a long way down the road to the chemist + + There are things one needs to know in a game world. For example: I need a sword, where's the nearest swordsmith? In a real quasi-medieval world, certainly every soldier would be able to tell you, and everyone from the swordsmith's town or village. Very celebrated swordsmiths would be known more widely. + + And the thing is, the game engine knows where the nearest swordsmith is. It knows what potion will heal what wound, and what herbs and what tincture to use to make it. It knows which meats are good to eat, and which inns have rooms free. It knows good campsites. It knows where there be dragons. It knows where the treasure is hid. It knows - as far as the game and its plot are concerned - everything. + + So to make an in-game Siri - an omniscient companion you could ask anything of - would be easy. Trivial. It also wouldn't add verisimilitude to the game. But to model which non-player characters know what is not that much harder. Local people know what's where in their locality. Merchants know the prices in nearby markets. They, and minstrels, know the game-world's news - major events that affect the plot. Apothecaries, alchemists and witches know the properties of herbs and minerals. + + And to model which non-player characters are friendly, and willing to answer your every question; which neutral or busy, and liable to answer tersely; and which actively hostile, and likely, if they answer at all, to deliberately mislead - that's not very much harder. + + I'm not arguing that voice acting, and scripted dialogue trees, should be done away with altogether. They still have a use, as cutscenes do, to advance plot. And I'm not suggesting that we use voice to control the player characters movements and actions - I'm not not suggesting that we should say 'run north; attack the troll with the rusty sword'. Keyboards and mice may be awkward ways to control action, but they're better than that. Bur I am suggesting that one should be able to talk to any (supposedly sentient) character in the game, and have them talk reasonably sensibly back. As one can already do physically in wandering an open world, a full voice interaction system would allow one to go off piste - to leave the limited, constrained pre-scripted interaction of the voice-acted dialogue tree. And that has got to make our worlds, and our interactions with them, richer, more surprising, more engaging. + + A hybrid system needn't be hard to achieve, needn't be jarring in use. You can record the phonemes of your voice actor's voice, so that the same character will have roughly the same voice - the same timbre, the same vowel sounds, the same characteristics of pronunciation - whether in a voice acted dialogue or in a generated one. + + We don't need to let voice acting limit the repertoires of our characters any more. And we shouldn't. diff --git a/doc/on-dying.ods b/doc/on-dying.md similarity index 100% rename from doc/on-dying.ods rename to doc/on-dying.md diff --git a/doc/sandbox.md b/doc/sandbox.md index 736f0ec..82098d6 100644 --- a/doc/sandbox.md +++ b/doc/sandbox.md @@ -31,7 +31,7 @@ Someone who intercepts and steals from merchants (and may also attack outlying f ## Second tier playable roles -The next tier of playable roles rotates around issues arising from the mercantile ecosystem. +The next tier of playable roles rotates around issues arising from the mercantile ecosystem. ### Aristocracy @@ -57,10 +57,10 @@ But nevertheless, in The Witcher 3, a decision was made to pack incident fairly An in-game day doesn't have to be as long as a wall clock day, and, indeed, typically isn't. But nevertheless, doing several game days of incident-free travel, even in beautiful scenery, is not going to be engaging - which implies a fast-travel mechanic. -I don't like fast travel, I find it a too-obvious breaking of immersion. Also, of course, one of the interesting things about a game in a merchant/outlaw ecosystem is the risk of interception on a journey. The Dragon Age series handled interrupted travel in 'fast travel' by randomly interacting the loading screen you get when moving from location to location in Dragon Age's patchwork worlds by dumping you into a tiny arena with enemies. That's really, really bad - there's no other way to say this. Everything about it shouts artifice. +I don't like fast travel, I find it a too-obvious breaking of immersion. Also, of course, one of the interesting things about a game in a merchant/outlaw ecosystem is the risk of interception on a journey. The Dragon Age series handled interrupted travel in 'fast travel' by randomly interrupting the loading screen you get when moving from location to location in Dragon Age's patchwork worlds by dumping you into a tiny arena with enemies. That's really, really bad - there's no other way to say this. Everything about it shouts artifice. So I'm thinking of a different mechanism: one I'm calling cruise control. -You set out on a task which will take a long time - such as a journey, but also such as any routine task. You're shown either a 'fast forward' of your character carrying out this task, or a series of cinematic 'shots along the way'. This depends, of course, on their being continuous renderable landscape between your departure and your destination, but there will be. This fast-forward proceeds at a substantially higher time gearing than normal game time - ten times as fast perhaps; we need it to, because as well as doing backgound scenery loading to move from one location to another, we're also simulating lots of non-player agents actions in parts of the world where the player currently isn't. So a 'jump cut' from one location to another isn't going to work anyway. +You set out on a task which will take a long time - such as a journey, but also such as any routine task. You're shown either a 'fast forward' of your character carrying out this task, or a series of cinematic 'shots along the way'. This depends, of course, on there being continuous renderable landscape between your departure and your destination, but there will be. This fast-forward proceeds at a substantially higher time gearing than normal game time - ten times as fast perhaps; we need it to, because as well as doing backgound scenery loading to move from one location to another, we're also simulating lots of non-player agents' actions in parts of the world where the player currently isn't. So a 'jump cut' from one location to another isn't going to work anyway. The player can interrupt 'fast forward' at any time. But also, the game itself may bring you out of fast forward when it anticipates that there may be action which requires decision - for example, when there are outlaws in the vicinity. And it will do this **before** the player's party is under immediate attack - the player will have time to take stock of the situation and prepare appropriately. Finally, this will take place in the full open world; the player will have the option to choose *not* to enter the narrow defile, for example, to ask local people (if there are any) for any news of outlaw activity, or, if they are available, to send forward scouts. diff --git a/docs/cloverage/index.html b/docs/cloverage/index.html index 4590c73..516511b 100644 --- a/docs/cloverage/index.html +++ b/docs/cloverage/index.html @@ -38,24 +38,24 @@ style="width:87.17948717948718%; float:left;"> 34 </div></td> <td class="with-number">12.82 %</td> -<td class="with-number">65</td><td class="with-number">5</td><td class="with-number">39</td> +<td class="with-number">66</td><td class="with-number">5</td><td class="with-number">39</td> </tr> <tr> <td><a href="the_great_game/gossip/news_items.clj.html">the-great-game.gossip.news-items</a></td><td class="with-bar"><div class="covered" - style="width:89.34108527131782%; - float:left;"> 461 </div><div class="not-covered" - style="width:10.65891472868217%; - float:left;"> 55 </div></td> -<td class="with-number">89.34 %</td> + style="width:92.73422562141491%; + float:left;"> 485 </div><div class="not-covered" + style="width:7.265774378585086%; + float:left;"> 38 </div></td> +<td class="with-number">92.73 %</td> <td class="with-bar"><div class="covered" - style="width:83.65384615384616%; - float:left;"> 87 </div><div class="partial" + style="width:87.5%; + float:left;"> 91 </div><div class="partial" style="width:8.653846153846153%; float:left;"> 9 </div><div class="not-covered" - style="width:7.6923076923076925%; - float:left;"> 8 </div></td> -<td class="with-number">92.31 %</td> -<td class="with-number">244</td><td class="with-number">29</td><td class="with-number">104</td> + style="width:3.8461538461538463%; + float:left;"> 4 </div></td> +<td class="with-number">96.15 %</td> +<td class="with-number">246</td><td class="with-number">30</td><td class="with-number">104</td> </tr> <tr> <td><a href="the_great_game/merchants/markets.clj.html">the-great-game.merchants.markets</a></td><td class="with-bar"><div class="covered" @@ -140,19 +140,17 @@ </tr> <tr> <td><a href="the_great_game/time.clj.html">the-great-game.time</a></td><td class="with-bar"><div class="covered" - style="width:98.10606060606061%; - float:left;"> 259 </div><div class="not-covered" - style="width:1.893939393939394%; - float:left;"> 5 </div></td> -<td class="with-number">98.11 %</td> + style="width:99.62121212121212%; + float:left;"> 263 </div><div class="not-covered" + style="width:0.3787878787878788%; + float:left;"> 1 </div></td> +<td class="with-number">99.62 %</td> <td class="with-bar"><div class="covered" - style="width:96.66666666666667%; - float:left;"> 58 </div><div class="partial" - style="width:1.6666666666666667%; - float:left;"> 1 </div><div class="not-covered" + style="width:98.33333333333333%; + float:left;"> 59 </div><div class="partial" style="width:1.6666666666666667%; float:left;"> 1 </div></td> -<td class="with-number">98.33 %</td> +<td class="with-number">100.00 %</td> <td class="with-number">144</td><td class="with-number">21</td><td class="with-number">60</td> </tr> <tr> @@ -230,9 +228,9 @@ </tr> <tr><td>Totals:</td> <td class="with-bar"></td> -<td class="with-number">66.14 %</td> +<td class="with-number">66.88 %</td> <td class="with-bar"></td> -<td class="with-number">67.89 %</td> +<td class="with-number">68.59 %</td> </tr> </table> </body> diff --git a/docs/cloverage/the_great_game/gossip/gossip.clj.html b/docs/cloverage/the_great_game/gossip/gossip.clj.html index 069225a..8a83a2d 100644 --- a/docs/cloverage/the_great_game/gossip/gossip.clj.html +++ b/docs/cloverage/the_great_game/gossip/gossip.clj.html @@ -11,193 +11,196 @@ 002 "Interchange of news events between gossip agents" </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 003 (:require [the-great-game.utils :refer [deep-merge]])) + 003 (:require [the-great-game.utils :refer [deep-merge]] + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 004 [the-great-game.gossip.news-items :refer [learn-news-item]])) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 004 + 005 </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 005 ;; Note that habitual travellers are all gossip agents; specifically, at this + 006 ;; Note that habitual travellers are all gossip agents; specifically, at this </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 006 ;; stage, that means merchants. When merchants are moved we also need to + 007 ;; stage, that means merchants. When merchants are moved we also need to </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 007 ;; update the location of the gossip with the same key. + 008 ;; update the location of the gossip with the same key. </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 008 + 009 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 009 (defn dialogue + 010 (defn dialogue </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 010 "Dialogue between an `enquirer` and an `agent` in this `world`; returns a + 011 "Dialogue between an `enquirer` and an `agent` in this `world`; returns a </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 011 map identical to `enquirer` except that its `:gossip` collection may have + 012 map identical to `enquirer` except that its `:gossip` collection may have </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 012 additional entries." + 013 additional entries." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 013 ;; TODO: not yet written, this is a stub. + 014 ;; TODO: not yet written, this is a stub. </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 014 [enquirer respondent world] + 015 [enquirer respondent world] </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> - 015 enquirer) + 016 enquirer) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 016 + 017 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 017 (defn gather-news + 018 (defn gather-news </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 018 ([world] + 019 ([world] </span><br/> <span class="not-covered" title="0 out of 2 forms covered"> - 019 (reduce + 020 (reduce </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> - 020 deep-merge + 021 deep-merge </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> - 021 world + 022 world </span><br/> <span class="not-covered" title="0 out of 3 forms covered"> - 022 (map + 023 (map </span><br/> <span class="not-covered" title="0 out of 4 forms covered"> - 023 #(gather-news world %) + 024 #(gather-news world %) </span><br/> <span class="not-covered" title="0 out of 5 forms covered"> - 024 (keys (:gossips world))))) + 025 (keys (:gossips world))))) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 025 ([world gossip] + 026 ([world gossip] </span><br/> <span class="not-covered" title="0 out of 7 forms covered"> - 026 (let [g (cond (keyword? gossip) + 027 (let [g (cond (keyword? gossip) </span><br/> <span class="not-covered" title="0 out of 5 forms covered"> - 027 (-> world :gossips gossip) + 028 (-> world :gossips gossip) </span><br/> <span class="not-covered" title="0 out of 3 forms covered"> - 028 (map? gossip) + 029 (map? gossip) </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> - 029 gossip)] + 030 gossip)] </span><br/> <span class="not-covered" title="0 out of 2 forms covered"> - 030 {:gossips + 031 {:gossips </span><br/> <span class="not-covered" title="0 out of 4 forms covered"> - 031 {(:id g) + 032 {(:id g) </span><br/> <span class="not-covered" title="0 out of 2 forms covered"> - 032 (reduce + 033 (reduce </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> - 033 deep-merge + 034 deep-merge </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> - 034 {} + 035 {} </span><br/> <span class="not-covered" title="0 out of 3 forms covered"> - 035 (map + 036 (map </span><br/> <span class="not-covered" title="0 out of 5 forms covered"> - 036 #(dialogue g % world) + 037 #(dialogue g % world) </span><br/> <span class="not-covered" title="0 out of 3 forms covered"> - 037 (remove + 038 (remove </span><br/> <span class="not-covered" title="0 out of 4 forms covered"> - 038 #( = g %) + 039 #( = g %) </span><br/> <span class="not-covered" title="0 out of 3 forms covered"> - 039 (filter + 040 (filter </span><br/> <span class="not-covered" title="0 out of 8 forms covered"> - 040 #(= (:location %) (:location g)) + 041 #(= (:location %) (:location g)) </span><br/> <span class="not-covered" title="0 out of 5 forms covered"> - 041 (vals (:gossips world))))))}}))) + 042 (vals (:gossips world))))))}}))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 042 + 043 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 043 (defn move-gossip + 044 (defn move-gossip </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 044 "Return a world like this `world` but with this `gossip` moved to this + 045 "Return a world like this `world` but with this `gossip` moved to this </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 045 `new-location`. Many gossips are essentially shadow-records of agents of + 046 `new-location`. Many gossips are essentially shadow-records of agents of </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 046 other types, and the movement of the gossip should be controlled by the + 047 other types, and the movement of the gossip should be controlled by the </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 047 run function of the type of the record they shadow. The [[#run]] function + 048 run function of the type of the record they shadow. The [[#run]] function </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 048 below does NOT call this function." + 049 below does NOT call this function." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 049 [gossip world new-location] + 050 [gossip world new-location] </span><br/> <span class="not-covered" title="0 out of 4 forms covered"> - 050 (let [id (cond + 051 (let [id (cond </span><br/> <span class="not-covered" title="0 out of 3 forms covered"> - 051 (map? gossip) + 052 (map? gossip) </span><br/> <span class="not-covered" title="0 out of 7 forms covered"> - 052 (-> world :gossips gossip :id) + 053 (-> world :gossips gossip :id) </span><br/> <span class="not-covered" title="0 out of 3 forms covered"> - 053 (keyword? gossip) + 054 (keyword? gossip) </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> - 054 gossip)] + 055 gossip)] </span><br/> <span class="not-covered" title="0 out of 2 forms covered"> - 055 (deep-merge + 056 (deep-merge </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> - 056 world + 057 world </span><br/> <span class="not-covered" title="0 out of 2 forms covered"> - 057 {:gossips + 058 {:gossips </span><br/> <span class="not-covered" title="0 out of 2 forms covered"> - 058 {id + 059 {id </span><br/> <span class="not-covered" title="0 out of 3 forms covered"> - 059 {:location new-location}}}))) + 060 {:location new-location}}}))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 060 + 061 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 061 (defn run + 062 (defn run </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 062 "Return a world like this `world`, with news items exchanged between gossip + 063 "Return a world like this `world`, with news items exchanged between gossip </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 063 agents." + 064 agents." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 064 [world] + 065 [world] </span><br/> <span class="not-covered" title="0 out of 3 forms covered"> - 065 (gather-news world)) + 066 (gather-news world)) </span><br/> </body> </html> diff --git a/docs/cloverage/the_great_game/gossip/news_items.clj.html b/docs/cloverage/the_great_game/gossip/news_items.clj.html index 0b410d6..6e5f68b 100644 --- a/docs/cloverage/the_great_game/gossip/news_items.clj.html +++ b/docs/cloverage/the_great_game/gossip/news_items.clj.html @@ -14,7 +14,7 @@ 003 (:require [the-great-game.world.location :refer [distance-between]] </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 004 [the-great-game.time :refer [now]])) + 004 [the-great-game.time :refer [game-time]])) </span><br/> <span class="blank" title="0 out of 0 forms covered"> 005 @@ -418,323 +418,329 @@ <span class="covered" title="10 out of 10 forms covered"> 138 #(some (fn [x] (= x location)) (:location %)) </span><br/> -<span class="covered" title="3 out of 3 forms covered"> - 139 (:knowledge gossip))))) +<span class="covered" title="10 out of 10 forms covered"> + 139 (cons {:location (:home gossip)} (:knowledge gossip)))))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> 140 </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 141 ;; (interest-in-location {:home [{0, 0} :test-home] :knowledge []} [:test-home]) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 142 + </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 141 (defn interesting-location? + 143 (defn interesting-location? </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 142 "True if the location of this news `item` is interesting to this `gossip`." + 144 "True if the location of this news `item` is interesting to this `gossip`." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 143 [gossip item] + 145 [gossip item] </span><br/> <span class="covered" title="9 out of 9 forms covered"> - 144 (> (interest-in-location gossip (:location item)) 1)) + 146 (> (interest-in-location gossip (:location item)) 0)) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 145 + 147 </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 146 (defn interesting-object? + 148 (defn interesting-object? </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 147 [gossip object] + 149 [gossip object] </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 148 ;; TODO: Not yet (really) implemented + 150 ;; TODO: Not yet (really) implemented </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 149 true) + 151 true) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 150 + 152 </span><br/> <span class="partial" title="1 out of 2 forms covered"> - 151 (defn interesting-topic? + 153 (defn interesting-topic? </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 152 [gossip topic] + 154 [gossip topic] </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 153 ;; TODO: Not yet (really) implemented + 155 ;; TODO: Not yet (really) implemented </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 154 true) + 156 true) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 155 + 157 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 156 (defn interesting-item? + 158 (defn interesting-item? </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 157 "True if anything about this news `item` is interesting to this `gossip`." + 159 "True if anything about this news `item` is interesting to this `gossip`." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 158 [gossip item] + 160 [gossip item] </span><br/> <span class="partial" title="13 out of 17 forms covered"> - 159 (or + 161 (or </span><br/> <span class="covered" title="6 out of 6 forms covered"> - 160 (interesting-character? gossip (:actor item)) + 162 (interesting-character? gossip (:actor item)) </span><br/> <span class="covered" title="6 out of 6 forms covered"> - 161 (interesting-character? gossip (:other item)) + 163 (interesting-character? gossip (:other item)) </span><br/> <span class="covered" title="6 out of 6 forms covered"> - 162 (interesting-location? gossip (:location item)) + 164 (interesting-location? gossip (:location item)) </span><br/> <span class="covered" title="6 out of 6 forms covered"> - 163 (interesting-object? gossip (:object item)) + 165 (interesting-object? gossip (:object item)) </span><br/> <span class="not-covered" title="0 out of 5 forms covered"> - 164 (interesting-topic? gossip (:verb item)))) + 166 (interesting-topic? gossip (:verb item)))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 165 + 167 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 166 (defn infer + 168 (defn infer </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 167 "Infer a new knowledge item from this `item`, following this `rule`" + 169 "Infer a new knowledge item from this `item`, following this `rule`" </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 168 [item rule] + 170 [item rule] </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 169 (reduce merge + 171 (reduce merge </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 170 item + 172 item </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 171 (cons + 173 (cons </span><br/> <span class="covered" title="5 out of 5 forms covered"> - 172 {:verb (:verb rule)} + 174 {:verb (:verb rule)} </span><br/> <span class="covered" title="13 out of 13 forms covered"> - 173 (map (fn [k] {k (apply (k rule) (list item))}) + 175 (map (fn [k] {k (apply (k rule) (list item))}) </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 174 (remove + 176 (remove </span><br/> <span class="covered" title="4 out of 4 forms covered"> - 175 #(= % :verb) + 177 #(= % :verb) </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 176 (keys rule)))))) - </span><br/> -<span class="blank" title="0 out of 0 forms covered"> - 177 - </span><br/> -<span class="covered" title="2 out of 2 forms covered"> - 178 (declare learn-news-item) + 178 (keys rule)))))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> 179 </span><br/> -<span class="covered" title="1 out of 1 forms covered"> - 180 (defn make-all-inferences - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 181 "Return a list of knowledge entries inferred from this news `item` by this - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 182 `gossip`." - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 183 [item] - </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 184 (set + 180 (declare learn-news-item) </span><br/> -<span class="covered" title="2 out of 2 forms covered"> - 185 (reduce +<span class="blank" title="0 out of 0 forms covered"> + 181 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 186 concat + 182 (defn make-all-inferences + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 183 "Return a list of knowledge entries inferred from this news `item` by this + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 184 `gossip`." + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 185 [item] + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 186 (set + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 187 (reduce + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 188 concat </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 187 (map + 189 (map </span><br/> <span class="covered" title="10 out of 10 forms covered"> - 188 #(:knowledge (learn-news-item {} (infer item %) false)) + 190 #(:knowledge (learn-news-item {} (infer item %) false)) </span><br/> <span class="covered" title="7 out of 7 forms covered"> - 189 (:inferences (news-topics (:verb item))))))) + 191 (:inferences (news-topics (:verb item))))))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 190 + 192 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 191 (defn degrade-character + 193 (defn degrade-character </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 192 "Return a character specification like this `character`, but comprising + 194 "Return a character specification like this `character`, but comprising </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 193 only those properties this `gossip` is interested in." + 195 only those properties this `gossip` is interested in." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 194 [gossip character] + 196 [gossip character] </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 195 ;; TODO: Not yet (really) implemented + 197 ;; TODO: Not yet (really) implemented </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> - 196 character) + 198 character) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 197 + 199 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 198 (defn degrade-location + 200 (defn degrade-location </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 199 "Return a location specification like this `location`, but comprising + 201 "Return a location specification like this `location`, but comprising </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 200 only those elements this `gossip` is interested in. If none, return + 202 only those elements this `gossip` is interested in. If none, return </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 201 `nil`." + 203 `nil`." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 202 [gossip location] + 204 [gossip location] </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 203 (let [l (if + 205 (let [l (if </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 204 (coll? location) + 206 (coll? location) </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 205 (filter + 207 (filter </span><br/> <span class="partial" title="5 out of 7 forms covered"> - 206 #(when (interesting-location? gossip %) %) + 208 #(when (interesting-location? gossip %) %) </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 207 location))] + 209 location))] </span><br/> <span class="partial" title="5 out of 7 forms covered"> - 208 (when-not (empty? l) l))) + 210 (when-not (empty? l) l))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 209 + 211 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 210 (defn learn-news-item + 212 (defn learn-news-item </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 211 "Return a gossip like this `gossip`, which has learned this news `item` if + 213 "Return a gossip like this `gossip`, which has learned this news `item` if </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 212 it is of interest to them." + 214 it is of interest to them." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 213 ;; TODO: Not yet implemented + 215 ;; TODO: Not yet implemented </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 214 ([gossip item] + 216 ([gossip item] </span><br/> -<span class="not-covered" title="0 out of 5 forms covered"> - 215 (learn-news-item gossip item true)) +<span class="covered" title="5 out of 5 forms covered"> + 217 (learn-news-item gossip item true)) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 216 ([gossip item follow-inferences?] + 218 ([gossip item follow-inferences?] </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 217 (if + 219 (if </span><br/> <span class="covered" title="4 out of 4 forms covered"> - 218 (interesting-item? gossip item) + 220 (interesting-item? gossip item) </span><br/> <span class="covered" title="5 out of 5 forms covered"> - 219 (let [g (assoc gossip :knowledge + 221 (let [g (assoc gossip :knowledge </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 220 (cons + 222 (cons </span><br/> <span class="covered" title="5 out of 5 forms covered"> - 221 (assoc + 223 (assoc </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 222 item + 224 item </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 223 :nth-hand (if + 225 :nth-hand (if </span><br/> <span class="covered" title="5 out of 5 forms covered"> - 224 (number? (:nth-hand item)) + 226 (number? (:nth-hand item)) </span><br/> <span class="not-covered" title="0 out of 5 forms covered"> - 225 (inc (:nth-hand item)) + 227 (inc (:nth-hand item)) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 226 1) + 228 1) </span><br/> <span class="partial" title="8 out of 11 forms covered"> - 227 :date (if (number? (:date item)) (:date item) (now)) + 229 :date (if (number? (:date item)) (:date item) (game-time)) </span><br/> <span class="covered" title="6 out of 6 forms covered"> - 228 :location (degrade-location gossip (:location item)) + 230 :location (degrade-location gossip (:location item)) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 229 ;; ought to degratde the location + 231 ;; ought to degratde the location </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 230 ;; ought to maybe-degrade characters we're not yet interested in + 232 ;; ought to maybe-degrade characters we're not yet interested in </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 231 ) + 233 ) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 232 ;; ought not to add knowledge items we already have, except + 234 ;; ought not to add knowledge items we already have, except </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 233 ;; to replace if new item is of increased specificity + 235 ;; to replace if new item is of increased specificity </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 234 (:knowledge gossip)))] + 236 (:knowledge gossip)))] </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 235 (if follow-inferences? + 237 (if follow-inferences? </span><br/> -<span class="not-covered" title="0 out of 3 forms covered"> - 236 (assoc - </span><br/> -<span class="not-covered" title="0 out of 1 forms covered"> - 237 g - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 238 :knowledge - </span><br/> -<span class="not-covered" title="0 out of 8 forms covered"> - 239 (concat (:knowledge g) (make-all-inferences item))) +<span class="covered" title="3 out of 3 forms covered"> + 238 (assoc </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 240 g)) + 239 g + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 240 :knowledge + </span><br/> +<span class="covered" title="8 out of 8 forms covered"> + 241 (concat (:knowledge g) (make-all-inferences item))) + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 242 g)) </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> - 241 gossip))) - </span><br/> -<span class="blank" title="0 out of 0 forms covered"> - 242 - </span><br/> -<span class="blank" title="0 out of 0 forms covered"> - 243 + 243 gossip))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> 244 </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 245 + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 246 + </span><br/> </body> </html> diff --git a/docs/cloverage/the_great_game/time.clj.html b/docs/cloverage/the_great_game/time.clj.html index 8822abe..2c7d56e 100644 --- a/docs/cloverage/the_great_game/time.clj.html +++ b/docs/cloverage/the_great_game/time.clj.html @@ -244,7 +244,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 080 passed (as a `long`), the game time represented by that value." </span><br/> -<span class="not-covered" title="0 out of 4 forms covered"> +<span class="covered" title="4 out of 4 forms covered"> 081 ([] (game-time (now))) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> diff --git a/docs/codox/Baking-the-world.html b/docs/codox/Baking-the-world.html new file mode 100644 index 0000000..5924b7f --- /dev/null +++ b/docs/codox/Baking-the-world.html @@ -0,0 +1,54 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>Baking the world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 current"><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#baking-the-world" name="baking-the-world"></a>Baking the world</h1> +<h4><a href="#wednesday-8-may-2019" name="wednesday-8-may-2019"></a>Wednesday, 8 May 2019</h4> +<p><img src="https://2.bp.blogspot.com/-qxkySlJNmtY/XNKvJksmSjI/AAAAAAAAnXU/z1Zv2LmjydMmi_1q2mWdwVALmdfi9OItwCLcBGAs/s1600/Devorgillas-Bridge.jpg" alt="Devogilla’s Bridge in Dumfries, early foourteenth century" /></p> +<p>In previous posts, I’ve described algorithms for dynamically <a href="Populating-a-game-world.html">populating</a> and dynamically <a href="Settling-a-game-world.html">settling</a> a game world. But at kilometre scale (and I think we need a higher resolution than that - something closer to hectare scale), settling the British Isles using my existing algorithms takes about 24 hours of continuous compute on an eight core, 3GHz machine. You cannot do that every time you launch a new game.</p> +<p>So the game development has to run in four phases: the first three phases happen during development, to create a satisfactory, already populated and settled, initial world for the game to start from. This is particularly necessary if hand-crafted buildings and environments are going to be added to the world; the designers of those buildings and environments have to be able to see the context into which their models must fit.</p> +<h2><a href="#phase-one-proving-the-procedural-world" name="phase-one-proving-the-procedural-world"></a>Phase one: proving - the procedural world</h2> +<p>I’m going to call the initial phase of the game run - the phase which takes place before the quest team write their quests and the art department adds their hand-crafted models - ‘proving’, as when dough has been been made and set aside to rise.</p> +<p>Then, when the landscape has developed - the areas of forest, scrub, open meadow, moorland, savanah and desert are determined, the rivers plotted, the settlers moved in, their trades determined and their settlements allocated, the roadways which link settlements routed, river crossings and ports defined - the proving process ends, and the world is turned over to the plot-writers, quest builders and designers, for a process we can see as analogous to kneading.</p> +<p>But, before going there, to summarise the proving stage. The inputs are:</p> +<ol> + <li>A raster height map (although this could be randomly generated using any one of many fractal algorithms) - this probably uses ideas from <a href="../../2013/07/tessellated-multi-layer-height-map.html">tessellated multi-layer height map</a>;</li> + <li>Optionally, a raster rainfall map at 1km resolution (although my personal preference is that this should be generated procedurally from the height map).</li> +</ol> +<p>The outputs are</p> +<ol> + <li>A vector drainage map (rivers);</li> + <li>A raster biome map at roughly 1 km resolution (it might be anything between hectare resolution and 1Km resolution, but obviously higher resolution takes more storage);</li> + <li>A database of settlers and their settlements, such that the settlements have x,y co-ordinates;</li> + <li>A vector road map.</li> +</ol> +<p>In this sense, the ‘biome map’ is just the end state of a <a href="../../2014/08/modelling-settlement-with-cellular.html">Microworld</a> run. The ‘biomes’ include things like ‘forest’, ‘scrub’, ‘heath’, ‘pasture’, but they may also include human settlement, and even settlement by different cultural groups.</p> +<p>This gives us all we need to vegetate and furnish the world. When rendering each square metre we have</p> +<ol> + <li>The x,y coordinates, obviously;</li> + <li>The altitude, taken from the height map;</li> + <li>The biome, taken from the biome map;</li> + <li>The biomes of adjacent cells in the biome map;</li> + <li>The proximity of the nearest watercourse;</li> + <li>The proximity of the nearest road or pathway;</li> + <li>Whether we are inside, or outside, a settlement (where for these purposes, ‘settlement’ includes enclosed field), and if inside, what type of settlement it is.</li> +</ol> +<p>Given these parameters, and using the x, y coordinates as seed of a deterministic pseudo-random number generator, we can generate appropriate vegetation and buildings to render a believable world. The reason for pulling adjacent biomes into the renderer is that sharp transitions from one biome to another - especially ones which align to a rectangular grid - rarely exist in nature, and that consequently most transitions from one biome to another should be gradual.</p> +<p>Note that proving, although extremely compute intensive, is not necessarily a one-time job. If the designers aren’t satisfied with the first world to emerge from this process, they can run it again, and again, to generate a world with which they are satisfied. It’s also possible to hand-edit the output of proving, if needed.</p> +<p>But now, designers and story-writers can see the world in which their creations will be set.</p> +<h2><a href="#phase-two-kneading-making-the-world-fit-our-needs" name="phase-two-kneading-making-the-world-fit-our-needs"></a>Phase two: kneading - making the world fit our needs</h2> +<p>Enough of proving, let’s get on to kneading.</p> +<p>Hand-designed buildings and environments are likely to be needed, or at least useful, for plot; also, particularly, very high status buildings are probably better hand designed. I’m inclined to think that less is more here, for two reasons:</p> +<p>You cannot hand design a very large world, it’s just impossible. How CD Project Red managed with Witcher 3 I don’t know, since I understand that is largely hand designed; but that was a very large team, and even so it isn’t a world on the scale I’m envisaging.</p> +<p>Procedurally generated models take a wee bit of compute power to reify, but not a huge amount, and they’re trivial to store - you need one single birch leaf model and one single birch-bark texture generator to make every birch tree in the game, and probably a single parameterised tree function can draw every tree of every species (and quite a lot of shrubs and ground-cover plants, too). But once reified, they take no longer to render than a manually crafted model.</p> +<p>By contrast, a manually crafted model will take a very great deal more space to store, such that being able to render a large world from hand crafted models, without excessive model re-use, isn’t going to be possible.</p> +<p>So it’s better in my opinion to put effort into good procedural generation functions, not just for foliage but also for buildings. My reason for using a picture of a medieval bridge at the head of the essay is to illustrate exactly this point: even in the medieval period, bridges comprise a series of repeating modules. Take one arch module and one ramp module from Devorgilla’s bridge as models, add texture skins for several different stone types, stretch the modules a little in whatever dimension is needed, and repeat the arch module as many times as needed, and you can create a range of bridges to span many different rivers - which will all be visibly similar, but that’s fine, that’s the nature of a traditional culture - but each slightly different.</p> +<p>Take half a dozen sets of models - timber bridges for forested biomes, brick bridges for biomes without stone or timber - and you can build procedural bridges across a whole continent without ever exactly repeating yourself.</p> +<p>However, in some places the designers and story writers will want, for plot reasons and to create iconic environments, to add models. I’m inclined not to over do this, both for reasons of development effort and for reasons of storage cost, but they will. Very high status buildings may need to be unique and distinctive, for example. These need to be designed and their locations and spatial dimensions added to the database, so that the models can be rendered in the right positions (and, critically, procedurally generated models can be omitted in those positions!)</p> +<p>Story and quest writers will also want characters for their plots. While there’s no reason why writers cannot add entirely new characters to the database, there’s no reason why they cannot incorporate characters generated in the settlement phase into the story; for this reason, characters need to be able to be tagged in the database as plot characters, and with what quests/elements of the plot they’re associated.</p> +<p>This allows a mechanism to prevent a plot character from being killed by another non-player character, or dying of disease or starvation, before the plot elements in which they feature have been completed.</p> +<h2><a href="#phase-three-baking-making-it-delicious" name="phase-three-baking-making-it-delicious"></a>Phase three: baking - making it delicious</h2> +<p>Once the world has been populated, settled, vegetated, the story has been written, the models built, the quests designed, there is probably a process of optimisation - stripping out things which aren’t needed at play time, streamlining things that are - before you have a game ready to ship; but really I haven’t yet given that much thought.</p> +<h2><a href="#phase-four-eating-" name="phase-four-eating-"></a>Phase four: eating!</h2> +<p>At the end, though, you have a game, and a player plays it. How much of the dynamic, organic life that brought the game through proving continues on into the playing phase? If the <a href="The-spread-of-knowledge-in-a-large-game.html">gossip</a> ideas are to work, if unscripted, non-plot-related events (as well as scripted, plot related events) are to happen while the player plays, if news of these events is to percolate through the world and reach the player in organic, unscripted ways, if a lot of the emergent gameplay I’m imagining is to work, then quite a lot of the dynamic things must be happening.</p> +<p>Of course, part of this depends on the length of ‘game world time’ is expected to elapse in the course of one play through of the game. If it’s less than a year, then you don’t need children dynamically being born, and characters dynamically growing older; but if more, then you do. Similarly, you don’t need a real simulation of trading to dynamically drive prices in markets, but for a fun trading sub-game to emerge, you probably do, and if you are using merchants as news spreading agents the additional compute cost is not high.</p> +<p>And I understand that many game writers will shudder at the thought that a war might (or might not) start in the middle of their plot, that a battle might, one time in a thousand, take place right where they’ve plotted some significant encounter. Most modern video games are essentially just very complicated state machines: if you make this sequence of choices, this outcome will happen, guaranteed. Or else they’re puddles of random soup, where everything that happens is more or less driven by a random number generator. What I’m envisaging is something quite different: a world in which traders gonna trade, robbers gonna rob, lovers gonna love, scandal-mongers gonna make scandal, organically and dynamically whether the player is there or not, and news of these events will filter through to the player through the gossip network also organically and dynamically.</p> +<p>A world, in short, through which no two runs will ever be the same, in which interesting bits of story will happen with no-one directing or scripting them. And for that to work, some of the same dynamic processes that drove the proving phase have to continue into the eating phase.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/Populating-a-game-world.html b/docs/codox/Populating-a-game-world.html new file mode 100644 index 0000000..8a50174 --- /dev/null +++ b/docs/codox/Populating-a-game-world.html @@ -0,0 +1,297 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>Populating a game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 current"><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#populating-a-game-world" name="populating-a-game-world"></a>Populating a game world</h1> +<h4><a href="#saturday-6-july-2013" name="saturday-6-july-2013"></a>Saturday, 6 July 2013</h4> +<p><em>(You might want to read this essay in conjunction with my older essay, <a href="../../2009/12/settling-game-world.html">Settling a game world</a>, which covers similar ground but which this hopefully advances on)</em></p> +<p>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.</p> +<h2><a href="#basic-occupations" name="basic-occupations"></a>Basic occupations</h2> +<p>The following are ‘unskilled’ occupations which form the base of the occupation system. Generally a male character at maturity becomes a ‘Vagrant’ and wanders though the world until he encounters a condition which allows him to advance up the occupation graph. If an occupation wholly fails, the character can revert to being a ‘Vagrant’ and start again.</p> +<table> + <thead> + <tr> + <th>Occupation </th> + <th>Dwelling </th> + <th>condition </th> + <th>New trade </th> + <th>Notes </th> + </tr> + </thead> + <tbody> + <tr> + <td>Vagrant </td> + <td>None </td> + <td>land available and animals available </td> + <td>Herdsman </td> + <td> </td> + </tr> + <tr> + <td>Vagrant </td> + <td>None </td> + <td>arable land available </td> + <td>Farmer </td> + <td>See crops </td> + </tr> + <tr> + <td>Vagrant </td> + <td>None </td> + <td>has weapons </td> + <td>Outlaw </td> + <td> </td> + </tr> + <tr> + <td>Herdsman </td> + <td>None </td> + <td>Insufficient food </td> + <td>Vagrant </td> + <td> </td> + </tr> + <tr> + <td>Farmer </td> + <td>Farm </td> + <td>Insufficient food </td> + <td>Vagrant </td> + <td> </td> + </tr> + <tr> + <td>Outlaw </td> + <td>None </td> + <td>loses weapons </td> + <td>Vagrant </td> + <td> </td> + </tr> + <tr> + <td>Vagrant </td> + <td>None </td> + <td>craftsman willing to take on apprentice </td> + <td>Apprentice </td> + <td> </td> + </tr> + <tr> + <td>Herdsman </td> + <td>None </td> + <td>arable land available </td> + <td>Farmer </td> + <td> </td> + </tr> + <tr> + <td>Outlaw </td> + <td>None </td> + <td>Battle hardened </td> + <td>OutlawLeader </td> + <td> </td> + </tr> + <tr> + <td>Apprentice </td> + <td>(craftsman’s) </td> + <td>Qualified </td> + <td>Journeyman </td> + <td> </td> + </tr> + <tr> + <td>Journeyman </td> + <td>None </td> + <td>Unserviced customers available </td> + <td>Craftsman </td> + <td>See crafts </td> + </tr> + <tr> + <td>Craftsman </td> + <td>See crafts </td> + <td>Too few customers </td> + <td>Journeyman </td> + <td> </td> + </tr> + <tr> + <td>Journeyman </td> + <td>None </td> + <td>arable land available </td> + <td>Farmer </td> + <td> </td> + </tr> + <tr> + <td>Vagrant </td> + <td>None </td> + <td>Lord with vacancies available </td> + <td>Soldier </td> + <td>See military </td> + </tr> + <tr> + <td>OutlawLeader </td> + <td>None </td> + <td>Unprotected farms available </td> + <td>Laird </td> + <td>See nobility </td> + </tr> + </tbody> +</table> +<h3><a href="#gender-dimorphism" name="gender-dimorphism"></a>Gender dimorphism</h3> +<p>In the paragraph above I said ‘a male character’. It may seem unfair to create a game world in which the sexual inequality of the real world is carried over, and for that reason it seems sensible that female children should have the same opportunities as male children. But games work on conflicts and injustices, and so it seems reasonable to me to have a completely different occupation graph for women. I haven’t yet drawn that up.</p> +<h3><a href="#wandering" name="wandering"></a>Wandering</h3> +<p>Vagrants wander in a fairly random way. While vagrants are wandering they are assumed to live off the land and require no resources. Solitary outlaws similarly wander until they find a leader, although they will avoid the areas protected by nobles. Herdsmen also wander but only over unenclosed pasture. They visit markets, if available, periodically; otherwise, they live off their herds. Journeymen wander from market to market, but are assumed to trade skills with farmers along the way.</p> +<h2><a href="#crafts" name="crafts"></a>Crafts</h2> +<p>Crafts are occupations which require acquired skills. In the initial seeding of the game world there are probably ‘pioneers’, who are special vagrants who, on encountering the conditions for a particular craft to thrive, instantly become masters of that craft.</p> +<table> + <thead> + <tr> + <th>Craft </th> + <th>Dwelling </th> + <th>Supplies </th> + <th>Perishable? </th> + <th>Customer types </th> + <th>Needs market? </th> + <th>Customers </th> + <th>Supplier </th> + <th>Suppliers </th> + <th>Recruits </th> + </tr> + </thead> + <tbody> + <tr> + <td> </td> + <td> </td> + <td> </td> + <td> </td> + <td> </td> + <td> </td> + <td>Solo </td> + <td>Per journeyman </td> + <td>Per apprentice </td> + <td> </td> + <td> </td> + <td> </td> + </tr> + </tbody> +</table> +<p>| | | | | | | — | — | — | | | | | | | | | | | Min | Max | Min | Max | Min | Max | | | | | — | | | | | | — | — | — | — | — | — | | | | | Smith | Forge | Metal Items | no | Farmer, Soldier | No | 6 | 10 | 4 | 6 | 1 | 3 | Miner | 1 | Vagrant | | Baker | Bakery | Bread | yes | All NPCs | No | 20 | 30 | 12 | 18 | 6 | 10 | Miller | 1 | Vagrant | | Miller | Mill | Flour, meal | no | Baker, Innkeeper | No | 2 | 3 | 1 | 2 | 1 | 1 | Farmer | 6 | Vagrant | | Weaver | Weaver’s house | Cloth | no | All NPCs | Yes | 6 | 10 | 4 | 6 | 1 | 3 | Herdsman | 2 | Vagrant | | Innkeeper | Inn | Food, hospitality | yes | Merhant, Soldier, Farmer, Lord | No | 10 | 20 | 5 | 10 | 2 | 4 | Farmer,Herdsman | 2 | Vagrant | | Miner | Mine | Ores | no | Smith | Yes | 2 | 3 | 1 | 2 | 1 | 1 | Farmer | 1 | Vagrant | | Butcher | Butchery | Meat | yes | All NPCs | No | 10 | 20 | 4 | 8 | 2 | 4 | Farmer, Herdsman | 2 | Vagrant | | Merchant | Townhouse | Transport, logistics | n/a | Craftsmen, nobility | Yes | 10 | 20 | 4 | 8 | 2 | 4 | n/a | n/a | Vagrant | | Banker | Bank | Financial services | yes | Merchant | Yes | 10 | 20 | 4 | 8 | 2 | 4 | n/a | n/a | Merchant | | Scholar | Academy | Knowledge | n/a | Ariston, Tyrranos, General, Banker | No | 1 | 4 | 1 | 2 | 0.25 | 0.5 | n/a | n/a | Vagrant | | Priest | Temple | Religion | n/a | All NPCs | No | 50 | 100 | | | | | | | Scholar | | Chancellor | Chancellory | Administration | n/a | Ariston, Tyrranos | No | 1 | 1 | 0 | 0 | 0 | 0 | | | Scholar | | Lawyer | Townhouse | Legal services | n/a | Ariston, Merchant, Banker | No | 4 | 6 | 2 | 3 | 1 | 2 | | | Scholar | | Magus | Townhouse | Magic | n/a | Tyrranos, General | No | 3 | 4 | 1 | 2 | 0.25 | 0.5 | | | Scholar |</p> +<p>A craftsman starts as an apprentice to a master of the chosen crafts. Most crafts recruit from vagrants, A character must be a journeyman merchant before becoming an apprentice banker, while various intellectual crafts recruit from journeyman scholars.</p> +<p>It’s assumed that a journeyman scholar, presented with the opportunity, would prefer to become an apprentice magus than a master scholar.</p> +<p>A journeyman settles and becomes a master when he finds a location with at least the solo/min number of appropriate customer type who are not serviced by another master craftsman of the same craft; he also (obviously) needs to find enough free land to set up his dwelling. The radius within which his serviced customers must live may be a fixed 10Km or it may be variable dependent on craft. If there are unserviced customers within his service radius, the master craftsman may take on apprentices and journeymen to service the additional customers up to a fixed limit – perhaps a maximum of four of each, perhaps variable by craft. If the number of customers falls, the master craftsman will first dismiss journeymen, and only in desperate circumstances dismiss apprentices. Every apprentice becomes a journeyman after three years service.</p> +<p>The list of crafts given here is illustrative, not necessarily exhaustive.</p> +<h2><a href="#aristocracy" name="aristocracy"></a>Aristocracy</h2> +<p>As in the real world, aristocracy is essentially a protection racket, and all nobles are originally outlaw leaders who found an area with rich pickings and settled down.</p> +<table> + <thead> + <tr> + <th>Rank </th> + <th>Follower rank </th> + <th>Client type </th> + <th>Clients protected </th> + <th>Trade in market </th> + <th>Followers per client </th> + </tr> + </thead> + <tbody> + <tr> + <td> </td> + <td> </td> + <td> </td> + <td>Min </td> + <td>Max </td> + <td>Min </td> + <td>Max </td> + <td>Min </td> + <td>Max </td> + </tr> + </tbody> +</table> +<table> + <tbody> + <tr> + <td>Bonnet Laird </td> + <td>Private </td> + <td>Farmer </td> + <td>6 </td> + <td>20 </td> + <td>0 </td> + <td>100 </td> + <td>0.25 </td> + <td>0.5 </td> + </tr> + <tr> + <td>Ariston </td> + <td>Captain </td> + <td>Bonnet Laird </td> + <td>10 </td> + <td>30 </td> + <td>25 </td> + <td>1000 </td> + <td>0.5 </td> + <td>1 </td> + </tr> + <tr> + <td>Tyrranos </td> + <td>General </td> + <td>Ariston </td> + <td>10 </td> + <td>unlimited </td> + <td>250 </td> + <td>unlimited </td> + <td>0.1 </td> + <td>0.5 </td> + </tr> + </tbody> +</table> +<p>Every noble establishes a market and, if he employs a chancellor, taxes trade in it. Crafts which ‘need a market’ can only be established in the vicinity of a market, irrespective of whether there are sufficient customers elsewhere. All non-perishable goods are traded through the markets, and merchants will transfer surpluses between markets if they can make a profit from it.</p> +<p>My world has essentially three ranks of nobility. The title of the lowest rank will probably change to something vaguely italianate. An aristocrat advances to the next rank when either the requisite number of clients become available in the locality to support the next rank, or the trade in his market becomes sufficient to support the next rank.</p> +<p>Obviously when a province has eleven unprotected bonnet lairds, under the rules given above any of them may become the ariston, and essentially it will be the next one to move after the condition becomes true. If the number of available clients drops below the minimum and the market trade also drops below the minimum, the noble sinks to a lower level – in the case of the bonnet laird, to outlaw leader.</p> +<h2><a href="#military" name="military"></a>Military</h2> +<p>The aristocracy is supported by the military. An outlaw becomes a soldier when his leader becomes a noble. Otherwise, vagrants are recruited as soldiers by bonnet lairds or sergeants who have vacancies. Captains are recruited similarly by aristons or generals, and generals are recruited by tyrranos. If the conditions for employment no longer exist, a soldier is allowed a period of unemployment while he lives off savings and finds another employer, but if no employer is found he will eventually become an outlaw (or, if an officer, an outlaw leader). A private is employed by his sergeant or bonnet laird, a sergeant by his captain, a captain by his arison or general, a general by his tyrranos.</p> +<table> + <thead> + <tr> + <th>Rank </th> + <th>Follower rank </th> + <th>Followers </th> + <th> </th> + <th>Condition </th> + <th>New rank </th> + </tr> + </thead> + <tbody> + <tr> + <td> </td> + <td> </td> + <td>Min </td> + <td>Max </td> + <td> </td> + <td> </td> + </tr> + </tbody> +</table> +<table> + <tbody> + <tr> + <td>Private </td> + <td>None </td> + <td>0 </td> + <td>0 </td> + <td>Battle hardened, unled privates </td> + <td>Sergeant </td> + </tr> + <tr> + <td>Sergeant </td> + <td>Private </td> + <td>5 </td> + <td>15 </td> + <td>More battle hardened, unled sergeantts </td> + <td>Captain </td> + </tr> + <tr> + <td>Captain </td> + <td>Sergeant </td> + <td>5 </td> + <td>15 </td> + <td>More battle hardened, unled captains </td> + <td>General </td> + </tr> + <tr> + <td>General </td> + <td>Captain </td> + <td>5 </td> + <td>unlimited </td> + <td> </td> + <td> </td> + </tr> + </tbody> +</table> +<p>Soldiers have no loyalty to their employer’s employer.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/Settling-a-game-world.html b/docs/codox/Settling-a-game-world.html new file mode 100644 index 0000000..f7b58df --- /dev/null +++ b/docs/codox/Settling-a-game-world.html @@ -0,0 +1,68 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>Settling a game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 current"><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#settling-a-game-world" name="settling-a-game-world"></a>Settling a game world</h1> +<h4><a href="#wednesday-30-december-2009" name="wednesday-30-december-2009"></a>Wednesday, 30 December 2009</h4> +<p><em>This essay is part of a series with ‘<a href="Worlds-and-flats.html">Worlds and Flats</a>’ and ‘<a href="The-spread-of-knowledge-in-a-large-game-world.html">The spread of knowledge in a large game world</a>’; 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 ‘<a href="Populating-a-game-world.html">Populating a game world</a>’)</em></p> +<h3><a href="#microworld" name="microworld"></a>Microworld</h3> +<p>Some twenty years ago I wrote a rather sophisticated cellular automaton which I called ‘Microworld’ which modelled the spread of human population over a landscape. It did this by first fractally folding a grid to assign elevations to cells. Then, cells below a critical elevation – the tree line – were assigned as forest. For each cycle – ‘year’ – a cell remained forest, its soil fertility would increase. Random events – ‘lightning strikes’ could change a cell from forest to clearing. Then the following transitions might take place, each with a probability, where each cell is considered to have eight neighbours:</p> +<ul> + <li>A forest cell with a lightning strike as a neighbour may catch fire and burn</li> + <li>A forest cell with a fire as a neighbour may catch fire and burn</li> + <li>A burning cell become a clearing cell</li> + <li>A clearing cell with forest or scrub as a neighbour may become scrub</li> + <li>A scrub cell may become forest</li> +</ul> +<p>This more or less completes the ‘natural’ cycle… then we get to settlement. Pastoral and agrarian 1 cells gradually degrade soil fertility (erosion, etc). Agrarian 2 cells do not degrade fertility.</p> +<ul> + <li>A clearing cell (including cells above the treeline) may become a pastoral cell (pastoral 1, no settlement)</li> + <li>A pastoral 1 cell whose soil fertility falls below a threshhold becomes waste</li> + <li>A pastoral 1 cell with no pastoral neighbours may become waste</li> + <li>A waste cell below the treeline may become scrub</li> + <li>A waste cell may become clearing</li> + <li>A pastoral 1 cell with two or more pastoral neighbours may become a pastoral 2 cell (settlement)</li> + <li>A forest cell with two or more pastoral neighbours may become clearing</li> + <li>A pastoral 2 cell with two or more pastoral 2 neighbours may become agrarian 1</li> + <li>An agrarian 1 cell which falls below a critical fertility becomes pastoral 1</li> + <li>An agrarian 1 cell with three or more agrarian 1 neighbours becomes agrarian 2 (smith, mill)</li> + <li>A cell with three or more agrarian 2 neighbours becomes market</li> + <li>A market cell with no agrarian 2, market or urban neighbours becomes waste</li> + <li>A cell with two or more market neighbours becomes urban</li> +</ul> +<p>That’s simple, but it provides a remarkable good model of population spread. however, it is essentially a grid and so doesn’t make for natural-seeming landscapes when considered as a three dimensional rendered world. How can we do better?</p> +<h3><a href="#microworld-two" name="microworld-two"></a>Microworld Two</h3> +<p>The objective of this essay is to outline an angorithm for creating inhabited landscapes in which games can be set, which are satisfyingly believable when rendered in three dimensions. The objective of creating landscapes ‘procedurally’ – that is, with algorithms – is that they can be very much larger than designed landscapes for the same richness of local detail. This does not mean that every aspect of the final landscape must be ‘procedural’. It would be possible to use the techniques outlined here to create landscapes which were different every time the game was played, but it would be equally possible to create a landscape which was frozen at a particular point and then hand edited to add features useful to the game’s plot. And while I’m principally thinking in this about role playing games, this sort of landscape would be applicable to many other sorts of games – strategy games, god games, first person shooters…</p> +<h3><a href="#the-physical-geography" name="the-physical-geography"></a>The physical geography</h3> +<p>Consider our landscape as, once again, a fractally folded sheet on which any given point has characteristics based on its elevation and orientation. There are two critical levels – water level and treeline. The water level is, overall, sea level, but in the case of a localised depression it is equal to the lowest land height between the depression and the sea (lakes form in depressions). Computing the fractal sheet forms stage one in computing the landscape. Next, we need functions which, for any given point on the landscape, compute two different dimensions of soil fertility: water and warmth. We’ll assume a coriolis prevailing wind blowing from the west, bringing in damp air from an ocean in that direction. Western slopes are wetter than eastern slopes. In principle, also, there’s likely to be a rain shadow to the east of high ground leading to considerable aridity, but that may be too expensive to compute. Rain runs swiftly off steeper slopes, more slowly on flatter ground, so flatter ground is wetter than steeper ground. Water flows down hill, so lower ground is on the whole wetter than higher ground. This isn’t a precise model of soil hydrology, but I think it’s good enough. From each lake a watercourse follows the lowest possible path to the sea. Watercourses modify the land overwhich they flow, carving out a route at least sufficient to carry the amount of water collected in the watershed above each point. Where watercourses flow down steeper gradients, they carve out gullies, possibly with waterfalls. Where they cross shallower gradients or level ground, they become broader. Computing the watercourses becomes the second stage of computing the lanscape.</p> +<h3><a href="#vegetation" name="vegetation"></a>Vegetation</h3> +<p>Now sprinkle seeds randomly across the landscape at a density of roughly one every ten square metres. Seeds which fall in water, ignore (? or make into water plants?). The position of the plant is taken from the random sprinkling. The species and size of the plant that grows from the plant are a function of the water and warmth functions described above, with latitude and longitude as seeds for pseudo-random functions delivering aspects like branching and so on – enough to make individual plants distinct and not carbon copies even of other plants of the same species, but nevertheless recreatable from just the latitude and longitude. So for each plant only two integers need to be stored, yet every time a player passes he will see an identically recreated world. Of course there is a trade-off between storage space and rendering time, and it may be more efficient to build and cache a detailed model of each plant. Like a lot of other things it depends on the game being designed and the processing power of the platform on which that game is delivered. As to how the functions which select the vegetation type work, obviously trees grow better in wetter places, grassland plants in dryer places; within the wetter places, coniferous trees are more prevalent where it is cooler, broadleaves where it is warmer. In the very wettest places, willows, alders and marshland plants. These plants – the seeded plants – are the feature plants of the landscape. When rendering the landscape the renderer would first apply a suitable local surface texture, for example, in grassland areas, grass.</p> +<h3><a href="#settling-the-world" name="settling-the-world"></a>Settling the world</h3> +<p>So now we need to make this an inhabited landscape. My proposal for this is to introduce proto-actors, which may be the same software agents as the non-player characters the user will interact with (see my essay on the spread of knowledge). At this stage in their lifecycle, the proto-actors are fairly simple state transition machines. Generally, their algorithm is as follows: Starting from one or two seed points, proto-agents will initially move across the landscape travelling at most 20Km in a day, preferring to stop at inns or else at existing settlements; and will maintain a history of the places they have been, never revisiting a place until they have settled. Whenever moving, whether before they have settled or after, proto-actors will plan their route across the landscape, avoiding trees, buildings, and steep gradients, and will prefer to cross rivers at a bridge (if available) or else a ferry (if available), or failing that at the narrowest convenient point. When proto-actors settle, they will claim an area of territory appropriate to their trade – more below; the system must build up a database of land holdings. In particular a land holding will never cross a watercourse, an existing road or overlap another land holding (although roads may develop across existing holdings). This is key because I don’t want holdings normally to have regular shapes. A settled proto-agent will build a building to live in, and possibly an additional one for his trade. When building buildings, proto-actors will prefer to build at the edge of their land holding, as close as possible to existing buildings and ideally at the side of an existing road. The richer an existing building is, the more attractive it will be to new buildings. Buildings will be built with their long edge aligned with the edge of the owner’s hoding.</p> +<ul> + <li>A proto-actor is initially, as described above, an itinerant. Itinerants are introduced into the world at a small number of geographical locations, and gradually, not all at once. Itinerants travel as described above. As they move they will leave breadcrumb trails with a roughly ten metre resolution. If they cross an existing track which goes in roughly the right direction they will prefer to follow it. Once a track has been followed by a certain number of proto-actors, it becomes a road.</li> + <li>An itinerant who finds an area of unsettled grassland of ten hectares with low soil fertility and not more than one hundred trees settles and becomes a pastoralist. He builds a cottage.</li> + <li>An itinerant who finds an area of unsettled grassland of ten hectares with medium or high soil fertility becomes an agrarian. He builds a homestead. Depending on the fertility of his land he can support between zero and ten labourers, 10% of a smith, 10% of a miller and 10% of a bonnet laird.</li> + <li>An itinerant who finds an area of unsettled land of 100 square metres within five hundred metres of a homestead with unfulfilled labourer demand becomes a labourer. He builds a cottage.</li> + <li>An itinerant who finds an area of unsettled land of 100 square metres within five kilometres of ten farmers with unfilled smithing slots becomes a smith. He builds a cottage and a forge.</li> + <li>An itinerant who finds an area of unsettled land either at the side of a water course or at the top of a hill, and within 5 kilometers of ten farmers with unfilled milling slots becomes a miller. He builds a mill – water or wind, appropriate to location.</li> + <li>Any settler who plays host to more than a certain number of travellers becomes an innkeeper. He claims 400 square metres of unclaimed land as close as possible to his existing settlement and buids an inn and stableyard.</li> + <li>An itinerant who finds 400 square metres of unclaimed land within a certain distance of an inn and a smith will become a merchant, provided that there are three smiths within a 5Km radius who have unfilled market slots. The merchant builds a marketplace and a counting house.</li> + <li>An itinerant who finds 200 square metres of unclaimed land within a specified distance of a market with an unfilled chapel slot becomes a priest and builds a chapel and manse, and possibly a school.</li> + <li>An itinerant who finds 100 square metres of unclaimed land adjacent to where a road crosses a river becomes a ferryman.</li> + <li>A ferryman who carries more than a certain number of passengers in a given period becomes a tollkeeper and builds a bridge.</li> +</ul> +<p>This set of rules – and possibly others like them (woodcutters, fishermen, hunters…) provide the first wave of settlement. Once the landscape is sufficiently settled by this first wave, there needs to be a period of establishing trading routes. First, every settler will visit his nearest market, leaving a permanent track if there is not already a road. Where several of these tracks overlay one another, once again a road is created. Each merchant then visits each of the ten markets nearest his own, following existing tracks and roads where available. Wherever the merchants do not find roads, new roads are created. This completes the roads network. Each market is now assigned a value which is a function of</p> +<ul> + <li>the number of people for whom it is the nearest market</li> + <li>the sum of the wealth (soil fertility) of the homesteads for which it is the nearest market</li> + <li>the wealth of other markets within a day’s travel</li> +</ul> +<p>Depending on its wealth a market may support up to twenty stallholders, including bakers, butchers, tanners, weavers, cobblers, chandlers and so on. So a second wave of itinerants sets off. These follow the original rules for itinerants, but if they find an unsettled 100 square metres within five hundred metres of a market, will set up as a stallholder, building a town house and appropriate trade building on their own settlement, and a stall in the market. An itinerant finding a hundred square metres within five hundred metres of a market which has all its stallholder slots filled may become a slum landlord, and build a tenement for day-labourers. Finally, aristocracy. In the second wave an itinerant who finds either a hilltop, an island in a lake or river, or a significant river crossing, with one hectare of unclaimed land and within 5Km of ten farms with unfilled bonnet laird slots becomes a bonnet laird (or ‘squire’, if you prefer) and builds a fortified house. At the end of the second wave of settlement the ten percent of bonnet lairds with the richest fiefs (using much the same metric as for the wealth of markets) become barons and build castles.</p> +<h3><a href="#rendering-the-buildings" name="rendering-the-buildings"></a>Rendering the buildings</h3> +<p>This seems to me to provide an algorithmic means of settling a landscape which will generate organic and satisfying patterns of settlement. But it all fails if the buildings are chosen from a limited palette of models. As with the trees I think we need algorithmic mechanisms of building similar-but-different buildings which can be repeatably rendered from relatively small data sets. As an example of what I mean, in damper landscapes where wood is likely to be available, there might be a higher probability of stave buildings, or weatherboarding, with mainly shingle roofs. In slightly less damp areas where timber is still available, cruck frames and half timbered buildings will prevail, with mostly thatched roofs. In the dryest areas, cob and brick buildings will be common, often with tile roofs. On steeper hillsides, stone buildings will be common, perhaps with slate roofs. Within each of these types there are essential cells from which a building is created. These cells can be longer or shorter, taller or lower, wider or narrower. A building may comprise a single cell, or more. If more than three cells they may be arranged in a row or round a courtyard. And they may have one story or two. Which they have can be based – like the details of the plants – on functions which take latitude and longitude as arguments and which, internally use pseudo-randoms seeded from those latitude and longitude values.</p> +<h3><a href="#how-vast-a-world-" name="how-vast-a-world-"></a>How vast a world?</h3> +<p>OK, so, with this general approach, how big can we go? The answer seems to me to be ‘big enough’. A 32 bit integer gives somewhat over four billion values, so can resolve down to one millimetre precision in a world 4000 kilometres by 4000 kilometres. But we don’t actually need millimetre resolution; centimetre would be quite small enough. And that gives us potential for a world 40000Km square, or 1.6 billion square kilometres, which is three times the surface area of planet Earth.</p> +<p>In practice we can’t go that big for all sorts of space and time reasons. Recording land heights is inevitably an issue. I don’t know of a pseudo random function which will generate satisfying land heights. Anything based on Julia sets, for example, ends up with landforms symmetrical around a central point. Furthermore, the shapes of fractals which can be constructed from simple functions tend to have a noticable and unnatural degree of self-similarity across scales. I’d dearly like to be wrong on this, but I think we need to store at minimum elevation values at ten metre intervals. If we can accept 100mm resolution for elevations, storing 16 bit values gives a range of 6,500 metres - 21,000 feet - from the deepest seabed to the peaks of the highest mountains.</p> +<p>This means that landform information alone requires 20Kbytes per square kilometre - unindexed, but seeing it’s a rigid ten metre grid that isn’t a problem. Which, in turn, means that you can store landform information for a planet the size of Earth in one terrabyte. But we don’t need a planet the size of earth. Scotland is 80,000 square kilometers of land area; allowing for a bit of sea around to the horizon around it, say 100,000 square kilometers. That seems to me more than big enough to be a game space. It amounts to 160Mb of landform data, which is completely manageable.</p> +<p>If we stored plant data for every distinctive plant in Scotland - even at one per ten square metres - that does become an impractically large data set, because quite apart from anything else, the plant locations do have to be indexed. But actually, given that the actual plants that grow are a function of the location at which they grow, no player is going to notice if the pattern of the locations of plants is the same for each square kilometre. So we can manage plant data for a land area the size of Scotland in 400,000 bytes - we could do it in less (if the locations were generated using a pseudo-random function, much less).</p> +<p>Building data is different. We need to store the latitude, longitude and type of every building explicitly, and again they need to be indexed in order that we can recover the buildings in a given area efficiently. We need about 16 bytes per building (four bytes latitude, four longitude, two type; then for each tile a null-terminated vector of pointers to building records). If we assume that our feudal land of 80,000 square kilometers has a population of a million, and that there are on average five occupants of every building, that’s two hundred thousand buildings, implying 3.2Mb of data.</p> +<p>Of course, that’s just the backing store size. As tiles are loaded into active memory - see the essay ‘Tiles and Flats’ this raw backing data has to be inflated procedurally into actual models that can be rendered; models which may have thousands of vertices and hundreds of kilobytes of textures. The functions which do that inflating have some finite size, and, significantly, they’ll need to work on prototype models which will in turn take storage space. Finally there are hand-edited models potentially used at particular plot locations; those need to be stored more or less in full. But all this has not become an unmanageable amount of data. It seems to me plausible that you could store a fully populated 100,000 square kilometer game world on one uncompressed 700Mb CD. On a 4Gb DVD, you could do it very easily.</p></div></div></div></body></html> \ No newline at end of file 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 new file mode 100644 index 0000000..df5c42d --- /dev/null +++ b/docs/codox/The-spread-of-knowledge-in-a-large-game-world.html @@ -0,0 +1,41 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>The spread of knowledge in a large game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 current"><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#the-spread-of-knowledge-in-a-large-game-world" name="the-spread-of-knowledge-in-a-large-game-world"></a>The spread of knowledge in a large game world</h1> +<h4><a href="#saturday-26-april-2008" name="saturday-26-april-2008"></a>Saturday, 26 April 2008</h4> +<p><img src="https://4.bp.blogspot.com/-F2gxx0dRM8o/UlfSsRe8ybI/AAAAAAAAYIA/I1I9D5Yk7to/s1600/Tw2_full_Dandelion.png" alt="part of the role of Dandelion, in The Witcher games, is to provide the player with news" /></p> +<h3><a href="#note" name="note"></a>Note</h3> +<p><em>This version of this essay has been adapted to use the code in <code>the-great-game.gossip.news-items</code>, <a href="the-great-game.gossip.news-items.html">q.v.</a>. The original version of the essay is <a href="https://blog.journeyman.cc/2008/04/the-spread-of-knowledge-in-large-game.html">still available on my blog</a>.</em></p> +<p>These days we have television, and news. But in a late bronze age world there are no broadcast media. News spreads by word of mouth. If non-player characters are to respond effectively to events in the world, knowledge has to spread.</p> +<p>How to model this?</p> +<p>Some non-player characters - doesn’t need to be many - are news-spreaders. News-spreaders need to travel. They have to travel even when there are no player characters in the vicinity. But, they don’t have to travel very often - once or twice every game day. When a news-spreader is in the immediate vicinity of another character, the pair may (with some degree of randomness) exchange news. There needs to be a hierarchy in the exchange of news, so that ‘I-saw’ events need to be more likely to be passed on than ‘I-heard’ events; there needs to be a counter which counts the number of times a knowledge item has been passed on, and also an age counter so that knowledge items are less likely to be passed on as they get older.</p> +<p>One obvious class of news-spreader is a merchant. Merchant agents can either shuttle mechanically between a fixed group of markets or else possibly respond intelligently to supply and demand. Provided that there is a mesh of merchant routes covering the markets of the game world, and that a useful subset of non-merchant characters are required to visit a market every few game days, this should give a reasonably realistic framework for news spreading.</p> +<p>What else? What things qualify as news items? I think at least the following:</p> +<ul> + <li>Deaths of sentient characters, especially if violent</li> + <li>Commodity prices</li> + <li>Changes of rulers in cities</li> + <li>Marriages of sentient characters</li> + <li>Plot events, flagged as events by the game designer</li> +</ul> +<p>Obviously, news is more valuable if the people involved are important or notorious: the significance of a story is probably the product of the significance of the people concerned.</p> +<p>So a news item becomes a tuple</p> +<p><code>(days-old nth-hand significance action (actors))</code></p> +<p>for example</p> +<p><code>(54 2 10 'killed '(fred joe))</code></p> +<p>meaning ‘I spoke to a man who’d spoken to a man who said he saw notorious fred kill well-liked joe on 54 days ago’. Obviously, the non-player character must be able to construct a natural language sentence from the tuple when speaking within the hearing of a player character, but there’s no need for a non-player character to produce a natural language sentence for another non-player character to parse; instead they can just exchange tuples.</p> +<p>But if we’re exchanging knowledge between agents, then agents must have a means of representing knowledge. This knowledge is an association between subjects and sets of statement, such that when the agent learns the statement</p> +<p><code>(54 2 10 'killed '(fred joe))</code></p> +<p>it adds this statement (with the 2 incremented to 3) to the set of statements it knows about fred and also to the set of statements it knows about joe. It’s possible that the receiving agent could then challenge for further statements about fred and/or joe, the automated equivalent of a ‘who’s joe?’ question.</p> +<p>There could be feedback in this. Fred’s and joe’s significance scores could be incremented for each character to whom the statement is passed on, increasing the likeliness that fred, at least, would feature in more news stories in future. There needs also to be some means of managing how the non-player character’s attitude to the subjects of the statement are affected. For example, If fred kills joe, and the character (say bill) receiving the news feels positively towards joe, then bill’s attitude to fred should become sharply more hostile. If bill feels neutral about joe, then bill’s attitude to fred should still become a bit more hostile, since killing people is on the whole a bad thing. But it bill feels very hostile towards joe, then bill’s attitude to fred should become more friendly.</p> +<p>Obviously the rate of decay, and the degree of randomness, of the news-passing algorithm would need to be tuned, but this schema seems to me to describe a system with the following features:</p> +<ul> + <li>Non-player characters can respond to questions about significant things which happen in the world - without it all having to be scripted</li> + <li>If you travel fast enough, you can keep ahead of your notoriety</li> + <li>Characters on major trade routes will know more about what is happening in the world than characters in backwaters</li> +</ul> +<p>This seems to me a reasonably good model of news spread.</p> +<h3><a href="#scaling-of-the-algorithm" name="scaling-of-the-algorithm"></a>Scaling of the algorithm</h3> +<p>Let’s work around the idea that a ‘game day’ equates to about two hours of wall clock time. Let’s work around the idea that there are of the order of fifty markets in the game world, and that for each market there are two or three merchants whose ‘home base’ it is.</p> +<p>Obviously non-player characters who are within the vicinity of a player character have to be ‘awake’, in order that the player can see them interacting with their world and can interact with them. Those characters have to be in working memory and have to be in the action polling loop in any case. So there’s no extra cost to their gossiping away between each other - around the player there’s a moving bubble of gossip, allowing each character the player interacts with to have a high probability of having some recent news.</p> +<p>But the merchants who aren’t in the vicinity of a player don’t have to be in working memory all the time. Each merchant simply requires to be ‘woken up’ - loaded into memory - once per game day, move a day’s journey in one hop, and then, if arriving at an inn or at a market, wake and exchange news with one resident character - an innkeeper or a gossip. So the cost of this algorithm in a fifty-market game is at worst the cost of loading and unloading two non-player characters from memory every minute, and copying two or three statements from the knowledge set of one to the knowledge set of the other. If you’re dynamically modifying significance scores, of course, you’d need to also load the characters about whom news was being passed on; but this still doesn’t seem unduly onerous.</p> +<p>Obviously, if memory is not too constrained it may be possible to maintain all the merchants, all the innkeepers and all the characters currently being talked about in memory all the time, further reducing the cost.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/Voice-acting-considered-harmful.html b/docs/codox/Voice-acting-considered-harmful.html new file mode 100644 index 0000000..7e5c1ad --- /dev/null +++ b/docs/codox/Voice-acting-considered-harmful.html @@ -0,0 +1,49 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>Voice acting considered harmful</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 current"><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#voice-acting-considered-harmful" name="voice-acting-considered-harmful"></a>Voice acting considered harmful</h1> +<h4><a href="#wednesday-25-february-2015" name="wednesday-25-february-2015"></a>Wednesday, 25 February 2015</h4> +<p><img src="https://3.bp.blogspot.com/-ZI90HLjEcuo/VO4f-yXP3sI/AAAAAAAAZt4/C0hQ7hScWyM/s1600/witcher_conversation.jpg" alt="The Witcher: Conversation with Kalkstein" /></p> +<p>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 Create a new room north of here called dungeon-3 the player was playing the game Pick up the rusty sword and go north or the player was talking to a non-player character Say to the wizard ‘can you tell me the way to the castle’ Of course, the parser didn’t ‘understand’ English. It worked on trees of words, in which terminal nodes were actions and branching nodes were key words, and it had the property that any word it didn’t recognise at that point in sentence was a noise word and could be ignored. A few special hacks (such as ‘the’, ‘a’, or ‘an’ was an indicator that what came next was probably a noun phrase, and thus that if there was more than one sword in the player’s immediate environment the one that was wanted was the one tagged with the adjective ‘rusty’), and you ended up with a parser that most of the time convincingly interpreted most of what the player threw at it.</p> +<p>Text adventures fell into desuetude partly because they weren’t graphic, but mainly because people didn’t find typing natural, or became dissatisfied with the repertoire of their parsers. Trying to find exactly the right combination tokens to persuade the game to carry out some simple action is not ‘fun’, it’s just frustrating, and it turned people off. Which is a shame because just at the time when people were abandoning text adventures we were beginning to have command parsers which were actually pretty good. Mine, I think, were good - you could have a pretty natural conversation with them, and in ‘building’ mode, when it hit a ‘sorry I don’t understand’ point, it allowed you to input a path of keywords and a Lisp function so that in future it would understand.</p> +<p>So much, so <a href="http://www.csee.umbc.edu/courses/331/papers/eliza.html">Eliza</a>.</p> +<p>Modern role-playing games - the evolutionary successors of those high and far off text adventures - don’t have text input. Instead, at each stage in a conversation, the user is offered a choice of three or four canned responses, and can pick one; very often what the player’s character actually says then differs from the text the user has chosen, often with differences of nuance which the user feels (s)he didn’t intend. And the non-player-character’s response is similarly canned. Indeed, the vast majority of non-player characters in most games have a ‘repertoire’, if one may call it that, of only one sentence. Others will have one shallow conversational tree, addressing one minor quest or plot-point.</p> +<p>If you want to talk to them about anything else - well, you just can’t.</p> +<p>Only a very few key non-player characters will have a large repertoire of conversational trees, relevant to all parts of the plot. And even those trees are not deep. You soon exhaust them; the characters’ ability to simulate real agency just isn’t there.</p> +<p>I first wrote about the limiting effects of voice acting in <a href="../../2008/02/the-witcher-story-telling-of-high-order.html">my review of the original Witcher game</a>, back in 2008; things haven’t got better.</p> +<h2><a href="#on-phones-speaking" name="on-phones-speaking"></a>On phones: speaking</h2> +<p>In my pocket I carry a phone. It’s not big: 127 x 64.9 x 8.6mm. A small thing.</p> +<p>When I first used Android phones for navigation, I used to delight in their pronunciation of Scots placenames - pronouncing them phonetically, as spelled, and as though their spelling were modern English. What’s delightful about Scots placenames is that they are linguistically and orthographically so varied - their components may be Brythonic, Goidaelic, Anglian, Norn, French, English, or even Latin; and very frequently they combine elements of more than one language (Benlaw Hill, anyone? Derrywoodwachy?).</p> +<p>Yes, gentle reader, this does seem a long way from game design; be patient, I’m getting there. But I’m going to digress even further for first…</p> +<p>There have been orthographic changes, and pronunciation changes consequent on orthographic changes. For example, medieval Scots used the letter <a href="http://en.wikipedia.org/wiki/Yogh">Yogh</a> (ȝ), which isn’t present in the English alphabet. So when Edinburgh printers in the early modern period bought type for their printing presses from England, there was no Yogh in the font. So they substituted Zed. So we get names like Dalȝiel, Kirkgunȝeon, Menȝies, Cockenȝie. How do you pronounce them?</p> +<p>The letter that looks like a ‘z’ is pronounced rather like a ‘y’; so</p> +<ul> + <li>Deeyell</li> + <li>Kirkgunyeon</li> + <li>Mingis</li> +</ul> +<p>and… drumroll…</p> +<ul> + <li>Cockenzie.</li> +</ul> +<p>What happened?</p> +<p>Well, Dalȝiel and Menȝies are personal names, and people are protective of their own names. Kirkgunȝeon is a small, unimportant place, and all the locals know how it is pronounced. Scots folk, are, after all, used to Scots orthography and its peculiarities. So those names haven’t changed.</p> +<p>But at Cockenȝie, another small, unimportant place, a nuclear power station was built. The nuclear power station was built by people (mostly) from England, who didn’t know about Yogh or the peculiarities of Scots orthography - and were possibly too arrogant to care. So they called it ‘Cockenzie’. And as there were so many more of them and they had so much higher status than the locals, their name stuck, and nowadays even local people mostly say ‘Cockenzie’, as though it were spelled with a Zed. Because, of course, it is spelled with a Zed. Because, as any British schoolchild knows, there’s no Yogh in the alphabet.</p> +<p>Except, of course, when there is.</p> +<p>Another more interesting example of the same thing is ‘<a href="http://www.journeyman.cc/placenames/place?id=153">Kirkcudbright</a>’. It’s a town built around the kirk (church) of saint Cuthbert. So how does it come to have a ‘d’ in it? And why is it pronounced ‘Kirkoobry’? Well, the venerable Cuthbert pronounced his name in a way which would be represented in modern English as ‘Coothbrecht’, but he spelled it ‘Cuðbrecht’. See that ‘ð’? That’s not a ‘d’, it’s an Eth. Because Cuðbrecht was Anglian, and the Anglian alphabet had <a href="http://en.wikipedia.org/wiki/Eth">Eth</a>; it’s pronounced as a soft ‘th’, and Icelandic still has it (as well as Thorn, þ, a hard ‘th’ sound). Medieval scribes didn’t know about Eth, so in copying out ð they wrote the more familiar d. The local people, however, mostly couldn’t read, so the pronunciation of the name didn’t change with the change in spelling (although the pronunciation, too, has drifted a little with time).</p> +<p>So, in brief, pronouncing Scots placenames is hard, and there are a lot of curious rules, and consequently it’s not surprising that five years ago, listening to Android’s pronunciation of Scots placenames was really funny.</p> +<p>But what’s really curious is that now it isn’t. Now, it rarely makes a mistake. Now, Android can do text to speech on unusual and perverse orthography, and get it right better than 95% of the time - and manage a reasonably natural speaking voice while doing so. On a small, low power machine which fits in my pocket.</p> +<h2><a href="#on-phones-listening" name="on-phones-listening"></a>On phones: listening</h2> +<p>But navigation is not all I can do with my phone. I can also dictate. By which I don’t mean I can make a voice recording, play it back later and type what I hear, although, of course, I can. I mean I can dictate, for example, an email, and see it in text on my phone before I send it. It quickly learned my peculiarities of diction, and it now needs very little correction. On a small, low power machine which fits in my pocket.</p> +<h2><a href="#and-breathe" name="and-breathe"></a>And breathe</h2> +<p>Right, so where am I going with all this? Well, we interact with modern computer role playing games through very restricted, entirely scripted dialogues. Why do we do so? Why, on our modern machines with huge amounts of store, do our non-player characters - and worse still, our player character, our own avatar - have such restricted repertoires?</p> +<p>Because they are voice acted. Don’t get me wrong, voice acting makes a game far more engaging. But for voice acting to work, the people doing the acting have to know not only the full range of sentences that their character is going to speak, but also roughly how they feel (angry? sad? excited?) when they say it. Ten years ago, voice acting was probably the only way you could have got this immediacy into games, because ten years ago, text-to-speech systems were pretty crude - think of Stephen Hawking’s voice synthesiser. But now, Edinburgh University’s <a href="http://www.cstr.ed.ac.uk/projects/festival/morevoices.html">open source synthesiser</a> is pretty good, and comes with twenty-four voices (and seeing it’s open source, you can of course add your own). Speech to text was probably better ten years ago - think of <a href="http://en.wikipedia.org/wiki/Dragon_NaturallySpeaking">Dragon Naturally Speaking</a> - but it was proprietary software, and used a fair proportion of a machine’s horsepower. Now there’s (among others) Carnegie Mellon’s open source <a href="http://cmusphinx.sourceforge.net/">Sphinx</a> engine, which can quickly adapt to your voice.</p> +<p>So, we have text-to-speech engines which can generate from samples of many different voices, and speech to text engines which can easily be tuned to your particular voice. There’s even a program called <a href="http://www.voiceattack.com/">Voice Attack</a>, built on top of Microsoft’s proprietary speech to text engine, which already allows you to <a href="https://www.youtube.com/watch?v=8dnJ--pSjdE">control games with speech</a>. Where does that take us?</p> +<p>Well, we already know how to make sophisticated natural language parsers for text, given moderately limited domains - we don’t need full natural language comprehension here.</p> +<h2><a href="#you-may-think-its-a-long-way-down-the-road-to-the-chemist" name="you-may-think-its-a-long-way-down-the-road-to-the-chemist"></a>You may think it’s a long way down the road to the chemist</h2> +<p>There are things one needs to know in a game world. For example: I need a sword, where’s the nearest swordsmith? In a real quasi-medieval world, certainly every soldier would be able to tell you, and everyone from the swordsmith’s town or village. Very celebrated swordsmiths would be known more widely.</p> +<p>And the thing is, the game engine knows where the nearest swordsmith is. It knows what potion will heal what wound, and what herbs and what tincture to use to make it. It knows which meats are good to eat, and which inns have rooms free. It knows good campsites. It knows where there be dragons. It knows where the treasure is hid. It knows - as far as the game and its plot are concerned - everything.</p> +<p>So to make an in-game Siri - an omniscient companion you could ask anything of - would be easy. Trivial. It also wouldn’t add verisimilitude to the game. But to model which non-player characters know what is not that much harder. Local people know what’s where in their locality. Merchants know the prices in nearby markets. They, and minstrels, know the game-world’s news - major events that affect the plot. Apothecaries, alchemists and witches know the properties of herbs and minerals.</p> +<p>And to model which non-player characters are friendly, and willing to answer your every question; which neutral or busy, and liable to answer tersely; and which actively hostile, and likely, if they answer at all, to deliberately mislead - that’s not very much harder.</p> +<p>I’m not arguing that voice acting, and scripted dialogue trees, should be done away with altogether. They still have a use, as cutscenes do, to advance plot. And I’m not suggesting that we use voice to control the player characters movements and actions - I’m not not suggesting that we should say ‘run north; attack the troll with the rusty sword’. Keyboards and mice may be awkward ways to control action, but they’re better than that. Bur I am suggesting that one should be able to talk to any (supposedly sentient) character in the game, and have them talk reasonably sensibly back. As one can already do physically in wandering an open world, a full voice interaction system would allow one to go off piste - to leave the limited, constrained pre-scripted interaction of the voice-acted dialogue tree. And that has got to make our worlds, and our interactions with them, richer, more surprising, more engaging.</p> +<p>A hybrid system needn’t be hard to achieve, needn’t be jarring in use. You can record the phonemes of your voice actor’s voice, so that the same character will have roughly the same voice - the same timbre, the same vowel sounds, the same characteristics of pronunciation - whether in a voice acted dialogue or in a generated one.</p> +<p>We don’t need to let voice acting limit the repertoires of our characters any more. And we shouldn’t.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/economy.html b/docs/codox/economy.html index a232ad2..d81537f 100644 --- a/docs/codox/economy.html +++ b/docs/codox/economy.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Game world economy</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 current"><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#game-world-economy" name="game-world-economy"></a>Game world economy</h1> +<html><head><meta charset="UTF-8" /><title>Game world economy</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 current"><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#game-world-economy" name="game-world-economy"></a>Game world economy</h1> <p>Broadly this essay extends ideas presented in <a href="https://blog.journeyman.cc/2013/07/populating-game-world.html">Populating a game world</a>, q.v.</p> <h2><a href="#primary-producers" name="primary-producers"></a>Primary producers</h2> <h3><a href="#herdsfolk" name="herdsfolk"></a>Herdsfolk</h3> diff --git a/docs/codox/index.html b/docs/codox/index.html index 375d513..d645463 100644 --- a/docs/codox/index.html +++ b/docs/codox/index.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>The-great-game 0.1.1-SNAPSHOT</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 current"><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="namespace-index" id="content"><h1><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></h1><h5 class="license">Released under the <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GNU General Public License,version 2.0 or (at your option) any later version</a></h5><div class="doc"><p>Prototype code towards the great game I've been writing about for ten years, and know I will never finish.</p></div><h2>Installation</h2><p>To install, add the following dependency to your project or build file:</p><pre class="deps">[the-great-game "0.1.1-SNAPSHOT"]</pre><h2>Topics</h2><ul class="topics"><li><a href="economy.html">Game world economy</a></li><li><a href="intro.html">Introduction to the-great-game</a></li><li><a href="modelling_trading_cost_and_risk.html">Modelling trading cost and risk</a></li><li><a href="naming-of-characters.html">Naming of Characters</a></li><li><a href="orgnic-quests.html">Organic Quests</a></li><li><a href="sandbox.html">Sandbox</a></li><li><a href="sexual-dimorphism.html">Sexual dimorphism</a></li></ul><h2>Namespaces</h2><div class="namespace"><h3><a href="the-great-game.agent.agent.html">the-great-game.agent.agent</a></h3><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div><div class="index"><p>Public variables and functions:</p><ul></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.gossip.html">the-great-game.gossip.gossip</a></h3><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.gossip.html#var-dialogue">dialogue</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-gather-news">gather-news</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-move-gossip">move-gossip</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.news-items.html">the-great-game.gossip.news-items</a></h3><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.news-items.html#var-degrade-character">degrade-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-degrade-location">degrade-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-infer">infer</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-character">interest-in-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-location">interest-in-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-character.3F">interesting-character?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-item.3F">interesting-item?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-location.3F">interesting-location?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-object.3F">interesting-object?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F">interesting-topic?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-learn-news-item">learn-news-item</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-make-all-inferences">make-all-inferences</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-news-topics">news-topics</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.markets.html">the-great-game.merchants.markets</a></h3><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price">adjust-quantity-and-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-new-price">new-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-run">run</a> </li><li> <a href="the-great-game.merchants.markets.html#var-update-markets">update-markets</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchant-utils.html">the-great-game.merchants.merchant-utils</a></h3><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices">add-known-prices</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-stock">add-stock</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-burden">burden</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-afford">can-afford</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-carry">can-carry</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-expected-price">expected-price</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchants.html">the-great-game.merchants.merchants</a></h3><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchants.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.planning.html">the-great-game.merchants.planning</a></h3><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.planning.html#var-augment-plan">augment-plan</a> </li><li> <a href="the-great-game.merchants.planning.html#var-generate-trade-plans">generate-trade-plans</a> </li><li> <a href="the-great-game.merchants.planning.html#var-nearest-with-targets">nearest-with-targets</a> </li><li> <a href="the-great-game.merchants.planning.html#var-plan-trade">plan-trade</a> </li><li> <a href="the-great-game.merchants.planning.html#var-select-cargo">select-cargo</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.strategies.simple.html">the-great-game.merchants.strategies.simple</a></h3><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.strategies.simple.html#var-move-merchant">move-merchant</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy">plan-and-buy</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-re-plan">re-plan</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy">sell-and-buy</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.time.html">the-great-game.time</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.time.html#var-canonical-ordering-of-houses">canonical-ordering-of-houses</a> </li><li> <a href="the-great-game.time.html#var-date-string">date-string</a> </li><li> <a href="the-great-game.time.html#var-day">day</a> </li><li> <a href="the-great-game.time.html#var-day-of-year">day-of-year</a> </li><li> <a href="the-great-game.time.html#var-days-in-season">days-in-season</a> </li><li> <a href="the-great-game.time.html#var-days-in-week">days-in-week</a> </li><li> <a href="the-great-game.time.html#var-days-of-week">days-of-week</a> </li><li> <a href="the-great-game.time.html#var-game-day-length">game-day-length</a> </li><li> <a href="the-great-game.time.html#var-game-start-time">game-start-time</a> </li><li> <a href="the-great-game.time.html#var-game-time">game-time</a> </li><li> <a href="the-great-game.time.html#var-now">now</a> </li><li> <a href="the-great-game.time.html#var-season">season</a> </li><li> <a href="the-great-game.time.html#var-seasons-in-year">seasons-in-year</a> </li><li> <a href="the-great-game.time.html#var-seasons-of-year">seasons-of-year</a> </li><li> <a href="the-great-game.time.html#var-waiting-day.3F">waiting-day?</a> </li><li> <a href="the-great-game.time.html#var-week">week</a> </li><li> <a href="the-great-game.time.html#var-weeks-in-season">weeks-in-season</a> </li><li> <a href="the-great-game.time.html#var-weeks-of-season">weeks-of-season</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.utils.html">the-great-game.utils</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.utils.html#var-cyclic.3F">cyclic?</a> </li><li> <a href="the-great-game.utils.html#var-deep-merge">deep-merge</a> </li><li> <a href="the-great-game.utils.html#var-make-target-filter">make-target-filter</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.location.html">the-great-game.world.location</a></h3><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.location.html#var-distance-between">distance-between</a> </li><li> <a href="the-great-game.world.location.html#var-get-coords">get-coords</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.routes.html">the-great-game.world.routes</a></h3><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.routes.html#var-find-route">find-route</a> </li><li> <a href="the-great-game.world.routes.html#var-find-routes">find-routes</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.run.html">the-great-game.world.run</a></h3><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.run.html#var-init">init</a> </li><li> <a href="the-great-game.world.run.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.world.html">the-great-game.world.world</a></h3><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.world.html#var-actual-price">actual-price</a> </li><li> <a href="the-great-game.world.world.html#var-default-world">default-world</a> </li><li> <a href="the-great-game.world.world.html#var-run">run</a> </li></ul></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>The-great-game 0.1.1-SNAPSHOT</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 current"><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="namespace-index" id="content"><h1><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></h1><h5 class="license">Released under the <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GNU General Public License,version 2.0 or (at your option) any later version</a></h5><div class="doc"><p>Prototype code towards the great game I've been writing about for ten years, and know I will never finish.</p></div><h2>Installation</h2><p>To install, add the following dependency to your project or build file:</p><pre class="deps">[the-great-game "0.1.1-SNAPSHOT"]</pre><h2>Topics</h2><ul class="topics"><li><a href="Baking-the-world.html">Baking the world</a></li><li><a href="Populating-a-game-world.html">Populating a game world</a></li><li><a href="Settling-a-game-world.html">Settling a game world</a></li><li><a href="The-spread-of-knowledge-in-a-large-game-world.html">The spread of knowledge in a large game world</a></li><li><a href="Voice-acting-considered-harmful.html">Voice acting considered harmful</a></li><li><a href="economy.html">Game world economy</a></li><li><a href="intro.html">Introduction to the-great-game</a></li><li><a href="modelling_trading_cost_and_risk.html">Modelling trading cost and risk</a></li><li><a href="naming-of-characters.html">Naming of Characters</a></li><li><a href="on-dying.html">On Dying</a></li><li><a href="orgnic-quests.html">Organic Quests</a></li><li><a href="sandbox.html">Sandbox</a></li><li><a href="sexual-dimorphism.html">Sexual dimorphism</a></li></ul><h2>Namespaces</h2><div class="namespace"><h3><a href="the-great-game.agent.agent.html">the-great-game.agent.agent</a></h3><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div><div class="index"><p>Public variables and functions:</p><ul></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.gossip.html">the-great-game.gossip.gossip</a></h3><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.gossip.html#var-dialogue">dialogue</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-gather-news">gather-news</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-move-gossip">move-gossip</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.news-items.html">the-great-game.gossip.news-items</a></h3><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.news-items.html#var-degrade-character">degrade-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-degrade-location">degrade-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-infer">infer</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-character">interest-in-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-location">interest-in-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-character.3F">interesting-character?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-item.3F">interesting-item?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-location.3F">interesting-location?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-object.3F">interesting-object?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F">interesting-topic?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-learn-news-item">learn-news-item</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-make-all-inferences">make-all-inferences</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-news-topics">news-topics</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.markets.html">the-great-game.merchants.markets</a></h3><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price">adjust-quantity-and-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-new-price">new-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-run">run</a> </li><li> <a href="the-great-game.merchants.markets.html#var-update-markets">update-markets</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchant-utils.html">the-great-game.merchants.merchant-utils</a></h3><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices">add-known-prices</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-stock">add-stock</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-burden">burden</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-afford">can-afford</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-carry">can-carry</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-expected-price">expected-price</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchants.html">the-great-game.merchants.merchants</a></h3><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchants.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.planning.html">the-great-game.merchants.planning</a></h3><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.planning.html#var-augment-plan">augment-plan</a> </li><li> <a href="the-great-game.merchants.planning.html#var-generate-trade-plans">generate-trade-plans</a> </li><li> <a href="the-great-game.merchants.planning.html#var-nearest-with-targets">nearest-with-targets</a> </li><li> <a href="the-great-game.merchants.planning.html#var-plan-trade">plan-trade</a> </li><li> <a href="the-great-game.merchants.planning.html#var-select-cargo">select-cargo</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.strategies.simple.html">the-great-game.merchants.strategies.simple</a></h3><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.strategies.simple.html#var-move-merchant">move-merchant</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy">plan-and-buy</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-re-plan">re-plan</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy">sell-and-buy</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.time.html">the-great-game.time</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.time.html#var-canonical-ordering-of-houses">canonical-ordering-of-houses</a> </li><li> <a href="the-great-game.time.html#var-date-string">date-string</a> </li><li> <a href="the-great-game.time.html#var-day">day</a> </li><li> <a href="the-great-game.time.html#var-day-of-year">day-of-year</a> </li><li> <a href="the-great-game.time.html#var-days-in-season">days-in-season</a> </li><li> <a href="the-great-game.time.html#var-days-in-week">days-in-week</a> </li><li> <a href="the-great-game.time.html#var-days-of-week">days-of-week</a> </li><li> <a href="the-great-game.time.html#var-game-day-length">game-day-length</a> </li><li> <a href="the-great-game.time.html#var-game-start-time">game-start-time</a> </li><li> <a href="the-great-game.time.html#var-game-time">game-time</a> </li><li> <a href="the-great-game.time.html#var-now">now</a> </li><li> <a href="the-great-game.time.html#var-season">season</a> </li><li> <a href="the-great-game.time.html#var-seasons-in-year">seasons-in-year</a> </li><li> <a href="the-great-game.time.html#var-seasons-of-year">seasons-of-year</a> </li><li> <a href="the-great-game.time.html#var-waiting-day.3F">waiting-day?</a> </li><li> <a href="the-great-game.time.html#var-week">week</a> </li><li> <a href="the-great-game.time.html#var-weeks-in-season">weeks-in-season</a> </li><li> <a href="the-great-game.time.html#var-weeks-of-season">weeks-of-season</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.utils.html">the-great-game.utils</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.utils.html#var-cyclic.3F">cyclic?</a> </li><li> <a href="the-great-game.utils.html#var-deep-merge">deep-merge</a> </li><li> <a href="the-great-game.utils.html#var-make-target-filter">make-target-filter</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.location.html">the-great-game.world.location</a></h3><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.location.html#var-distance-between">distance-between</a> </li><li> <a href="the-great-game.world.location.html#var-get-coords">get-coords</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.routes.html">the-great-game.world.routes</a></h3><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.routes.html#var-find-route">find-route</a> </li><li> <a href="the-great-game.world.routes.html#var-find-routes">find-routes</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.run.html">the-great-game.world.run</a></h3><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.run.html#var-init">init</a> </li><li> <a href="the-great-game.world.run.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.world.html">the-great-game.world.world</a></h3><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.world.html#var-actual-price">actual-price</a> </li><li> <a href="the-great-game.world.world.html#var-default-world">default-world</a> </li><li> <a href="the-great-game.world.world.html#var-run">run</a> </li></ul></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/intro.html b/docs/codox/intro.html index b17bd13..d16ad24 100644 --- a/docs/codox/intro.html +++ b/docs/codox/intro.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Introduction to the-great-game</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 current"><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#introduction-to-the-great-game" name="introduction-to-the-great-game"></a>Introduction to the-great-game</h1> +<html><head><meta charset="UTF-8" /><title>Introduction to the-great-game</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 current"><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#introduction-to-the-great-game" name="introduction-to-the-great-game"></a>Introduction to the-great-game</h1> <h1><a href="#the-great-game" name="the-great-game"></a>The Great Game</h1> <p>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.</p> <p>So, firstly, how does one characterise this game?</p> diff --git a/docs/codox/modelling_trading_cost_and_risk.html b/docs/codox/modelling_trading_cost_and_risk.html index 72b183e..5292eb6 100644 --- a/docs/codox/modelling_trading_cost_and_risk.html +++ b/docs/codox/modelling_trading_cost_and_risk.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Modelling trading cost and risk</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 current"><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#modelling-trading-cost-and-risk" name="modelling-trading-cost-and-risk"></a>Modelling trading cost and risk</h1> +<html><head><meta charset="UTF-8" /><title>Modelling trading cost and risk</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 current"><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#modelling-trading-cost-and-risk" name="modelling-trading-cost-and-risk"></a>Modelling trading cost and risk</h1> <p>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.</p> <p>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 <a href="null">gossip</a> 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.</p> <p>So: to what extent is it worth modelling the spread of knowledge of trade cost and risk?</p> diff --git a/docs/codox/naming-of-characters.html b/docs/codox/naming-of-characters.html index 6d76b98..3258a8a 100644 --- a/docs/codox/naming-of-characters.html +++ b/docs/codox/naming-of-characters.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Naming of Characters</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 current"><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#naming-of-characters" name="naming-of-characters"></a>Naming of Characters</h1> +<html><head><meta charset="UTF-8" /><title>Naming of Characters</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 current"><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#naming-of-characters" name="naming-of-characters"></a>Naming of Characters</h1> <p>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.</p> <p>The full name of each character will be made up as follows:</p> <p>[epithet] [clan] [personal-name] the [trade-or-rank] of [location], son/daughter of [parent]</p> diff --git a/docs/codox/on-dying.html b/docs/codox/on-dying.html new file mode 100644 index 0000000..d84d7de --- /dev/null +++ b/docs/codox/on-dying.html @@ -0,0 +1,9 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>On Dying</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 current"><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#on-dying" name="on-dying"></a>On Dying</h1> +<p>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.</p> +<p>So how could this be better handled?</p> +<p>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.</p> +<p>Time has passed; events in the game world have moved on. You can talk to your saviours about it. You have lost a lot of strength, and most of the gear you were carrying. You must do whatever it is you do within the game mechanics to rebuild strength, and to acquire more gear. Significantly you have acquired a debt of honour to your saviours, which they may call on later. You almost certainly have new scars, and might possibly have some lasting effects (although how that interacts with other game mechanics might be tricky).</p> +<p>So who are the non-enemies? It depends on context. If you have a party, and some of that party survived the fight, it’s your party. Otherwise, if you’re in a populated place, it’s locals. If it’s on a road or other route, it’s passing merchants. If you’re in the wilderness, a hunting party. It’s a bunch of non-hostiles who might reasonably be expected to be around: that’s what matters. It’s about not breaking immersion.</p> +<p>Obviously losing a fight must have weight, it must have meaning, it must have in-game consequences; otherwise it is meaningless.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/orgnic-quests.html b/docs/codox/orgnic-quests.html index ca6e4a8..05c712d 100644 --- a/docs/codox/orgnic-quests.html +++ b/docs/codox/orgnic-quests.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Organic Quests</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 current"><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#organic-quests" name="organic-quests"></a>Organic Quests</h1> +<html><head><meta charset="UTF-8" /><title>Organic Quests</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 current"><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#organic-quests" name="organic-quests"></a>Organic Quests</h1> <p>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](<a href="https://en.wikipedia.org/wiki/Quest_(gaming)">https://en.wikipedia.org/wiki/Quest_(gaming)</a>) offers a typology of quests as follows:</p> <ol> <li>Kill quests</li> diff --git a/docs/codox/sandbox.html b/docs/codox/sandbox.html index fefc173..e5b4a25 100644 --- a/docs/codox/sandbox.html +++ b/docs/codox/sandbox.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Sandbox</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 current"><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sandbox" name="sandbox"></a>Sandbox</h1> +<html><head><meta charset="UTF-8" /><title>Sandbox</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 current"><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sandbox" name="sandbox"></a>Sandbox</h1> <p>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.</p> <p>Why?</p> <p>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</p> @@ -20,7 +20,7 @@ <h3><a href="#outlaw" name="outlaw"></a>Outlaw</h3> <p>Someone who intercepts and steals from merchants (and may also attack outlying farms and villages)</p> <h2><a href="#second-tier-playable-roles" name="second-tier-playable-roles"></a>Second tier playable roles</h2> -<p>The next tier of playable roles rotates around issues arising from the mercantile ecosystem. </p> +<p>The next tier of playable roles rotates around issues arising from the mercantile ecosystem.</p> <h3><a href="#aristocracy" name="aristocracy"></a>Aristocracy</h3> <p>Aristocrats are basically settled outlaws who seek to establish a monopoly on extracting taxes from inhabitants and travellers in a particular region by driving out all other outlaws. Within the comain of an aristocrat, you have to pay tax but you’re reasonably safe from being attacked by other outlaws and losing everything. Aristocrats may also maintain and improve roads and bridges and do other things to boost the economy of their territory, may expant into adjoining territory with no current aristocratic control, and may wage war on other aristocrats.</p> <p>An outlaw ought to be able to become an aristocrat, by dominating an ungoverned area or by defeating an existing aristocrat.</p> @@ -33,7 +33,7 @@ <p>One of the most enjoyable aspects of The Witcher 3 - still my go-to game for ideas I want to improve on - is simply travelling through the world. Although fast travel is possible I find I rarely use it, and a journey which takes fifteen minutes of real world wall clock time can be enjoyable in and of itself. This is, of course, a credit to the beautiful way the world is realised.</p> <p>But nevertheless, in The Witcher 3, a decision was made to pack incident fairly densely - because players would find just travelling boring. This leads to a situation where peaceful villages exist two minutes travel from dangerous monsters or bandit camps, and the suspension of disbelief gets a little strained. Building a world big enough that a market simulation is believable means that for the individual, the travel time to a market where a particular desired good is likely to be cheaper becomes costly in itself. Otherwise, there’s no arbitrage between markets and no ecological niche for a merchant to fill. The journey time from market to market has to be several in-game days.</p> <p>An in-game day doesn’t have to be as long as a wall clock day, and, indeed, typically isn’t. But nevertheless, doing several game days of incident-free travel, even in beautiful scenery, is not going to be engaging - which implies a fast-travel mechanic.</p> -<p>I don’t like fast travel, I find it a too-obvious breaking of immersion. Also, of course, one of the interesting things about a game in a merchant/outlaw ecosystem is the risk of interception on a journey. The Dragon Age series handled interrupted travel in ‘fast travel’ by randomly interacting the loading screen you get when moving from location to location in Dragon Age’s patchwork worlds by dumping you into a tiny arena with enemies. That’s really, really bad - there’s no other way to say this. Everything about it shouts artifice.</p> +<p>I don’t like fast travel, I find it a too-obvious breaking of immersion. Also, of course, one of the interesting things about a game in a merchant/outlaw ecosystem is the risk of interception on a journey. The Dragon Age series handled interrupted travel in ‘fast travel’ by randomly interrupting the loading screen you get when moving from location to location in Dragon Age’s patchwork worlds by dumping you into a tiny arena with enemies. That’s really, really bad - there’s no other way to say this. Everything about it shouts artifice.</p> <p>So I’m thinking of a different mechanism: one I’m calling cruise control.</p> -<p>You set out on a task which will take a long time - such as a journey, but also such as any routine task. You’re shown either a ‘fast forward’ of your character carrying out this task, or a series of cinematic ‘shots along the way’. This depends, of course, on their being continuous renderable landscape between your departure and your destination, but there will be. This fast-forward proceeds at a substantially higher time gearing than normal game time - ten times as fast perhaps; we need it to, because as well as doing backgound scenery loading to move from one location to another, we’re also simulating lots of non-player agents actions in parts of the world where the player currently isn’t. So a ‘jump cut’ from one location to another isn’t going to work anyway.</p> +<p>You set out on a task which will take a long time - such as a journey, but also such as any routine task. You’re shown either a ‘fast forward’ of your character carrying out this task, or a series of cinematic ‘shots along the way’. This depends, of course, on there being continuous renderable landscape between your departure and your destination, but there will be. This fast-forward proceeds at a substantially higher time gearing than normal game time - ten times as fast perhaps; we need it to, because as well as doing backgound scenery loading to move from one location to another, we’re also simulating lots of non-player agents’ actions in parts of the world where the player currently isn’t. So a ‘jump cut’ from one location to another isn’t going to work anyway.</p> <p>The player can interrupt ‘fast forward’ at any time. But also, the game itself may bring you out of fast forward when it anticipates that there may be action which requires decision - for example, when there are outlaws in the vicinity. And it will do this <strong>before</strong> the player’s party is under immediate attack - the player will have time to take stock of the situation and prepare appropriately. Finally, this will take place in the full open world; the player will have the option to choose <em>not</em> to enter the narrow defile, for example, to ask local people (if there are any) for any news of outlaw activity, or, if they are available, to send forward scouts.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/sexual-dimorphism.html b/docs/codox/sexual-dimorphism.html index 3cb1205..de010b7 100644 --- a/docs/codox/sexual-dimorphism.html +++ b/docs/codox/sexual-dimorphism.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Sexual dimorphism</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 current"><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sexual-dimorphism" name="sexual-dimorphism"></a>Sexual dimorphism</h1> +<html><head><meta charset="UTF-8" /><title>Sexual dimorphism</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 current"><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sexual-dimorphism" name="sexual-dimorphism"></a>Sexual dimorphism</h1> <p>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.</p> <p>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.</p> <p>OK? Let’s start.</p> diff --git a/docs/codox/the-great-game.agent.agent.html b/docs/codox/the-great-game.agent.agent.html index 02353e9..079a700 100644 --- a/docs/codox/the-great-game.agent.agent.html +++ b/docs/codox/the-great-game.agent.agent.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.agent.agent documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3 current"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.agent.agent</h1><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.agent.agent documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3 current"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.agent.agent</h1><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.gossip.gossip.html b/docs/codox/the-great-game.gossip.gossip.html index 559aa1c..177c964 100644 --- a/docs/codox/the-great-game.gossip.gossip.html +++ b/docs/codox/the-great-game.gossip.gossip.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.gossip documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-dialogue"><div class="inner"><span>dialogue</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-gather-news"><div class="inner"><span>gather-news</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-move-gossip"><div class="inner"><span>move-gossip</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.gossip</h1><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="public anchor" id="var-dialogue"><h3>dialogue</h3><div class="usage"><code>(dialogue enquirer respondent world)</code></div><div class="doc"><div class="markdown"><p>Dialogue between an <code>enquirer</code> and an <code>agent</code> in this <code>world</code>; returns a map identical to <code>enquirer</code> except that its <code>:gossip</code> collection may have additional entries.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L9">view source</a></div></div><div class="public anchor" id="var-gather-news"><h3>gather-news</h3><div class="usage"><code>(gather-news world)</code><code>(gather-news world gossip)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L17">view source</a></div></div><div class="public anchor" id="var-move-gossip"><h3>move-gossip</h3><div class="usage"><code>(move-gossip gossip world new-location)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> but with this <code>gossip</code> moved to this <code>new-location</code>. Many gossips are essentially shadow-records of agents of other types, and the movement of the gossip should be controlled by the run function of the type of the record they shadow. The <a href="null">#run</a> function below does NOT call this function.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L43">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with news items exchanged between gossip agents.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L61">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.gossip documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-dialogue"><div class="inner"><span>dialogue</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-gather-news"><div class="inner"><span>gather-news</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-move-gossip"><div class="inner"><span>move-gossip</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.gossip</h1><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="public anchor" id="var-dialogue"><h3>dialogue</h3><div class="usage"><code>(dialogue enquirer respondent world)</code></div><div class="doc"><div class="markdown"><p>Dialogue between an <code>enquirer</code> and an <code>agent</code> in this <code>world</code>; returns a map identical to <code>enquirer</code> except that its <code>:gossip</code> collection may have additional entries.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L10">view source</a></div></div><div class="public anchor" id="var-gather-news"><h3>gather-news</h3><div class="usage"><code>(gather-news world)</code><code>(gather-news world gossip)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L18">view source</a></div></div><div class="public anchor" id="var-move-gossip"><h3>move-gossip</h3><div class="usage"><code>(move-gossip gossip world new-location)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> but with this <code>gossip</code> moved to this <code>new-location</code>. Many gossips are essentially shadow-records of agents of other types, and the movement of the gossip should be controlled by the run function of the type of the record they shadow. The <a href="null">#run</a> function below does NOT call this function.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L44">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with news items exchanged between gossip agents.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L62">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.gossip.news-items.html b/docs/codox/the-great-game.gossip.news-items.html index e145054..64f1d4c 100644 --- a/docs/codox/the-great-game.gossip.news-items.html +++ b/docs/codox/the-great-game.gossip.news-items.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.news-items documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3 current"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-character"><div class="inner"><span>degrade-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-location"><div class="inner"><span>degrade-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-infer"><div class="inner"><span>infer</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-character"><div class="inner"><span>interest-in-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-location"><div class="inner"><span>interest-in-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-character.3F"><div class="inner"><span>interesting-character?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-item.3F"><div class="inner"><span>interesting-item?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-location.3F"><div class="inner"><span>interesting-location?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-object.3F"><div class="inner"><span>interesting-object?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F"><div class="inner"><span>interesting-topic?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-learn-news-item"><div class="inner"><span>learn-news-item</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-make-all-inferences"><div class="inner"><span>make-all-inferences</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-news-topics"><div class="inner"><span>news-topics</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.news-items</h1><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="public anchor" id="var-degrade-character"><h3>degrade-character</h3><div class="usage"><code>(degrade-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Return a character specification like this <code>character</code>, but comprising only those properties this <code>gossip</code> is interested in.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L191">view source</a></div></div><div class="public anchor" id="var-degrade-location"><h3>degrade-location</h3><div class="usage"><code>(degrade-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Return a location specification like this <code>location</code>, but comprising only those elements this <code>gossip</code> is interested in. If none, return <code>nil</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L198">view source</a></div></div><div class="public anchor" id="var-infer"><h3>infer</h3><div class="usage"><code>(infer item rule)</code></div><div class="doc"><div class="markdown"><p>Infer a new knowledge item from this <code>item</code>, following this <code>rule</code></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L166">view source</a></div></div><div class="public anchor" id="var-interest-in-character"><h3>interest-in-character</h3><div class="usage"><code>(interest-in-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>character</code> is to this <code>gossip</code>. <em>TODO:</em> this assumes that characters are passed as keywords, but, as documented above, they probably have to be maps, to allow for degradation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L99">view source</a></div></div><div class="public anchor" id="var-interest-in-location"><h3>interest-in-location</h3><div class="usage"><code>(interest-in-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>location</code> is to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L116">view source</a></div></div><div class="public anchor" id="var-interesting-character.3F"><h3>interesting-character?</h3><div class="usage"><code>(interesting-character? gossip character)</code></div><div class="doc"><div class="markdown"><p>Boolean representation of whether this <code>character</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L110">view source</a></div></div><div class="public anchor" id="var-interesting-item.3F"><h3>interesting-item?</h3><div class="usage"><code>(interesting-item? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if anything about this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L156">view source</a></div></div><div class="public anchor" id="var-interesting-location.3F"><h3>interesting-location?</h3><div class="usage"><code>(interesting-location? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if the location of this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L141">view source</a></div></div><div class="public anchor" id="var-interesting-object.3F"><h3>interesting-object?</h3><div class="usage"><code>(interesting-object? gossip object)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L146">view source</a></div></div><div class="public anchor" id="var-interesting-topic.3F"><h3>interesting-topic?</h3><div class="usage"><code>(interesting-topic? gossip topic)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L151">view source</a></div></div><div class="public anchor" id="var-learn-news-item"><h3>learn-news-item</h3><div class="usage"><code>(learn-news-item gossip item)</code><code>(learn-news-item gossip item follow-inferences?)</code></div><div class="doc"><div class="markdown"><p>Return a gossip like this <code>gossip</code>, which has learned this news <code>item</code> if it is of interest to them.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L210">view source</a></div></div><div class="public anchor" id="var-make-all-inferences"><h3>make-all-inferences</h3><div class="usage"><code>(make-all-inferences item)</code></div><div class="doc"><div class="markdown"><p>Return a list of knowledge entries inferred from this news <code>item</code> by this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L180">view source</a></div></div><div class="public anchor" id="var-news-topics"><h3>news-topics</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Topics of interest to gossip agents. Topics are keyed in this map by their <code>verbs</code>. The <code>keys</code> associated with each topic are the extra pieces of information required to give context to a gossip item. Generally:</p> +<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.news-items documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3 current"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-character"><div class="inner"><span>degrade-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-location"><div class="inner"><span>degrade-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-infer"><div class="inner"><span>infer</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-character"><div class="inner"><span>interest-in-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-location"><div class="inner"><span>interest-in-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-character.3F"><div class="inner"><span>interesting-character?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-item.3F"><div class="inner"><span>interesting-item?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-location.3F"><div class="inner"><span>interesting-location?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-object.3F"><div class="inner"><span>interesting-object?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F"><div class="inner"><span>interesting-topic?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-learn-news-item"><div class="inner"><span>learn-news-item</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-make-all-inferences"><div class="inner"><span>make-all-inferences</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-news-topics"><div class="inner"><span>news-topics</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.news-items</h1><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="public anchor" id="var-degrade-character"><h3>degrade-character</h3><div class="usage"><code>(degrade-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Return a character specification like this <code>character</code>, but comprising only those properties this <code>gossip</code> is interested in.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L193">view source</a></div></div><div class="public anchor" id="var-degrade-location"><h3>degrade-location</h3><div class="usage"><code>(degrade-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Return a location specification like this <code>location</code>, but comprising only those elements this <code>gossip</code> is interested in. If none, return <code>nil</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L200">view source</a></div></div><div class="public anchor" id="var-infer"><h3>infer</h3><div class="usage"><code>(infer item rule)</code></div><div class="doc"><div class="markdown"><p>Infer a new knowledge item from this <code>item</code>, following this <code>rule</code></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L168">view source</a></div></div><div class="public anchor" id="var-interest-in-character"><h3>interest-in-character</h3><div class="usage"><code>(interest-in-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>character</code> is to this <code>gossip</code>. <em>TODO:</em> this assumes that characters are passed as keywords, but, as documented above, they probably have to be maps, to allow for degradation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L99">view source</a></div></div><div class="public anchor" id="var-interest-in-location"><h3>interest-in-location</h3><div class="usage"><code>(interest-in-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>location</code> is to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L116">view source</a></div></div><div class="public anchor" id="var-interesting-character.3F"><h3>interesting-character?</h3><div class="usage"><code>(interesting-character? gossip character)</code></div><div class="doc"><div class="markdown"><p>Boolean representation of whether this <code>character</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L110">view source</a></div></div><div class="public anchor" id="var-interesting-item.3F"><h3>interesting-item?</h3><div class="usage"><code>(interesting-item? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if anything about this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L158">view source</a></div></div><div class="public anchor" id="var-interesting-location.3F"><h3>interesting-location?</h3><div class="usage"><code>(interesting-location? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if the location of this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L143">view source</a></div></div><div class="public anchor" id="var-interesting-object.3F"><h3>interesting-object?</h3><div class="usage"><code>(interesting-object? gossip object)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L148">view source</a></div></div><div class="public anchor" id="var-interesting-topic.3F"><h3>interesting-topic?</h3><div class="usage"><code>(interesting-topic? gossip topic)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L153">view source</a></div></div><div class="public anchor" id="var-learn-news-item"><h3>learn-news-item</h3><div class="usage"><code>(learn-news-item gossip item)</code><code>(learn-news-item gossip item follow-inferences?)</code></div><div class="doc"><div class="markdown"><p>Return a gossip like this <code>gossip</code>, which has learned this news <code>item</code> if it is of interest to them.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L212">view source</a></div></div><div class="public anchor" id="var-make-all-inferences"><h3>make-all-inferences</h3><div class="usage"><code>(make-all-inferences item)</code></div><div class="doc"><div class="markdown"><p>Return a list of knowledge entries inferred from this news <code>item</code> by this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L182">view source</a></div></div><div class="public anchor" id="var-news-topics"><h3>news-topics</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Topics of interest to gossip agents. Topics are keyed in this map by their <code>verbs</code>. The <code>keys</code> associated with each topic are the extra pieces of information required to give context to a gossip item. Generally:</p> <ul> <li><code>actor</code> is the id of the character who it is reported performed the action;</li> <li><code>other</code> is the id of the character on whom it is reported the action was performed;</li> diff --git a/docs/codox/the-great-game.merchants.markets.html b/docs/codox/the-great-game.merchants.markets.html index 7d7e83e..fa68c6e 100644 --- a/docs/codox/the-great-game.merchants.markets.html +++ b/docs/codox/the-great-game.merchants.markets.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.markets documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price"><div class="inner"><span>adjust-quantity-and-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-new-price"><div class="inner"><span>new-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-run"><div class="inner"><span>run</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-update-markets"><div class="inner"><span>update-markets</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.markets</h1><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="public anchor" id="var-adjust-quantity-and-price"><h3>adjust-quantity-and-price</h3><div class="usage"><code>(adjust-quantity-and-price world city commodity)</code></div><div class="doc"><div class="markdown"><p>Adjust the quantity of this <code>commodity</code> currently in stock in this <code>city</code> of this <code>world</code>. Return a fragmentary world which can be deep-merged into this world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L17">view source</a></div></div><div class="public anchor" id="var-new-price"><h3>new-price</h3><div class="usage"><code>(new-price old stock supply demand)</code></div><div class="doc"><div class="markdown"><p>If <code>stock</code> is greater than the maximum of <code>supply</code> and <code>demand</code>, then there is surplus and <code>old</code> price is too high, so shold be reduced. If lower, then it is too low and should be increased.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L6">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L79">view source</a></div></div><div class="public anchor" id="var-update-markets"><h3>update-markets</h3><div class="usage"><code>(update-markets world)</code><code>(update-markets world city)</code><code>(update-markets world city commodity)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand. If <code>city</code> or <code>city</code> and <code>commodity</code> are specified, return a fragmentary world with only the changes for that <code>city</code> (and <code>commodity</code> if specified) populated.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L57">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.markets documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price"><div class="inner"><span>adjust-quantity-and-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-new-price"><div class="inner"><span>new-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-run"><div class="inner"><span>run</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-update-markets"><div class="inner"><span>update-markets</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.markets</h1><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="public anchor" id="var-adjust-quantity-and-price"><h3>adjust-quantity-and-price</h3><div class="usage"><code>(adjust-quantity-and-price world city commodity)</code></div><div class="doc"><div class="markdown"><p>Adjust the quantity of this <code>commodity</code> currently in stock in this <code>city</code> of this <code>world</code>. Return a fragmentary world which can be deep-merged into this world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L17">view source</a></div></div><div class="public anchor" id="var-new-price"><h3>new-price</h3><div class="usage"><code>(new-price old stock supply demand)</code></div><div class="doc"><div class="markdown"><p>If <code>stock</code> is greater than the maximum of <code>supply</code> and <code>demand</code>, then there is surplus and <code>old</code> price is too high, so shold be reduced. If lower, then it is too low and should be increased.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L6">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L79">view source</a></div></div><div class="public anchor" id="var-update-markets"><h3>update-markets</h3><div class="usage"><code>(update-markets world)</code><code>(update-markets world city)</code><code>(update-markets world city commodity)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand. If <code>city</code> or <code>city</code> and <code>commodity</code> are specified, return a fragmentary world with only the changes for that <code>city</code> (and <code>commodity</code> if specified) populated.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L57">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.merchants.merchant-utils.html b/docs/codox/the-great-game.merchants.merchant-utils.html index 58e0534..7667e12 100644 --- a/docs/codox/the-great-game.merchants.merchant-utils.html +++ b/docs/codox/the-great-game.merchants.merchant-utils.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchant-utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices"><div class="inner"><span>add-known-prices</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-stock"><div class="inner"><span>add-stock</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-burden"><div class="inner"><span>burden</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-afford"><div class="inner"><span>can-afford</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-carry"><div class="inner"><span>can-carry</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-expected-price"><div class="inner"><span>expected-price</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchant-utils</h1><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="public anchor" id="var-add-known-prices"><h3>add-known-prices</h3><div class="usage"><code>(add-known-prices merchant world)</code></div><div class="doc"><div class="markdown"><p>Add the current prices at this <code>merchant</code>’s location in the <code>world</code> to a new cache of known prices, and return it.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L82">view source</a></div></div><div class="public anchor" id="var-add-stock"><h3>add-stock</h3><div class="usage"><code>(add-stock a b)</code></div><div class="doc"><div class="markdown"><p>Where <code>a</code> and <code>b</code> are both maps all of whose values are numbers, return a map whose keys are a union of the keys of <code>a</code> and <code>b</code> and whose values are the sums of their respective values.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L70">view source</a></div></div><div class="public anchor" id="var-burden"><h3>burden</h3><div class="usage"><code>(burden merchant world)</code></div><div class="doc"><div class="markdown"><p>The total weight of the current cargo carried by this <code>merchant</code> in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L17">view source</a></div></div><div class="public anchor" id="var-can-afford"><h3>can-afford</h3><div class="usage"><code>(can-afford merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can afford to buy in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L50">view source</a></div></div><div class="public anchor" id="var-can-carry"><h3>can-carry</h3><div class="usage"><code>(can-carry merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can carry in this <code>world</code>, given their current burden.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L35">view source</a></div></div><div class="public anchor" id="var-expected-price"><h3>expected-price</h3><div class="usage"><code>(expected-price merchant commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the price anticipated, given this <code>world</code>, by this <code>merchant</code> for this <code>commodity</code> in this <code>city</code>. If no information, assume 1. <code>merchant</code> should be passed as a map, <code>commodity</code> and <code>city</code> should be passed as keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L4">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchant-utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices"><div class="inner"><span>add-known-prices</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-stock"><div class="inner"><span>add-stock</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-burden"><div class="inner"><span>burden</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-afford"><div class="inner"><span>can-afford</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-carry"><div class="inner"><span>can-carry</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-expected-price"><div class="inner"><span>expected-price</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchant-utils</h1><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="public anchor" id="var-add-known-prices"><h3>add-known-prices</h3><div class="usage"><code>(add-known-prices merchant world)</code></div><div class="doc"><div class="markdown"><p>Add the current prices at this <code>merchant</code>’s location in the <code>world</code> to a new cache of known prices, and return it.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L82">view source</a></div></div><div class="public anchor" id="var-add-stock"><h3>add-stock</h3><div class="usage"><code>(add-stock a b)</code></div><div class="doc"><div class="markdown"><p>Where <code>a</code> and <code>b</code> are both maps all of whose values are numbers, return a map whose keys are a union of the keys of <code>a</code> and <code>b</code> and whose values are the sums of their respective values.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L70">view source</a></div></div><div class="public anchor" id="var-burden"><h3>burden</h3><div class="usage"><code>(burden merchant world)</code></div><div class="doc"><div class="markdown"><p>The total weight of the current cargo carried by this <code>merchant</code> in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L17">view source</a></div></div><div class="public anchor" id="var-can-afford"><h3>can-afford</h3><div class="usage"><code>(can-afford merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can afford to buy in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L50">view source</a></div></div><div class="public anchor" id="var-can-carry"><h3>can-carry</h3><div class="usage"><code>(can-carry merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can carry in this <code>world</code>, given their current burden.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L35">view source</a></div></div><div class="public anchor" id="var-expected-price"><h3>expected-price</h3><div class="usage"><code>(expected-price merchant commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the price anticipated, given this <code>world</code>, by this <code>merchant</code> for this <code>commodity</code> in this <code>city</code>. If no information, assume 1. <code>merchant</code> should be passed as a map, <code>commodity</code> and <code>city</code> should be passed as keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L4">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.merchants.merchants.html b/docs/codox/the-great-game.merchants.merchants.html index 46e3dc1..d5abf84 100644 --- a/docs/codox/the-great-game.merchants.merchants.html +++ b/docs/codox/the-great-game.merchants.merchants.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchants documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchants.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchants</h1><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a partial world based on this <code>world</code>, but with each merchant moved.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchants.clj#L8">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchants documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchants.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchants</h1><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a partial world based on this <code>world</code>, but with each merchant moved.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchants.clj#L8">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.merchants.planning.html b/docs/codox/the-great-game.merchants.planning.html index 2d17459..476d46a 100644 --- a/docs/codox/the-great-game.merchants.planning.html +++ b/docs/codox/the-great-game.merchants.planning.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.planning documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-augment-plan"><div class="inner"><span>augment-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-generate-trade-plans"><div class="inner"><span>generate-trade-plans</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-nearest-with-targets"><div class="inner"><span>nearest-with-targets</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-plan-trade"><div class="inner"><span>plan-trade</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-select-cargo"><div class="inner"><span>select-cargo</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.planning</h1><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="public anchor" id="var-augment-plan"><h3>augment-plan</h3><div class="usage"><code>(augment-plan merchant world plan)</code></div><div class="doc"><div class="markdown"><p>Augment this <code>plan</code> constructed in this <code>world</code> for this <code>merchant</code> with the <code>:quantity</code> of goods which should be bought and the <code>:expected-profit</code> of the trade.</p> +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.planning documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-augment-plan"><div class="inner"><span>augment-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-generate-trade-plans"><div class="inner"><span>generate-trade-plans</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-nearest-with-targets"><div class="inner"><span>nearest-with-targets</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-plan-trade"><div class="inner"><span>plan-trade</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-select-cargo"><div class="inner"><span>select-cargo</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.planning</h1><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="public anchor" id="var-augment-plan"><h3>augment-plan</h3><div class="usage"><code>(augment-plan merchant world plan)</code></div><div class="doc"><div class="markdown"><p>Augment this <code>plan</code> constructed in this <code>world</code> for this <code>merchant</code> with the <code>:quantity</code> of goods which should be bought and the <code>:expected-profit</code> of the trade.</p> <p>Returns the augmented plan.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/planning.clj#L110">view source</a></div></div><div class="public anchor" id="var-generate-trade-plans"><h3>generate-trade-plans</h3><div class="usage"><code>(generate-trade-plans merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Generate all possible trade plans for this <code>merchant</code> and this <code>commodity</code> in this <code>world</code>.</p> <p>Returned plans are maps with keys:</p> <ul> diff --git a/docs/codox/the-great-game.merchants.strategies.simple.html b/docs/codox/the-great-game.merchants.strategies.simple.html index d5ba1e3..b1a47a3 100644 --- a/docs/codox/the-great-game.merchants.strategies.simple.html +++ b/docs/codox/the-great-game.merchants.strategies.simple.html @@ -1,4 +1,4 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.strategies.simple documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4 current"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-move-merchant"><div class="inner"><span>move-merchant</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy"><div class="inner"><span>plan-and-buy</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-re-plan"><div class="inner"><span>re-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy"><div class="inner"><span>sell-and-buy</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.strategies.simple</h1><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p> +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.strategies.simple documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4 current"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-move-merchant"><div class="inner"><span>move-merchant</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy"><div class="inner"><span>plan-and-buy</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-re-plan"><div class="inner"><span>re-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy"><div class="inner"><span>sell-and-buy</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.strategies.simple</h1><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p> <p>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.</p></div></div><div class="public anchor" id="var-move-merchant"><h3>move-merchant</h3><div class="usage"><code>(move-merchant merchant world)</code></div><div class="doc"><div class="markdown"><p>Handle general en route movement of this <code>merchant</code> in this <code>world</code>; return a (partial or full) world like this <code>world</code> but in which the merchant may have been moved ot updated.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L126">view source</a></div></div><div class="public anchor" id="var-plan-and-buy"><h3>plan-and-buy</h3><div class="usage"><code>(plan-and-buy merchant world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, in which this <code>merchant</code> 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.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L17">view source</a></div></div><div class="public anchor" id="var-re-plan"><h3>re-plan</h3><div class="usage"><code>(re-plan merchant world)</code></div><div class="doc"><div class="markdown"><p>Having failed to sell a cargo at current location, re-plan a route to sell the current cargo. Returns a revised world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L65">view source</a></div></div><div class="public anchor" id="var-sell-and-buy"><h3>sell-and-buy</h3><div class="usage"><code>(sell-and-buy merchant world)</code></div><div class="doc"><div class="markdown"><p>Return a new world like this <code>world</code>, in which this <code>merchant</code> has sold their current stock in their current location, and planned a new trade, and bought appropriate stock for it.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L84">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.time.html b/docs/codox/the-great-game.time.html index 76496a1..2fc8c02 100644 --- a/docs/codox/the-great-game.time.html +++ b/docs/codox/the-great-game.time.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.time documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.time.html#var-canonical-ordering-of-houses"><div class="inner"><span>canonical-ordering-of-houses</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-date-string"><div class="inner"><span>date-string</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day"><div class="inner"><span>day</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day-of-year"><div class="inner"><span>day-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-season"><div class="inner"><span>days-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-week"><div class="inner"><span>days-in-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-of-week"><div class="inner"><span>days-of-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-day-length"><div class="inner"><span>game-day-length</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-start-time"><div class="inner"><span>game-start-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-time"><div class="inner"><span>game-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-now"><div class="inner"><span>now</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-season"><div class="inner"><span>season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-in-year"><div class="inner"><span>seasons-in-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-of-year"><div class="inner"><span>seasons-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-waiting-day.3F"><div class="inner"><span>waiting-day?</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-week"><div class="inner"><span>week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-in-season"><div class="inner"><span>weeks-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-of-season"><div class="inner"><span>weeks-of-season</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.time</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-canonical-ordering-of-houses"><h3>canonical-ordering-of-houses</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The canonical ordering of religious houses.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L26">view source</a></div></div><div class="public anchor" id="var-date-string"><h3>date-string</h3><div class="usage"><code>(date-string game-time)</code></div><div class="doc"><div class="markdown"><p>Return a correctly formatted date for this <code>game-time</code> in the calendar of the Great Place.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L124">view source</a></div></div><div class="public anchor" id="var-day"><h3>day</h3><div class="usage"><code>(day game-time)</code></div><div class="doc"><div class="markdown"><p>Day of the eight-day week represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L100">view source</a></div></div><div class="public anchor" id="var-day-of-year"><h3>day-of-year</h3><h4 class="type">macro</h4><div class="usage"><code>(day-of-year game-time)</code></div><div class="doc"><div class="markdown"><p>The day of the year represented by this <code>game-time</code>, ignoring leap years.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L85">view source</a></div></div><div class="public anchor" id="var-days-in-season"><h3>days-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L75">view source</a></div></div><div class="public anchor" id="var-days-in-week"><h3>days-in-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>This world has an eight day week.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L43">view source</a></div></div><div class="public anchor" id="var-days-of-week"><h3>days-of-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The eight-day week of the game world. This differs from the canonical ordering of houses in that it omits the eye.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L38">view source</a></div></div><div class="public anchor" id="var-game-day-length"><h3>game-day-length</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The Java clock advances in milliseconds, which is fine. But we need game-days to be shorter than real world days. A Witcher 3 game day is 1 hour 36 minutes, or 96 minutes, which is presumably researched. Round it up to 100 minutes for easier calculation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L8">view source</a></div></div><div class="public anchor" id="var-game-start-time"><h3>game-start-time</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The start time of this run.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L4">view source</a></div></div><div class="public anchor" id="var-game-time"><h3>game-time</h3><div class="usage"><code>(game-time)</code><code>(game-time timestamp)</code></div><div class="doc"><div class="markdown"><p>With no arguments, the current game time. If a Java <code>timestamp</code> value is passed (as a <code>long</code>), the game time represented by that value.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L78">view source</a></div></div><div class="public anchor" id="var-now"><h3>now</h3><div class="usage"><code>(now)</code></div><div class="doc"><div class="markdown"><p>For now, we’ll use Java timestamp for time; ultimately, we need a concept of game-time which allows us to drive day/night cycle, seasons, et cetera, but what matters about time is that it is a value which increases.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L18">view source</a></div></div><div class="public anchor" id="var-season"><h3>season</h3><div class="usage"><code>(season game-time)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L117">view source</a></div></div><div class="public anchor" id="var-seasons-in-year"><h3>seasons-in-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Nine seasons in a year, one for each house (although the order is different.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L60">view source</a></div></div><div class="public anchor" id="var-seasons-of-year"><h3>seasons-of-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The ordering of seasons in the year is different from the canonical ordering of the houses, for reasons of the agricultural cycle.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L47">view source</a></div></div><div class="public anchor" id="var-waiting-day.3F"><h3>waiting-day?</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Does this <code>game-time</code> represent a waiting day?</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L90">view source</a></div></div><div class="public anchor" id="var-week"><h3>week</h3><div class="usage"><code>(week game-time)</code></div><div class="doc"><div class="markdown"><p>Week of season represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L108">view source</a></div></div><div class="public anchor" id="var-weeks-in-season"><h3>weeks-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L70">view source</a></div></div><div class="public anchor" id="var-weeks-of-season"><h3>weeks-of-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L65">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.time documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.time.html#var-canonical-ordering-of-houses"><div class="inner"><span>canonical-ordering-of-houses</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-date-string"><div class="inner"><span>date-string</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day"><div class="inner"><span>day</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day-of-year"><div class="inner"><span>day-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-season"><div class="inner"><span>days-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-week"><div class="inner"><span>days-in-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-of-week"><div class="inner"><span>days-of-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-day-length"><div class="inner"><span>game-day-length</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-start-time"><div class="inner"><span>game-start-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-time"><div class="inner"><span>game-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-now"><div class="inner"><span>now</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-season"><div class="inner"><span>season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-in-year"><div class="inner"><span>seasons-in-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-of-year"><div class="inner"><span>seasons-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-waiting-day.3F"><div class="inner"><span>waiting-day?</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-week"><div class="inner"><span>week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-in-season"><div class="inner"><span>weeks-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-of-season"><div class="inner"><span>weeks-of-season</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.time</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-canonical-ordering-of-houses"><h3>canonical-ordering-of-houses</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The canonical ordering of religious houses.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L26">view source</a></div></div><div class="public anchor" id="var-date-string"><h3>date-string</h3><div class="usage"><code>(date-string game-time)</code></div><div class="doc"><div class="markdown"><p>Return a correctly formatted date for this <code>game-time</code> in the calendar of the Great Place.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L124">view source</a></div></div><div class="public anchor" id="var-day"><h3>day</h3><div class="usage"><code>(day game-time)</code></div><div class="doc"><div class="markdown"><p>Day of the eight-day week represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L100">view source</a></div></div><div class="public anchor" id="var-day-of-year"><h3>day-of-year</h3><h4 class="type">macro</h4><div class="usage"><code>(day-of-year game-time)</code></div><div class="doc"><div class="markdown"><p>The day of the year represented by this <code>game-time</code>, ignoring leap years.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L85">view source</a></div></div><div class="public anchor" id="var-days-in-season"><h3>days-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L75">view source</a></div></div><div class="public anchor" id="var-days-in-week"><h3>days-in-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>This world has an eight day week.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L43">view source</a></div></div><div class="public anchor" id="var-days-of-week"><h3>days-of-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The eight-day week of the game world. This differs from the canonical ordering of houses in that it omits the eye.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L38">view source</a></div></div><div class="public anchor" id="var-game-day-length"><h3>game-day-length</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The Java clock advances in milliseconds, which is fine. But we need game-days to be shorter than real world days. A Witcher 3 game day is 1 hour 36 minutes, or 96 minutes, which is presumably researched. Round it up to 100 minutes for easier calculation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L8">view source</a></div></div><div class="public anchor" id="var-game-start-time"><h3>game-start-time</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The start time of this run.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L4">view source</a></div></div><div class="public anchor" id="var-game-time"><h3>game-time</h3><div class="usage"><code>(game-time)</code><code>(game-time timestamp)</code></div><div class="doc"><div class="markdown"><p>With no arguments, the current game time. If a Java <code>timestamp</code> value is passed (as a <code>long</code>), the game time represented by that value.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L78">view source</a></div></div><div class="public anchor" id="var-now"><h3>now</h3><div class="usage"><code>(now)</code></div><div class="doc"><div class="markdown"><p>For now, we’ll use Java timestamp for time; ultimately, we need a concept of game-time which allows us to drive day/night cycle, seasons, et cetera, but what matters about time is that it is a value which increases.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L18">view source</a></div></div><div class="public anchor" id="var-season"><h3>season</h3><div class="usage"><code>(season game-time)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L117">view source</a></div></div><div class="public anchor" id="var-seasons-in-year"><h3>seasons-in-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Nine seasons in a year, one for each house (although the order is different.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L60">view source</a></div></div><div class="public anchor" id="var-seasons-of-year"><h3>seasons-of-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The ordering of seasons in the year is different from the canonical ordering of the houses, for reasons of the agricultural cycle.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L47">view source</a></div></div><div class="public anchor" id="var-waiting-day.3F"><h3>waiting-day?</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Does this <code>game-time</code> represent a waiting day?</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L90">view source</a></div></div><div class="public anchor" id="var-week"><h3>week</h3><div class="usage"><code>(week game-time)</code></div><div class="doc"><div class="markdown"><p>Week of season represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L108">view source</a></div></div><div class="public anchor" id="var-weeks-in-season"><h3>weeks-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L70">view source</a></div></div><div class="public anchor" id="var-weeks-of-season"><h3>weeks-of-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L65">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.utils.html b/docs/codox/the-great-game.utils.html index 84eba13..b52db2b 100644 --- a/docs/codox/the-great-game.utils.html +++ b/docs/codox/the-great-game.utils.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.utils.html#var-cyclic.3F"><div class="inner"><span>cyclic?</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-deep-merge"><div class="inner"><span>deep-merge</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-make-target-filter"><div class="inner"><span>make-target-filter</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.utils</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-cyclic.3F"><h3>cyclic?</h3><div class="usage"><code>(cyclic? route)</code></div><div class="doc"><div class="markdown"><p>True if two or more elements of <code>route</code> are identical</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L3">view source</a></div></div><div class="public anchor" id="var-deep-merge"><h3>deep-merge</h3><div class="usage"><code>(deep-merge & maps)</code></div><div class="doc"><div class="markdown"><p>Recursively merges maps. Stolen from <a href="https://dnaeon.github.io/recursively-merging-maps-in-clojure/">https://dnaeon.github.io/recursively-merging-maps-in-clojure/</a></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L8">view source</a></div></div><div class="public anchor" id="var-make-target-filter"><h3>make-target-filter</h3><div class="usage"><code>(make-target-filter targets)</code></div><div class="doc"><div class="markdown"><p>Construct a filter which, when applied to a list of maps, will pass those which match these <code>targets</code>, where each target is a tuple [key value].</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L18">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.utils.html#var-cyclic.3F"><div class="inner"><span>cyclic?</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-deep-merge"><div class="inner"><span>deep-merge</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-make-target-filter"><div class="inner"><span>make-target-filter</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.utils</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-cyclic.3F"><h3>cyclic?</h3><div class="usage"><code>(cyclic? route)</code></div><div class="doc"><div class="markdown"><p>True if two or more elements of <code>route</code> are identical</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L3">view source</a></div></div><div class="public anchor" id="var-deep-merge"><h3>deep-merge</h3><div class="usage"><code>(deep-merge & maps)</code></div><div class="doc"><div class="markdown"><p>Recursively merges maps. Stolen from <a href="https://dnaeon.github.io/recursively-merging-maps-in-clojure/">https://dnaeon.github.io/recursively-merging-maps-in-clojure/</a></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L8">view source</a></div></div><div class="public anchor" id="var-make-target-filter"><h3>make-target-filter</h3><div class="usage"><code>(make-target-filter targets)</code></div><div class="doc"><div class="markdown"><p>Construct a filter which, when applied to a list of maps, will pass those which match these <code>targets</code>, where each target is a tuple [key value].</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L18">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.location.html b/docs/codox/the-great-game.world.location.html index e3836dc..641a92c 100644 --- a/docs/codox/the-great-game.world.location.html +++ b/docs/codox/the-great-game.world.location.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.location documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.location.html#var-distance-between"><div class="inner"><span>distance-between</span></div></a></li><li class="depth-1"><a href="the-great-game.world.location.html#var-get-coords"><div class="inner"><span>get-coords</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.location</h1><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="public anchor" id="var-distance-between"><h3>distance-between</h3><div class="usage"><code>(distance-between location-1 location-2)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L31">view source</a></div></div><div class="public anchor" id="var-get-coords"><h3>get-coords</h3><div class="usage"><code>(get-coords location)</code></div><div class="doc"><div class="markdown"><p>Return the coordinates in the game world of <code>location</code>, 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 <code>:location</code> property whose value is one of the above.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L13">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.location documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.location.html#var-distance-between"><div class="inner"><span>distance-between</span></div></a></li><li class="depth-1"><a href="the-great-game.world.location.html#var-get-coords"><div class="inner"><span>get-coords</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.location</h1><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="public anchor" id="var-distance-between"><h3>distance-between</h3><div class="usage"><code>(distance-between location-1 location-2)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L31">view source</a></div></div><div class="public anchor" id="var-get-coords"><h3>get-coords</h3><div class="usage"><code>(get-coords location)</code></div><div class="doc"><div class="markdown"><p>Return the coordinates in the game world of <code>location</code>, 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 <code>:location</code> property whose value is one of the above.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L13">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.routes.html b/docs/codox/the-great-game.world.routes.html index f5a5455..725f405 100644 --- a/docs/codox/the-great-game.world.routes.html +++ b/docs/codox/the-great-game.world.routes.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.routes documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-route"><div class="inner"><span>find-route</span></div></a></li><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-routes"><div class="inner"><span>find-routes</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.routes</h1><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="public anchor" id="var-find-route"><h3>find-route</h3><div class="usage"><code>(find-route world-or-routes from to)</code></div><div class="doc"><div class="markdown"><p>Find a single route from <code>from</code> to <code>to</code> in this <code>world-or-routes</code>, which may be either a world as defined in <a href="the-great-game.world.world.html">the-great-game.world.world</a> or else a sequence of tuples of keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L46">view source</a></div></div><div class="public anchor" id="var-find-routes"><h3>find-routes</h3><div class="usage"><code>(find-routes routes from)</code><code>(find-routes routes from to)</code><code>(find-routes routes from to steps)</code></div><div class="doc"><div class="markdown"><p>Find routes from among these <code>routes</code> from <code>from</code>; if <code>to</code> is supplied, to <code>to</code>, by breadth-first search.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L5">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.routes documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-route"><div class="inner"><span>find-route</span></div></a></li><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-routes"><div class="inner"><span>find-routes</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.routes</h1><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="public anchor" id="var-find-route"><h3>find-route</h3><div class="usage"><code>(find-route world-or-routes from to)</code></div><div class="doc"><div class="markdown"><p>Find a single route from <code>from</code> to <code>to</code> in this <code>world-or-routes</code>, which may be either a world as defined in <a href="the-great-game.world.world.html">the-great-game.world.world</a> or else a sequence of tuples of keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L46">view source</a></div></div><div class="public anchor" id="var-find-routes"><h3>find-routes</h3><div class="usage"><code>(find-routes routes from)</code><code>(find-routes routes from to)</code><code>(find-routes routes from to steps)</code></div><div class="doc"><div class="markdown"><p>Find routes from among these <code>routes</code> from <code>from</code>; if <code>to</code> is supplied, to <code>to</code>, by breadth-first search.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L5">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.run.html b/docs/codox/the-great-game.world.run.html index 0aca065..277b977 100644 --- a/docs/codox/the-great-game.world.run.html +++ b/docs/codox/the-great-game.world.run.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.run documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.run.html#var-init"><div class="inner"><span>init</span></div></a></li><li class="depth-1"><a href="the-great-game.world.run.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.run</h1><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="public anchor" id="var-init"><h3>init</h3><div class="usage"><code>(init)</code><code>(init config)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L11">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>The pipeline to run the simulation each game day. Returns a world like this world, with all the various active elements updated. The optional <code>date</code> argument, if supplied, is set as the <code>:date</code> of the returned world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L26">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.run documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.run.html#var-init"><div class="inner"><span>init</span></div></a></li><li class="depth-1"><a href="the-great-game.world.run.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.run</h1><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="public anchor" id="var-init"><h3>init</h3><div class="usage"><code>(init)</code><code>(init config)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L11">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>The pipeline to run the simulation each game day. Returns a world like this world, with all the various active elements updated. The optional <code>date</code> argument, if supplied, is set as the <code>:date</code> of the returned world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L26">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.world.html b/docs/codox/the-great-game.world.world.html index c417377..67d8c86 100644 --- a/docs/codox/the-great-game.world.world.html +++ b/docs/codox/the-great-game.world.world.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.world documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3 current"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.world.html#var-actual-price"><div class="inner"><span>actual-price</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-default-world"><div class="inner"><span>default-world</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.world</h1><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="public anchor" id="var-actual-price"><h3>actual-price</h3><div class="usage"><code>(actual-price world commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the actual current price of this <code>commodity</code> in this <code>city</code> given this <code>world</code>. <strong>NOTE</strong> that merchants can only know the actual prices in the city in which they are currently located.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L178">view source</a></div></div><div class="public anchor" id="var-default-world"><h3>default-world</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>A basic world for testing concepts</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L10">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> with only the <code>:date</code> to this <code>date</code> (or id <code>date</code> not supplied, the current value incremented by one). For running other aspects of the simulation, see <a href="the-great-game.world.run.html">the-great-game.world.run</a>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L185">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.world documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3 current"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.world.html#var-actual-price"><div class="inner"><span>actual-price</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-default-world"><div class="inner"><span>default-world</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.world</h1><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="public anchor" id="var-actual-price"><h3>actual-price</h3><div class="usage"><code>(actual-price world commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the actual current price of this <code>commodity</code> in this <code>city</code> given this <code>world</code>. <strong>NOTE</strong> that merchants can only know the actual prices in the city in which they are currently located.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L178">view source</a></div></div><div class="public anchor" id="var-default-world"><h3>default-world</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>A basic world for testing concepts</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L10">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> with only the <code>:date</code> to this <code>date</code> (or id <code>date</code> not supplied, the current value incremented by one). For running other aspects of the simulation, see <a href="the-great-game.world.run.html">the-great-game.world.run</a>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L185">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 044b871..ee9bafd 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,13 +1,14 @@ <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> - <title>The Great Game: Dcocumentation</title> + <title>The Great Game: Documentation</title> + <link rel="stylesheet" type="text/css" href="codox/css/default.css" /> </head> <body> - <h1>The Great Game: Dcocumentation</h1> + <h1>The Great Game: Documentation</h1> <ul> - <li><a href="cloverage/index.html">Test coverage</a></li> <li><a href="codox/index.html">Primary documentaion</a></li> + <li><a href="cloverage/index.html">Test coverage</a></li> </ul> </body> </html> diff --git a/src/the_great_game/gossip/news_items.clj b/src/the_great_game/gossip/news_items.clj index 4591f3a..f2572d4 100644 --- a/src/the_great_game/gossip/news_items.clj +++ b/src/the_great_game/gossip/news_items.clj @@ -1,7 +1,7 @@ (ns the-great-game.gossip.news-items "Categories of news events interesting to gossip agents" (:require [the-great-game.world.location :refer [distance-between]] - [the-great-game.time :refer [now]])) + [the-great-game.time :refer [game-time]])) ;; The ideas here are based on the essay 'The spread of knowledge in a large ;; game world', q.v.; they've advanced a little beyond that and will doubtless @@ -136,12 +136,14 @@ (count (filter #(some (fn [x] (= x location)) (:location %)) - (:knowledge gossip))))) + (cons {:location (:home gossip)} (:knowledge gossip)))))) + +;; (interest-in-location {:home [{0, 0} :test-home] :knowledge []} [:test-home]) (defn interesting-location? "True if the location of this news `item` is interesting to this `gossip`." [gossip item] - (> (interest-in-location gossip (:location item)) 1)) + (> (interest-in-location gossip (:location item)) 0)) (defn interesting-object? [gossip object] @@ -224,7 +226,7 @@ (number? (:nth-hand item)) (inc (:nth-hand item)) 1) - :date (if (number? (:date item)) (:date item) (now)) + :date (if (number? (:date item)) (:date item) (game-time)) :location (degrade-location gossip (:location item)) ;; ought to degratde the location ;; ought to maybe-degrade characters we're not yet interested in diff --git a/test/the_great_game/gossip/news_items_test.clj b/test/the_great_game/gossip/news_items_test.clj index 908e330..db5ee89 100644 --- a/test/the_great_game/gossip/news_items_test.clj +++ b/test/the_great_game/gossip/news_items_test.clj @@ -23,6 +23,11 @@ :location [{:x 35 :y 23} :auchencairn :galloway :scotland]}]} [:galloway :scotland])] (is (= actual expected))) + (let [expected 2 + actual (interest-in-location + {:home [{:x 35 :y 23} :auchencairn :galloway :scotland]} + [:galloway :scotland])] + (is (= actual expected))) (let [expected 0 actual (interest-in-location {:knowledge [{:verb :steal @@ -114,19 +119,16 @@ ;; dates will not be and cannot be expected to be equal actual (make-all-inferences {:verb :rape :actor :adam :other :belinda :location :test-home}) - actual' (map #(dissoc % :date) actual)] + actual' (set (map #(dissoc % :date) actual))] (is (= actual' expected))))) -;; (deftest learn-tests -;; (testing "Learning from an interesting news item." -;; (let [expected {:home [{0 0} :test-home], -;; :knowledge ({:verb :rape, :actor :adam, :other :belinda, :location nil, :nth-hand 1} -;; {:verb :sex, :actor :belinda, :other :adam, :location nil, :nth-hand 1} -;; {:verb :attack, :actor :adam, :other :belinda, :location nil, :nth-hand 1} -;; {:verb :sex, :actor :adam, :other :belinda, :location nil, :nth-hand 1})} -;; actual (learn-news-item -;; {:home [{0, 0} :test-home] -;; :knowledge []} -;; {:verb :rape :actor :adam :other :belinda :location [:test-home]}) -;; actual' (assoc actual :knowledge (map #(dissoc % :date) (:knowledge actual)))] -;; (is (= actual' expected))))) +(deftest learn-tests + (testing "Learning from an interesting news item." + (let [expected {:home [{0 0} :test-home], + :knowledge [{:verb :sex, :actor :adam, :other :belinda, :location nil, :nth-hand 1} + {:verb :sex, :actor :belinda, :other :adam, :location nil, :nth-hand 1}]} + actual (learn-news-item + {:home [{0, 0} :test-home] :knowledge []} + {:verb :sex :actor :adam :other :belinda :location [:test-home]}) + actual' (assoc actual :knowledge (vec (map #(dissoc % :date) (:knowledge actual))))] + (is (= actual' expected))))) From 08cab01f6db44c09c91da6c00178c4d7fd5ac5d6 Mon Sep 17 00:00:00 2001 From: Simon Brooke <simon@journeyman.cc> Date: Wed, 15 Apr 2020 18:46:43 +0100 Subject: [PATCH 07/12] Further work on documentation and thinking. Not all tests pass. --- doc/Baking-the-world.md | 4 +- ...read-of-knowledge-in-a-large-game-world.md | 32 +++++++++++++--- doc/economy.md | 2 +- doc/intro.md | 16 ++++---- doc/modelling_trading_cost_and_risk.md | 2 +- docs/codox/Baking-the-world.html | 4 +- ...ad-of-knowledge-in-a-large-game-world.html | 32 +++++++++++++--- docs/codox/economy.html | 2 +- docs/codox/intro.html | 14 +++---- .../modelling_trading_cost_and_risk.html | 2 +- src/the_great_game/gossip/news_items.clj | 38 +++++++++++-------- .../the_great_game/gossip/news_items_test.clj | 4 +- 12 files changed, 101 insertions(+), 51 deletions(-) diff --git a/doc/Baking-the-world.md b/doc/Baking-the-world.md index c41c6cc..a2f3739 100644 --- a/doc/Baking-the-world.md +++ b/doc/Baking-the-world.md @@ -16,7 +16,7 @@ But, before going there, to summarise the proving stage. The inputs are: -1. A raster height map (although this could be randomly generated using any one of many fractal algorithms) - this probably uses ideas from [tessellated multi-layer height map](../../2013/07/tessellated-multi-layer-height-map.html); +1. A raster height map (although this could be randomly generated using any one of many fractal algorithms) - this probably uses ideas from [tessellated multi-layer height map](https://blog.journeyman.cc/2013/07/tessellated-multi-layer-height-map.html); 1. Optionally, a raster rainfall map at 1km resolution (although my personal preference is that this should be generated procedurally from the height map). The outputs are @@ -26,7 +26,7 @@ 1. A database of settlers and their settlements, such that the settlements have x,y co-ordinates; 1. A vector road map. - In this sense, the 'biome map' is just the end state of a [Microworld](../../2014/08/modelling-settlement-with-cellular.html) run. The 'biomes' include things like 'forest', 'scrub', 'heath', 'pasture', but they may also include human settlement, and even settlement by different cultural groups. + In this sense, the 'biome map' is just the end state of a [Microworld](https://blog.journeyman.cc/2014/08/modelling-settlement-with-cellular.html) run. The 'biomes' include things like 'forest', 'scrub', 'heath', 'pasture', but they may also include human settlement, and even settlement by different cultural groups. This gives us all we need to vegetate and furnish the world. When rendering each square metre we have diff --git a/doc/The-spread-of-knowledge-in-a-large-game-world.md b/doc/The-spread-of-knowledge-in-a-large-game-world.md index 40e842b..937da44 100644 --- a/doc/The-spread-of-knowledge-in-a-large-game-world.md +++ b/doc/The-spread-of-knowledge-in-a-large-game-world.md @@ -27,24 +27,46 @@ _This version of this essay has been adapted to use the code in `the-great-game. Obviously, news is more valuable if the people involved are important or notorious: the significance of a story is probably the product of the significance of the people concerned. - So a news item becomes a tuple + So a news item becomes a map with keys similar to - `(days-old nth-hand significance action (actors))` + [:verb :actor :other :location :nth-hand :time-stamp] + + The [exact keys for each verb are specified here](the-great-game.gossip.news-items.html#var-news-topics). for example - `(54 2 10 'killed '(fred joe))` + {:verb :kill, + :actor {:id :fred :name "Fred"}, + :other {:id :joe :name "Joe"}, + :location [{45467 78613} :hanshua :plateau], + :nth-hand 3, + :time-stamp 17946463} - meaning 'I spoke to a man who'd spoken to a man who said he saw notorious fred kill well-liked joe on 54 days ago'. Obviously, the non-player character must be able to construct a natural language sentence from the tuple when speaking within the hearing of a player character, but there's no need for a non-player character to produce a natural language sentence for another non-player character to parse; instead they can just exchange tuples. + meaning 'I spoke to a man who'd spoken to a man who said he saw fred kill joe at the game time represented by the time stamp 17946463, at the coordinates {45467 78613} in Hans'hua on the Plateau'. Obviously, the non-player character must be able to construct a natural language sentence from the tuple when speaking within the hearing of a player character, but there's no need for a non-player character to produce a natural language sentence for another non-player character to parse; instead they can just exchange tuples. But if we're exchanging knowledge between agents, then agents must have a means of representing knowledge. This knowledge is an association between subjects and sets of statement, such that when the agent learns the statement - `(54 2 10 'killed '(fred joe))` + {:verb :kill, + :actor {:id :fred :name "Fred"}, + :other {:id :joe :name "Joe"}, + :location [{45467 78613} :hanshua :plateau], + :nth-hand 3, + :time-stamp 17946463} it adds this statement (with the 2 incremented to 3) to the set of statements it knows about fred and also to the set of statements it knows about joe. It's possible that the receiving agent could then challenge for further statements about fred and/or joe, the automated equivalent of a 'who's joe?' question. There could be feedback in this. Fred's and joe's significance scores could be incremented for each character to whom the statement is passed on, increasing the likeliness that fred, at least, would feature in more news stories in future. There needs also to be some means of managing how the non-player character's attitude to the subjects of the statement are affected. For example, If fred kills joe, and the character (say bill) receiving the news feels positively towards joe, then bill's attitude to fred should become sharply more hostile. If bill feels neutral about joe, then bill's attitude to fred should still become a bit more hostile, since killing people is on the whole a bad thing. But it bill feels very hostile towards joe, then bill's attitude to fred should become more friendly. +But also, the added knowledge is *degraded*. If the recipient isn't from Hans'hua, the exact location isn't meaningful to them, for example. If the recipient isn't interested in Joe, precisely who was killed may be forgotten. So what is stored could become: + + {:verb :kill, + :actor {:id :fred :name "Fred"}, + :location [:hanshua :plateau], + :nth-hand 4, + :time-stamp 17946463} + +The timestamp could also be degraded, or lost altother - although how exactly this is represnted I'm not certain. Someone interested in the incident may remember 'it was exactly 17 days ago', whereas someone else may remember that it was 'this month, I think'. + Obviously the rate of decay, and the degree of randomness, of the news-passing algorithm would need to be tuned, but this schema seems to me to describe a system with the following features: * Non-player characters can respond to questions about significant things which happen in the world - without it all having to be scripted diff --git a/doc/economy.md b/doc/economy.md index 45ed00a..15111dc 100644 --- a/doc/economy.md +++ b/doc/economy.md @@ -1,6 +1,6 @@ # Game world economy -Broadly this essay extends ideas presented in [Populating a game world](https://blog.journeyman.cc/2013/07/populating-game-world.html), q.v. +Broadly this essay extends ideas presented in [Populating a game world](Populating-a-game-world.html), q.v. ## Primary producers diff --git a/doc/intro.md b/doc/intro.md index 3c67ed7..3ae3526 100644 --- a/doc/intro.md +++ b/doc/intro.md @@ -19,7 +19,7 @@ that I need to be able to use it to tell stories, in order to create initial threads of narrative from which players can start their exploration. Note that, by 'conflict', here, I explicitly do not mean 'killing people', -or even 'killing non-player characters'. I have [written extensively](https://blog.journeyman.cc/2015/02/voice-acting-considered-harmful.html) +or even 'killing non-player characters'. I have [written extensively](Voice-acting-considered-harmful.html) about the problem in many current video games that all too often the only way of interacting with non-player characters is to kill them. Killing people should be one of the potential ways of resolving conflicts, because @@ -32,18 +32,18 @@ repertoire of speech. ## Previous essays that are relevant -* [The spread of knowledge in a large game world](https://blog.journeyman.cc/2008/04/the-spread-of-knowledge-in-large-game.html) (2008) discusses what individual non-player characters know, and how to model dynamic updates to their knowledge; +* [The spread of knowledge in a large game world](The-spread-of-knowledge-in-a-large-game-world.html) (2008) discusses what individual non-player characters know, and how to model dynamic updates to their knowledge; * [Settling a game world](https://blog.journeyman.cc/2009/12/settling-game-world.html) (2009) gives rough outline of ideas about creating the environment, including modelling things like soil fertility, local building materials, and consequently local architecture; * [Tessellated multi-layer height map](https://blog.journeyman.cc/2013/07/tessellated-multi-layer-height-map.html) (2013) gives ideas for how a designed geography for a very large world could be stored relatively economically; * [Genetic Buildings](https://blog.journeyman.cc/2013/07/genetic-buildings.html) (2013) sketches algorithms which would allow procedurally-generated buildings to be site-appropriate, broadly variable and reproducable; -* [Populating a game world](https://blog.journeyman.cc/2013/07/populating-game-world.html) (2013) provides outline algorithms for how a world can be populated, and how organic mixes of trades and crafts can be modelled; +* [Populating a game world](Populating-a-game-world.html) (2013) provides outline algorithms for how a world can be populated, and how organic mixes of trades and crafts can be modelled; * [Modelling the change from rural to urban](https://blog.journeyman.cc/2013/07/modelling-change-from-rural-to-urban.html) (2013) describes the idea of procedurally modelling settlements, but it is grid-based and not particularly satisfactory and has largely been superceded in my thinking; -* [Of pigeons, and long distance messaging in a game world]() (2013) builds on ideas about flows of information; +* [Of pigeons, and long distance messaging in a game world](https://blog.journeyman.cc/2013/10/of-pigeons-and-long-distance-messaging.html) (2013) builds on ideas about flows of information; * [Modelling rural to urban, take two](https://blog.journeyman.cc/2013/10/modelling-rural-to-urban-take-two.html) (2013) revisited the idea of modelling organic settlement structures, trying to find algorithms which would naturally produce more persuasive settlement models, including further ideas on the procedural generation of buildings; * [More on modelling rivers](https://blog.journeyman.cc/2014/09/more-on-modelling-rivers.html) (2014) talks about modelling hydrology, with implications for soil fertility; * [Modelling settlement with cellular automata](https://blog.journeyman.cc/2014/08/modelling-settlement-with-cellular.html) (2014) talks about successful implementation of algorithms to model vegetative environment, human settlement and the impact of human settlement on the environment; * [Voice acting considered harmful](https://blog.journeyman.cc/2015/02/voice-acting-considered-harmful.html) (2015) outlines the ideas behind full speech interaction with non-player characters, and modelling what those non-player characters should be able to speak about; -* [Baking the world](https://blog.journeyman.cc/2019/05/baking-world.html) (2019) an outline of the overall process of creating a world. +* [Baking the world](Baking-the-world.html) (2019) an outline of the overall process of creating a world. ## Organic and emergent game-play @@ -183,8 +183,8 @@ easy: So each agent is assigned - by the dreaded random number generator - one top level goal when they are instantiated. I don't think it's necessary to model change of top level goals, although of course that does happen in real life; -however, although each agent has one top level goal, they will have lower l -evel 'stretch goals' also taken from this list: so at each decision point in +however, although each agent has one top level goal, they will have lower +level 'stretch goals' also taken from this list: so at each decision point in an agent's planning loop, if base level needs are satisfied and progress on the top level goal is blocked, actions should be chosen which progress one of the lower goals. Indeed, it's possible that all agents could have all @@ -379,4 +379,4 @@ Each game day, every habitual traveller within the 'local' gossip bubble exchanges some items of gossip with the nearest innkeeper to their current location. In the second and third gossip bubbles, it's probably only more favoured gossip agents who do this. See -[The spread of knowledge in a large game world](https://blog.journeyman.cc/2008/04/the-spread-of-knowledge-in-large-game.html) +[The spread of knowledge in a large game world](The-spread-of-knowledge-in-a-large-game-world.html) diff --git a/doc/modelling_trading_cost_and_risk.md b/doc/modelling_trading_cost_and_risk.md index 3574d5b..78ae9dd 100644 --- a/doc/modelling_trading_cost_and_risk.md +++ b/doc/modelling_trading_cost_and_risk.md @@ -2,7 +2,7 @@ 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. +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](the-great-game.gossip.gossip.html) 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/Baking-the-world.html b/docs/codox/Baking-the-world.html index 5924b7f..c588bd8 100644 --- a/docs/codox/Baking-the-world.html +++ b/docs/codox/Baking-the-world.html @@ -10,7 +10,7 @@ <p>Then, when the landscape has developed - the areas of forest, scrub, open meadow, moorland, savanah and desert are determined, the rivers plotted, the settlers moved in, their trades determined and their settlements allocated, the roadways which link settlements routed, river crossings and ports defined - the proving process ends, and the world is turned over to the plot-writers, quest builders and designers, for a process we can see as analogous to kneading.</p> <p>But, before going there, to summarise the proving stage. The inputs are:</p> <ol> - <li>A raster height map (although this could be randomly generated using any one of many fractal algorithms) - this probably uses ideas from <a href="../../2013/07/tessellated-multi-layer-height-map.html">tessellated multi-layer height map</a>;</li> + <li>A raster height map (although this could be randomly generated using any one of many fractal algorithms) - this probably uses ideas from <a href="https://blog.journeyman.cc/2013/07/tessellated-multi-layer-height-map.html">tessellated multi-layer height map</a>;</li> <li>Optionally, a raster rainfall map at 1km resolution (although my personal preference is that this should be generated procedurally from the height map).</li> </ol> <p>The outputs are</p> @@ -20,7 +20,7 @@ <li>A database of settlers and their settlements, such that the settlements have x,y co-ordinates;</li> <li>A vector road map.</li> </ol> -<p>In this sense, the ‘biome map’ is just the end state of a <a href="../../2014/08/modelling-settlement-with-cellular.html">Microworld</a> run. The ‘biomes’ include things like ‘forest’, ‘scrub’, ‘heath’, ‘pasture’, but they may also include human settlement, and even settlement by different cultural groups.</p> +<p>In this sense, the ‘biome map’ is just the end state of a <a href="https://blog.journeyman.cc/2014/08/modelling-settlement-with-cellular.html">Microworld</a> run. The ‘biomes’ include things like ‘forest’, ‘scrub’, ‘heath’, ‘pasture’, but they may also include human settlement, and even settlement by different cultural groups.</p> <p>This gives us all we need to vegetate and furnish the world. When rendering each square metre we have</p> <ol> <li>The x,y coordinates, obviously;</li> 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 df5c42d..9dd26f5 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 @@ -18,15 +18,37 @@ <li>Plot events, flagged as events by the game designer</li> </ul> <p>Obviously, news is more valuable if the people involved are important or notorious: the significance of a story is probably the product of the significance of the people concerned.</p> -<p>So a news item becomes a tuple</p> -<p><code>(days-old nth-hand significance action (actors))</code></p> +<p>So a news item becomes a map with keys similar to</p> +<pre><code>[:verb :actor :other :location :nth-hand :time-stamp] +</code></pre> +<p>The <a href="the-great-game.gossip.news-items.html#var-news-topics">exact keys for each verb are specified here</a>.</p> <p>for example</p> -<p><code>(54 2 10 'killed '(fred joe))</code></p> -<p>meaning ‘I spoke to a man who’d spoken to a man who said he saw notorious fred kill well-liked joe on 54 days ago’. Obviously, the non-player character must be able to construct a natural language sentence from the tuple when speaking within the hearing of a player character, but there’s no need for a non-player character to produce a natural language sentence for another non-player character to parse; instead they can just exchange tuples.</p> +<pre><code> {:verb :kill, + :actor {:id :fred :name "Fred"}, + :other {:id :joe :name "Joe"}, + :location [{45467 78613} :hanshua :plateau], + :nth-hand 3, + :time-stamp 17946463} +</code></pre> +<p>meaning ‘I spoke to a man who’d spoken to a man who said he saw fred kill joe at the game time represented by the time stamp 17946463, at the coordinates {45467 78613} in Hans’hua on the Plateau’. Obviously, the non-player character must be able to construct a natural language sentence from the tuple when speaking within the hearing of a player character, but there’s no need for a non-player character to produce a natural language sentence for another non-player character to parse; instead they can just exchange tuples.</p> <p>But if we’re exchanging knowledge between agents, then agents must have a means of representing knowledge. This knowledge is an association between subjects and sets of statement, such that when the agent learns the statement</p> -<p><code>(54 2 10 'killed '(fred joe))</code></p> +<pre><code> {:verb :kill, + :actor {:id :fred :name "Fred"}, + :other {:id :joe :name "Joe"}, + :location [{45467 78613} :hanshua :plateau], + :nth-hand 3, + :time-stamp 17946463} +</code></pre> <p>it adds this statement (with the 2 incremented to 3) to the set of statements it knows about fred and also to the set of statements it knows about joe. It’s possible that the receiving agent could then challenge for further statements about fred and/or joe, the automated equivalent of a ‘who’s joe?’ question.</p> <p>There could be feedback in this. Fred’s and joe’s significance scores could be incremented for each character to whom the statement is passed on, increasing the likeliness that fred, at least, would feature in more news stories in future. There needs also to be some means of managing how the non-player character’s attitude to the subjects of the statement are affected. For example, If fred kills joe, and the character (say bill) receiving the news feels positively towards joe, then bill’s attitude to fred should become sharply more hostile. If bill feels neutral about joe, then bill’s attitude to fred should still become a bit more hostile, since killing people is on the whole a bad thing. But it bill feels very hostile towards joe, then bill’s attitude to fred should become more friendly.</p> +<p>But also, the added knowledge is <em>degraded</em>. If the recipient isn’t from Hans’hua, the exact location isn’t meaningful to them, for example. If the recipient isn’t interested in Joe, precisely who was killed may be forgotten. So what is stored could become:</p> +<pre><code> {:verb :kill, + :actor {:id :fred :name "Fred"}, + :location [:hanshua :plateau], + :nth-hand 4, + :time-stamp 17946463} +</code></pre> +<p>The timestamp could also be degraded, or lost altother - although how exactly this is represnted I’m not certain. Someone interested in the incident may remember ‘it was exactly 17 days ago’, whereas someone else may remember that it was ‘this month, I think’.</p> <p>Obviously the rate of decay, and the degree of randomness, of the news-passing algorithm would need to be tuned, but this schema seems to me to describe a system with the following features:</p> <ul> <li>Non-player characters can respond to questions about significant things which happen in the world - without it all having to be scripted</li> diff --git a/docs/codox/economy.html b/docs/codox/economy.html index d81537f..b5c7ecb 100644 --- a/docs/codox/economy.html +++ b/docs/codox/economy.html @@ -1,7 +1,7 @@ <!DOCTYPE html PUBLIC "" ""> <html><head><meta charset="UTF-8" /><title>Game world economy</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 current"><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#game-world-economy" name="game-world-economy"></a>Game world economy</h1> -<p>Broadly this essay extends ideas presented in <a href="https://blog.journeyman.cc/2013/07/populating-game-world.html">Populating a game world</a>, q.v.</p> +<p>Broadly this essay extends ideas presented in <a href="Populating-a-game-world.html">Populating a game world</a>, q.v.</p> <h2><a href="#primary-producers" name="primary-producers"></a>Primary producers</h2> <h3><a href="#herdsfolk" name="herdsfolk"></a>Herdsfolk</h3> <p>Herdsfolk are nomadic; it’s reasonable to think they’ll bring their herds to market, rather than selling it lots of tiny markets. So in the spring, shepherds will visit specific towns at the edge of open land, to hold a shearing festival/carnevale; and that both shepherds and cattle herders will visit towns on the edge of open land to sell fatstock in the autumn.</p> diff --git a/docs/codox/intro.html b/docs/codox/intro.html index d16ad24..ebeff11 100644 --- a/docs/codox/intro.html +++ b/docs/codox/intro.html @@ -5,22 +5,22 @@ <p>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.</p> <p>So, firstly, how does one characterise this game?</p> <p>It has strong elements of a Role Playing Game, as currently understood; some elements of a Simulation Game; some elements of a God Game. But what I see it as is fundamentally a sandbox in which the player(s) can explore ideas about human conflicts and how to resolve them, without immediate real-world consequences. It’s also a sandbox in which story tellers can tell stories, but that’s essentially a side-effect - a consequence of the fact that I need to be able to use it to tell stories, in order to create initial threads of narrative from which players can start their exploration.</p> -<p>Note that, by ‘conflict’, here, I explicitly do not mean ‘killing people’, or even ‘killing non-player characters’. I have <a href="https://blog.journeyman.cc/2015/02/voice-acting-considered-harmful.html">written extensively</a> about the problem in many current video games that all too often the only way of interacting with non-player characters is to kill them. Killing people should be one of the potential ways of resolving conflicts, because that is reality, but negotiation must be another.</p> +<p>Note that, by ‘conflict’, here, I explicitly do not mean ‘killing people’, or even ‘killing non-player characters’. I have <a href="Voice-acting-considered-harmful.html">written extensively</a> about the problem in many current video games that all too often the only way of interacting with non-player characters is to kill them. Killing people should be one of the potential ways of resolving conflicts, because that is reality, but negotiation must be another.</p> <p>So this is a game in which rich interaction with non-player characters is possible. The NPCs have individual knowledge and individual agency: they have intentions, aspirations and desires. They also have a wide dynamic repertoire of speech.</p> <h2><a href="#previous-essays-that-are-relevant" name="previous-essays-that-are-relevant"></a>Previous essays that are relevant</h2> <ul> - <li><a href="https://blog.journeyman.cc/2008/04/the-spread-of-knowledge-in-large-game.html">The spread of knowledge in a large game world</a> (2008) discusses what individual non-player characters know, and how to model dynamic updates to their knowledge;</li> + <li><a href="The-spread-of-knowledge-in-a-large-game-world.html">The spread of knowledge in a large game world</a> (2008) discusses what individual non-player characters know, and how to model dynamic updates to their knowledge;</li> <li><a href="https://blog.journeyman.cc/2009/12/settling-game-world.html">Settling a game world</a> (2009) gives rough outline of ideas about creating the environment, including modelling things like soil fertility, local building materials, and consequently local architecture;</li> <li><a href="https://blog.journeyman.cc/2013/07/tessellated-multi-layer-height-map.html">Tessellated multi-layer height map</a> (2013) gives ideas for how a designed geography for a very large world could be stored relatively economically;</li> <li><a href="https://blog.journeyman.cc/2013/07/genetic-buildings.html">Genetic Buildings</a> (2013) sketches algorithms which would allow procedurally-generated buildings to be site-appropriate, broadly variable and reproducable;</li> - <li><a href="https://blog.journeyman.cc/2013/07/populating-game-world.html">Populating a game world</a> (2013) provides outline algorithms for how a world can be populated, and how organic mixes of trades and crafts can be modelled;</li> + <li><a href="Populating-a-game-world.html">Populating a game world</a> (2013) provides outline algorithms for how a world can be populated, and how organic mixes of trades and crafts can be modelled;</li> <li><a href="https://blog.journeyman.cc/2013/07/modelling-change-from-rural-to-urban.html">Modelling the change from rural to urban</a> (2013) describes the idea of procedurally modelling settlements, but it is grid-based and not particularly satisfactory and has largely been superceded in my thinking;</li> - <li><a href="">Of pigeons, and long distance messaging in a game world</a> (2013) builds on ideas about flows of information;</li> + <li><a href="https://blog.journeyman.cc/2013/10/of-pigeons-and-long-distance-messaging.html">Of pigeons, and long distance messaging in a game world</a> (2013) builds on ideas about flows of information;</li> <li><a href="https://blog.journeyman.cc/2013/10/modelling-rural-to-urban-take-two.html">Modelling rural to urban, take two</a> (2013) revisited the idea of modelling organic settlement structures, trying to find algorithms which would naturally produce more persuasive settlement models, including further ideas on the procedural generation of buildings;</li> <li><a href="https://blog.journeyman.cc/2014/09/more-on-modelling-rivers.html">More on modelling rivers</a> (2014) talks about modelling hydrology, with implications for soil fertility;</li> <li><a href="https://blog.journeyman.cc/2014/08/modelling-settlement-with-cellular.html">Modelling settlement with cellular automata</a> (2014) talks about successful implementation of algorithms to model vegetative environment, human settlement and the impact of human settlement on the environment;</li> <li><a href="https://blog.journeyman.cc/2015/02/voice-acting-considered-harmful.html">Voice acting considered harmful</a> (2015) outlines the ideas behind full speech interaction with non-player characters, and modelling what those non-player characters should be able to speak about;</li> - <li><a href="https://blog.journeyman.cc/2019/05/baking-world.html">Baking the world</a> (2019) an outline of the overall process of creating a world.</li> + <li><a href="Baking-the-world.html">Baking the world</a> (2019) an outline of the overall process of creating a world.</li> </ul> <h2><a href="#organic-and-emergent-game-play" name="organic-and-emergent-game-play"></a>Organic and emergent game-play</h2> <p>If a world is <a href="https://blog.journeyman.cc/2014/08/modelling-settlement-with-cellular.html">dynamically populated</a>, with <a href="https://blog.journeyman.cc/2013/07/populating-game-world.html">dynamic allocation of livelihoods</a> then several aspects of gameplay will emerge organically. First, of course, is just exploring; in a dynamically changing world there will always be more to explore, and it will be different in each restart of the game.</p> @@ -69,7 +69,7 @@ <li><strong>Conqueror</strong>: how many total vassales, recursively, has this agent?</li> <li><strong>Citizen</strong>: really, really tricky. Probably what is the average esteem for this agent among all agents within a specified radius? - although this will score more highly for agents who have taken part in notable events, and what I’m really thinking of for my ideal ‘good citizen’ is someone who really hasn’t.</li> </ol> -<p>So each agent is assigned - by the dreaded random number generator - one top level goal when they are instantiated. I don’t think it’s necessary to model change of top level goals, although of course that does happen in real life; however, although each agent has one top level goal, they will have lower l evel ‘stretch goals’ also taken from this list: so at each decision point in an agent’s planning loop, if base level needs are satisfied and progress on the top level goal is blocked, actions should be chosen which progress one of the lower goals. Indeed, it’s possible that all agents could have all goals, but randomly ordered.</p> +<p>So each agent is assigned - by the dreaded random number generator - one top level goal when they are instantiated. I don’t think it’s necessary to model change of top level goals, although of course that does happen in real life; however, although each agent has one top level goal, they will have lower level ‘stretch goals’ also taken from this list: so at each decision point in an agent’s planning loop, if base level needs are satisfied and progress on the top level goal is blocked, actions should be chosen which progress one of the lower goals. Indeed, it’s possible that all agents could have all goals, but randomly ordered.</p> <p>At the lowest level there are immediate needs goals every agent must satisfy: food for tonight, a safe place to stay tonight, food for next year, a safe place to stay next year.</p> <h3><a href="#on-screen-and-off-screen" name="on-screen-and-off-screen"></a>On screen and off screen</h3> <p>If we’re going to have a very large world with a very large number of characters (as an order of magnitude number, say 100,000), then obviously we cannot plan in detail every time each character lifts a cup to their lips to drink. When a character is on screen we must represent small actions, and at some level these must be planned for. But when they’re off screen, that’s just wasted computation. The only actions we need to plan are life altering actions, such as:</p> @@ -125,4 +125,4 @@ <p>Generally, if a merchant buys goods in an ariston’s market, or sells goods in the ariston’s market, then the economy benefits and the ariston benefits from that; so the ‘tax’ element is part of the market markup. But if a caravan passes through an ariston’s territory without stopping at a market, there’s probably a tax of about 5% of value.</p> <p>Generally, an ariston’s army will control outlawry within the ariston’s domain, so outlaw encounters within a domain are unlikely. Soldiers could be able seek bribes, but that would bring a strongly negative impact on favour and I’m not sure it’s work modelling.</p> <h2><a href="#other-habitual-travellers-gossipers" name="other-habitual-travellers-gossipers"></a>Other habitual travellers: gossipers</h2> -<p>Apart from merchants, the habitual travellers are diplomats (who, in the craft tree, are similar to chancellors) and minstrels (who aren’t on the craft tree but should be); and vagrants. However, vagrants almost certainly don’t have positive favour, so aren’t likely to be useful gossip agents. Each game day, every habitual traveller within the ‘local’ gossip bubble exchanges some items of gossip with the nearest innkeeper to their current location. In the second and third gossip bubbles, it’s probably only more favoured gossip agents who do this. See <a href="https://blog.journeyman.cc/2008/04/the-spread-of-knowledge-in-large-game.html">The spread of knowledge in a large game world</a></p></div></div></div></body></html> \ No newline at end of file +<p>Apart from merchants, the habitual travellers are diplomats (who, in the craft tree, are similar to chancellors) and minstrels (who aren’t on the craft tree but should be); and vagrants. However, vagrants almost certainly don’t have positive favour, so aren’t likely to be useful gossip agents. Each game day, every habitual traveller within the ‘local’ gossip bubble exchanges some items of gossip with the nearest innkeeper to their current location. In the second and third gossip bubbles, it’s probably only more favoured gossip agents who do this. See <a href="The-spread-of-knowledge-in-a-large-game-world.html">The spread of knowledge in a large game world</a></p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/modelling_trading_cost_and_risk.html b/docs/codox/modelling_trading_cost_and_risk.html index 5292eb6..58c4b74 100644 --- a/docs/codox/modelling_trading_cost_and_risk.html +++ b/docs/codox/modelling_trading_cost_and_risk.html @@ -2,6 +2,6 @@ ""> <html><head><meta charset="UTF-8" /><title>Modelling trading cost and risk</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 current"><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#modelling-trading-cost-and-risk" name="modelling-trading-cost-and-risk"></a>Modelling trading cost and risk</h1> <p>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.</p> -<p>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 <a href="null">gossip</a> 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.</p> +<p>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 <a href="the-great-game.gossip.gossip.html">gossip</a> 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.</p> <p>So: to what extent is it worth modelling the spread of knowledge of trade cost and risk?</p> <p>Obviously the more we model, the more compute power modelling consumes. If the core objective is a Role Playing Games as currently understood, then there is no need to model very complex trade risk assessment behaviour.</p></div></div></div></body></html> \ No newline at end of file diff --git a/src/the_great_game/gossip/news_items.clj b/src/the_great_game/gossip/news_items.clj index f2572d4..faf7c45 100644 --- a/src/the_great_game/gossip/news_items.clj +++ b/src/the_great_game/gossip/news_items.clj @@ -218,22 +218,28 @@ ([gossip item follow-inferences?] (if (interesting-item? gossip item) - (let [g (assoc gossip :knowledge - (cons - (assoc - item - :nth-hand (if - (number? (:nth-hand item)) - (inc (:nth-hand item)) - 1) - :date (if (number? (:date item)) (:date item) (game-time)) - :location (degrade-location gossip (:location item)) - ;; ought to degratde the location - ;; ought to maybe-degrade characters we're not yet interested in - ) - ;; ought not to add knowledge items we already have, except - ;; to replace if new item is of increased specificity - (:knowledge gossip)))] + (let + [g (assoc + gossip + :knowledge + (cons + (assoc + item + :nth-hand (if + (number? (:nth-hand item)) + (inc (:nth-hand item)) + 1) + :time-stamp (if + (number? (:time-stamp item)) + (:time-stamp item) + (game-time)) + :location (degrade-location gossip (:location item)) + ;; ought to degratde the location + ;; ought to maybe-degrade characters we're not yet interested in + ) + ;; ought not to add knowledge items we already have, except + ;; to replace if new item is of increased specificity + (:knowledge gossip)))] (if follow-inferences? (assoc g diff --git a/test/the_great_game/gossip/news_items_test.clj b/test/the_great_game/gossip/news_items_test.clj index db5ee89..ca7788e 100644 --- a/test/the_great_game/gossip/news_items_test.clj +++ b/test/the_great_game/gossip/news_items_test.clj @@ -119,7 +119,7 @@ ;; dates will not be and cannot be expected to be equal actual (make-all-inferences {:verb :rape :actor :adam :other :belinda :location :test-home}) - actual' (set (map #(dissoc % :date) actual))] + actual' (set (map #(dissoc % :time-stamp) actual))] (is (= actual' expected))))) (deftest learn-tests @@ -130,5 +130,5 @@ actual (learn-news-item {:home [{0, 0} :test-home] :knowledge []} {:verb :sex :actor :adam :other :belinda :location [:test-home]}) - actual' (assoc actual :knowledge (vec (map #(dissoc % :date) (:knowledge actual))))] + actual' (assoc actual :knowledge (vec (map #(dissoc % :time-stamp) (:knowledge actual))))] (is (= actual' expected))))) From bc7e0f44d392e8ac7eb4ad7e6044c8181afbb511 Mon Sep 17 00:00:00 2001 From: Simon Brooke <simon@journeyman.cc> Date: Wed, 15 Apr 2020 18:46:43 +0100 Subject: [PATCH 08/12] Further work on documentation and thinking. Not all tests pass. --- doc/Baking-the-world.md | 4 +- ...read-of-knowledge-in-a-large-game-world.md | 32 +++++++++++--- doc/economy.md | 2 +- doc/intro.md | 16 +++---- doc/modelling_trading_cost_and_risk.md | 2 +- docs/codox/Baking-the-world.html | 4 +- ...ad-of-knowledge-in-a-large-game-world.html | 32 +++++++++++--- docs/codox/economy.html | 2 +- docs/codox/intro.html | 14 +++--- .../modelling_trading_cost_and_risk.html | 2 +- .../the-great-game.gossip.news-items.html | 3 +- src/the_great_game/gossip/news_items.clj | 43 ++++++++++++------- .../the_great_game/gossip/news_items_test.clj | 4 +- 13 files changed, 108 insertions(+), 52 deletions(-) diff --git a/doc/Baking-the-world.md b/doc/Baking-the-world.md index c41c6cc..a2f3739 100644 --- a/doc/Baking-the-world.md +++ b/doc/Baking-the-world.md @@ -16,7 +16,7 @@ But, before going there, to summarise the proving stage. The inputs are: -1. A raster height map (although this could be randomly generated using any one of many fractal algorithms) - this probably uses ideas from [tessellated multi-layer height map](../../2013/07/tessellated-multi-layer-height-map.html); +1. A raster height map (although this could be randomly generated using any one of many fractal algorithms) - this probably uses ideas from [tessellated multi-layer height map](https://blog.journeyman.cc/2013/07/tessellated-multi-layer-height-map.html); 1. Optionally, a raster rainfall map at 1km resolution (although my personal preference is that this should be generated procedurally from the height map). The outputs are @@ -26,7 +26,7 @@ 1. A database of settlers and their settlements, such that the settlements have x,y co-ordinates; 1. A vector road map. - In this sense, the 'biome map' is just the end state of a [Microworld](../../2014/08/modelling-settlement-with-cellular.html) run. The 'biomes' include things like 'forest', 'scrub', 'heath', 'pasture', but they may also include human settlement, and even settlement by different cultural groups. + In this sense, the 'biome map' is just the end state of a [Microworld](https://blog.journeyman.cc/2014/08/modelling-settlement-with-cellular.html) run. The 'biomes' include things like 'forest', 'scrub', 'heath', 'pasture', but they may also include human settlement, and even settlement by different cultural groups. This gives us all we need to vegetate and furnish the world. When rendering each square metre we have diff --git a/doc/The-spread-of-knowledge-in-a-large-game-world.md b/doc/The-spread-of-knowledge-in-a-large-game-world.md index 40e842b..937da44 100644 --- a/doc/The-spread-of-knowledge-in-a-large-game-world.md +++ b/doc/The-spread-of-knowledge-in-a-large-game-world.md @@ -27,24 +27,46 @@ _This version of this essay has been adapted to use the code in `the-great-game. Obviously, news is more valuable if the people involved are important or notorious: the significance of a story is probably the product of the significance of the people concerned. - So a news item becomes a tuple + So a news item becomes a map with keys similar to - `(days-old nth-hand significance action (actors))` + [:verb :actor :other :location :nth-hand :time-stamp] + + The [exact keys for each verb are specified here](the-great-game.gossip.news-items.html#var-news-topics). for example - `(54 2 10 'killed '(fred joe))` + {:verb :kill, + :actor {:id :fred :name "Fred"}, + :other {:id :joe :name "Joe"}, + :location [{45467 78613} :hanshua :plateau], + :nth-hand 3, + :time-stamp 17946463} - meaning 'I spoke to a man who'd spoken to a man who said he saw notorious fred kill well-liked joe on 54 days ago'. Obviously, the non-player character must be able to construct a natural language sentence from the tuple when speaking within the hearing of a player character, but there's no need for a non-player character to produce a natural language sentence for another non-player character to parse; instead they can just exchange tuples. + meaning 'I spoke to a man who'd spoken to a man who said he saw fred kill joe at the game time represented by the time stamp 17946463, at the coordinates {45467 78613} in Hans'hua on the Plateau'. Obviously, the non-player character must be able to construct a natural language sentence from the tuple when speaking within the hearing of a player character, but there's no need for a non-player character to produce a natural language sentence for another non-player character to parse; instead they can just exchange tuples. But if we're exchanging knowledge between agents, then agents must have a means of representing knowledge. This knowledge is an association between subjects and sets of statement, such that when the agent learns the statement - `(54 2 10 'killed '(fred joe))` + {:verb :kill, + :actor {:id :fred :name "Fred"}, + :other {:id :joe :name "Joe"}, + :location [{45467 78613} :hanshua :plateau], + :nth-hand 3, + :time-stamp 17946463} it adds this statement (with the 2 incremented to 3) to the set of statements it knows about fred and also to the set of statements it knows about joe. It's possible that the receiving agent could then challenge for further statements about fred and/or joe, the automated equivalent of a 'who's joe?' question. There could be feedback in this. Fred's and joe's significance scores could be incremented for each character to whom the statement is passed on, increasing the likeliness that fred, at least, would feature in more news stories in future. There needs also to be some means of managing how the non-player character's attitude to the subjects of the statement are affected. For example, If fred kills joe, and the character (say bill) receiving the news feels positively towards joe, then bill's attitude to fred should become sharply more hostile. If bill feels neutral about joe, then bill's attitude to fred should still become a bit more hostile, since killing people is on the whole a bad thing. But it bill feels very hostile towards joe, then bill's attitude to fred should become more friendly. +But also, the added knowledge is *degraded*. If the recipient isn't from Hans'hua, the exact location isn't meaningful to them, for example. If the recipient isn't interested in Joe, precisely who was killed may be forgotten. So what is stored could become: + + {:verb :kill, + :actor {:id :fred :name "Fred"}, + :location [:hanshua :plateau], + :nth-hand 4, + :time-stamp 17946463} + +The timestamp could also be degraded, or lost altother - although how exactly this is represnted I'm not certain. Someone interested in the incident may remember 'it was exactly 17 days ago', whereas someone else may remember that it was 'this month, I think'. + Obviously the rate of decay, and the degree of randomness, of the news-passing algorithm would need to be tuned, but this schema seems to me to describe a system with the following features: * Non-player characters can respond to questions about significant things which happen in the world - without it all having to be scripted diff --git a/doc/economy.md b/doc/economy.md index 45ed00a..15111dc 100644 --- a/doc/economy.md +++ b/doc/economy.md @@ -1,6 +1,6 @@ # Game world economy -Broadly this essay extends ideas presented in [Populating a game world](https://blog.journeyman.cc/2013/07/populating-game-world.html), q.v. +Broadly this essay extends ideas presented in [Populating a game world](Populating-a-game-world.html), q.v. ## Primary producers diff --git a/doc/intro.md b/doc/intro.md index 3c67ed7..3ae3526 100644 --- a/doc/intro.md +++ b/doc/intro.md @@ -19,7 +19,7 @@ that I need to be able to use it to tell stories, in order to create initial threads of narrative from which players can start their exploration. Note that, by 'conflict', here, I explicitly do not mean 'killing people', -or even 'killing non-player characters'. I have [written extensively](https://blog.journeyman.cc/2015/02/voice-acting-considered-harmful.html) +or even 'killing non-player characters'. I have [written extensively](Voice-acting-considered-harmful.html) about the problem in many current video games that all too often the only way of interacting with non-player characters is to kill them. Killing people should be one of the potential ways of resolving conflicts, because @@ -32,18 +32,18 @@ repertoire of speech. ## Previous essays that are relevant -* [The spread of knowledge in a large game world](https://blog.journeyman.cc/2008/04/the-spread-of-knowledge-in-large-game.html) (2008) discusses what individual non-player characters know, and how to model dynamic updates to their knowledge; +* [The spread of knowledge in a large game world](The-spread-of-knowledge-in-a-large-game-world.html) (2008) discusses what individual non-player characters know, and how to model dynamic updates to their knowledge; * [Settling a game world](https://blog.journeyman.cc/2009/12/settling-game-world.html) (2009) gives rough outline of ideas about creating the environment, including modelling things like soil fertility, local building materials, and consequently local architecture; * [Tessellated multi-layer height map](https://blog.journeyman.cc/2013/07/tessellated-multi-layer-height-map.html) (2013) gives ideas for how a designed geography for a very large world could be stored relatively economically; * [Genetic Buildings](https://blog.journeyman.cc/2013/07/genetic-buildings.html) (2013) sketches algorithms which would allow procedurally-generated buildings to be site-appropriate, broadly variable and reproducable; -* [Populating a game world](https://blog.journeyman.cc/2013/07/populating-game-world.html) (2013) provides outline algorithms for how a world can be populated, and how organic mixes of trades and crafts can be modelled; +* [Populating a game world](Populating-a-game-world.html) (2013) provides outline algorithms for how a world can be populated, and how organic mixes of trades and crafts can be modelled; * [Modelling the change from rural to urban](https://blog.journeyman.cc/2013/07/modelling-change-from-rural-to-urban.html) (2013) describes the idea of procedurally modelling settlements, but it is grid-based and not particularly satisfactory and has largely been superceded in my thinking; -* [Of pigeons, and long distance messaging in a game world]() (2013) builds on ideas about flows of information; +* [Of pigeons, and long distance messaging in a game world](https://blog.journeyman.cc/2013/10/of-pigeons-and-long-distance-messaging.html) (2013) builds on ideas about flows of information; * [Modelling rural to urban, take two](https://blog.journeyman.cc/2013/10/modelling-rural-to-urban-take-two.html) (2013) revisited the idea of modelling organic settlement structures, trying to find algorithms which would naturally produce more persuasive settlement models, including further ideas on the procedural generation of buildings; * [More on modelling rivers](https://blog.journeyman.cc/2014/09/more-on-modelling-rivers.html) (2014) talks about modelling hydrology, with implications for soil fertility; * [Modelling settlement with cellular automata](https://blog.journeyman.cc/2014/08/modelling-settlement-with-cellular.html) (2014) talks about successful implementation of algorithms to model vegetative environment, human settlement and the impact of human settlement on the environment; * [Voice acting considered harmful](https://blog.journeyman.cc/2015/02/voice-acting-considered-harmful.html) (2015) outlines the ideas behind full speech interaction with non-player characters, and modelling what those non-player characters should be able to speak about; -* [Baking the world](https://blog.journeyman.cc/2019/05/baking-world.html) (2019) an outline of the overall process of creating a world. +* [Baking the world](Baking-the-world.html) (2019) an outline of the overall process of creating a world. ## Organic and emergent game-play @@ -183,8 +183,8 @@ easy: So each agent is assigned - by the dreaded random number generator - one top level goal when they are instantiated. I don't think it's necessary to model change of top level goals, although of course that does happen in real life; -however, although each agent has one top level goal, they will have lower l -evel 'stretch goals' also taken from this list: so at each decision point in +however, although each agent has one top level goal, they will have lower +level 'stretch goals' also taken from this list: so at each decision point in an agent's planning loop, if base level needs are satisfied and progress on the top level goal is blocked, actions should be chosen which progress one of the lower goals. Indeed, it's possible that all agents could have all @@ -379,4 +379,4 @@ Each game day, every habitual traveller within the 'local' gossip bubble exchanges some items of gossip with the nearest innkeeper to their current location. In the second and third gossip bubbles, it's probably only more favoured gossip agents who do this. See -[The spread of knowledge in a large game world](https://blog.journeyman.cc/2008/04/the-spread-of-knowledge-in-large-game.html) +[The spread of knowledge in a large game world](The-spread-of-knowledge-in-a-large-game-world.html) diff --git a/doc/modelling_trading_cost_and_risk.md b/doc/modelling_trading_cost_and_risk.md index 3574d5b..78ae9dd 100644 --- a/doc/modelling_trading_cost_and_risk.md +++ b/doc/modelling_trading_cost_and_risk.md @@ -2,7 +2,7 @@ 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. +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](the-great-game.gossip.gossip.html) 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/Baking-the-world.html b/docs/codox/Baking-the-world.html index 5924b7f..c588bd8 100644 --- a/docs/codox/Baking-the-world.html +++ b/docs/codox/Baking-the-world.html @@ -10,7 +10,7 @@ <p>Then, when the landscape has developed - the areas of forest, scrub, open meadow, moorland, savanah and desert are determined, the rivers plotted, the settlers moved in, their trades determined and their settlements allocated, the roadways which link settlements routed, river crossings and ports defined - the proving process ends, and the world is turned over to the plot-writers, quest builders and designers, for a process we can see as analogous to kneading.</p> <p>But, before going there, to summarise the proving stage. The inputs are:</p> <ol> - <li>A raster height map (although this could be randomly generated using any one of many fractal algorithms) - this probably uses ideas from <a href="../../2013/07/tessellated-multi-layer-height-map.html">tessellated multi-layer height map</a>;</li> + <li>A raster height map (although this could be randomly generated using any one of many fractal algorithms) - this probably uses ideas from <a href="https://blog.journeyman.cc/2013/07/tessellated-multi-layer-height-map.html">tessellated multi-layer height map</a>;</li> <li>Optionally, a raster rainfall map at 1km resolution (although my personal preference is that this should be generated procedurally from the height map).</li> </ol> <p>The outputs are</p> @@ -20,7 +20,7 @@ <li>A database of settlers and their settlements, such that the settlements have x,y co-ordinates;</li> <li>A vector road map.</li> </ol> -<p>In this sense, the ‘biome map’ is just the end state of a <a href="../../2014/08/modelling-settlement-with-cellular.html">Microworld</a> run. The ‘biomes’ include things like ‘forest’, ‘scrub’, ‘heath’, ‘pasture’, but they may also include human settlement, and even settlement by different cultural groups.</p> +<p>In this sense, the ‘biome map’ is just the end state of a <a href="https://blog.journeyman.cc/2014/08/modelling-settlement-with-cellular.html">Microworld</a> run. The ‘biomes’ include things like ‘forest’, ‘scrub’, ‘heath’, ‘pasture’, but they may also include human settlement, and even settlement by different cultural groups.</p> <p>This gives us all we need to vegetate and furnish the world. When rendering each square metre we have</p> <ol> <li>The x,y coordinates, obviously;</li> 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 df5c42d..9dd26f5 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 @@ -18,15 +18,37 @@ <li>Plot events, flagged as events by the game designer</li> </ul> <p>Obviously, news is more valuable if the people involved are important or notorious: the significance of a story is probably the product of the significance of the people concerned.</p> -<p>So a news item becomes a tuple</p> -<p><code>(days-old nth-hand significance action (actors))</code></p> +<p>So a news item becomes a map with keys similar to</p> +<pre><code>[:verb :actor :other :location :nth-hand :time-stamp] +</code></pre> +<p>The <a href="the-great-game.gossip.news-items.html#var-news-topics">exact keys for each verb are specified here</a>.</p> <p>for example</p> -<p><code>(54 2 10 'killed '(fred joe))</code></p> -<p>meaning ‘I spoke to a man who’d spoken to a man who said he saw notorious fred kill well-liked joe on 54 days ago’. Obviously, the non-player character must be able to construct a natural language sentence from the tuple when speaking within the hearing of a player character, but there’s no need for a non-player character to produce a natural language sentence for another non-player character to parse; instead they can just exchange tuples.</p> +<pre><code> {:verb :kill, + :actor {:id :fred :name "Fred"}, + :other {:id :joe :name "Joe"}, + :location [{45467 78613} :hanshua :plateau], + :nth-hand 3, + :time-stamp 17946463} +</code></pre> +<p>meaning ‘I spoke to a man who’d spoken to a man who said he saw fred kill joe at the game time represented by the time stamp 17946463, at the coordinates {45467 78613} in Hans’hua on the Plateau’. Obviously, the non-player character must be able to construct a natural language sentence from the tuple when speaking within the hearing of a player character, but there’s no need for a non-player character to produce a natural language sentence for another non-player character to parse; instead they can just exchange tuples.</p> <p>But if we’re exchanging knowledge between agents, then agents must have a means of representing knowledge. This knowledge is an association between subjects and sets of statement, such that when the agent learns the statement</p> -<p><code>(54 2 10 'killed '(fred joe))</code></p> +<pre><code> {:verb :kill, + :actor {:id :fred :name "Fred"}, + :other {:id :joe :name "Joe"}, + :location [{45467 78613} :hanshua :plateau], + :nth-hand 3, + :time-stamp 17946463} +</code></pre> <p>it adds this statement (with the 2 incremented to 3) to the set of statements it knows about fred and also to the set of statements it knows about joe. It’s possible that the receiving agent could then challenge for further statements about fred and/or joe, the automated equivalent of a ‘who’s joe?’ question.</p> <p>There could be feedback in this. Fred’s and joe’s significance scores could be incremented for each character to whom the statement is passed on, increasing the likeliness that fred, at least, would feature in more news stories in future. There needs also to be some means of managing how the non-player character’s attitude to the subjects of the statement are affected. For example, If fred kills joe, and the character (say bill) receiving the news feels positively towards joe, then bill’s attitude to fred should become sharply more hostile. If bill feels neutral about joe, then bill’s attitude to fred should still become a bit more hostile, since killing people is on the whole a bad thing. But it bill feels very hostile towards joe, then bill’s attitude to fred should become more friendly.</p> +<p>But also, the added knowledge is <em>degraded</em>. If the recipient isn’t from Hans’hua, the exact location isn’t meaningful to them, for example. If the recipient isn’t interested in Joe, precisely who was killed may be forgotten. So what is stored could become:</p> +<pre><code> {:verb :kill, + :actor {:id :fred :name "Fred"}, + :location [:hanshua :plateau], + :nth-hand 4, + :time-stamp 17946463} +</code></pre> +<p>The timestamp could also be degraded, or lost altother - although how exactly this is represnted I’m not certain. Someone interested in the incident may remember ‘it was exactly 17 days ago’, whereas someone else may remember that it was ‘this month, I think’.</p> <p>Obviously the rate of decay, and the degree of randomness, of the news-passing algorithm would need to be tuned, but this schema seems to me to describe a system with the following features:</p> <ul> <li>Non-player characters can respond to questions about significant things which happen in the world - without it all having to be scripted</li> diff --git a/docs/codox/economy.html b/docs/codox/economy.html index d81537f..b5c7ecb 100644 --- a/docs/codox/economy.html +++ b/docs/codox/economy.html @@ -1,7 +1,7 @@ <!DOCTYPE html PUBLIC "" ""> <html><head><meta charset="UTF-8" /><title>Game world economy</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 current"><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#game-world-economy" name="game-world-economy"></a>Game world economy</h1> -<p>Broadly this essay extends ideas presented in <a href="https://blog.journeyman.cc/2013/07/populating-game-world.html">Populating a game world</a>, q.v.</p> +<p>Broadly this essay extends ideas presented in <a href="Populating-a-game-world.html">Populating a game world</a>, q.v.</p> <h2><a href="#primary-producers" name="primary-producers"></a>Primary producers</h2> <h3><a href="#herdsfolk" name="herdsfolk"></a>Herdsfolk</h3> <p>Herdsfolk are nomadic; it’s reasonable to think they’ll bring their herds to market, rather than selling it lots of tiny markets. So in the spring, shepherds will visit specific towns at the edge of open land, to hold a shearing festival/carnevale; and that both shepherds and cattle herders will visit towns on the edge of open land to sell fatstock in the autumn.</p> diff --git a/docs/codox/intro.html b/docs/codox/intro.html index d16ad24..ebeff11 100644 --- a/docs/codox/intro.html +++ b/docs/codox/intro.html @@ -5,22 +5,22 @@ <p>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.</p> <p>So, firstly, how does one characterise this game?</p> <p>It has strong elements of a Role Playing Game, as currently understood; some elements of a Simulation Game; some elements of a God Game. But what I see it as is fundamentally a sandbox in which the player(s) can explore ideas about human conflicts and how to resolve them, without immediate real-world consequences. It’s also a sandbox in which story tellers can tell stories, but that’s essentially a side-effect - a consequence of the fact that I need to be able to use it to tell stories, in order to create initial threads of narrative from which players can start their exploration.</p> -<p>Note that, by ‘conflict’, here, I explicitly do not mean ‘killing people’, or even ‘killing non-player characters’. I have <a href="https://blog.journeyman.cc/2015/02/voice-acting-considered-harmful.html">written extensively</a> about the problem in many current video games that all too often the only way of interacting with non-player characters is to kill them. Killing people should be one of the potential ways of resolving conflicts, because that is reality, but negotiation must be another.</p> +<p>Note that, by ‘conflict’, here, I explicitly do not mean ‘killing people’, or even ‘killing non-player characters’. I have <a href="Voice-acting-considered-harmful.html">written extensively</a> about the problem in many current video games that all too often the only way of interacting with non-player characters is to kill them. Killing people should be one of the potential ways of resolving conflicts, because that is reality, but negotiation must be another.</p> <p>So this is a game in which rich interaction with non-player characters is possible. The NPCs have individual knowledge and individual agency: they have intentions, aspirations and desires. They also have a wide dynamic repertoire of speech.</p> <h2><a href="#previous-essays-that-are-relevant" name="previous-essays-that-are-relevant"></a>Previous essays that are relevant</h2> <ul> - <li><a href="https://blog.journeyman.cc/2008/04/the-spread-of-knowledge-in-large-game.html">The spread of knowledge in a large game world</a> (2008) discusses what individual non-player characters know, and how to model dynamic updates to their knowledge;</li> + <li><a href="The-spread-of-knowledge-in-a-large-game-world.html">The spread of knowledge in a large game world</a> (2008) discusses what individual non-player characters know, and how to model dynamic updates to their knowledge;</li> <li><a href="https://blog.journeyman.cc/2009/12/settling-game-world.html">Settling a game world</a> (2009) gives rough outline of ideas about creating the environment, including modelling things like soil fertility, local building materials, and consequently local architecture;</li> <li><a href="https://blog.journeyman.cc/2013/07/tessellated-multi-layer-height-map.html">Tessellated multi-layer height map</a> (2013) gives ideas for how a designed geography for a very large world could be stored relatively economically;</li> <li><a href="https://blog.journeyman.cc/2013/07/genetic-buildings.html">Genetic Buildings</a> (2013) sketches algorithms which would allow procedurally-generated buildings to be site-appropriate, broadly variable and reproducable;</li> - <li><a href="https://blog.journeyman.cc/2013/07/populating-game-world.html">Populating a game world</a> (2013) provides outline algorithms for how a world can be populated, and how organic mixes of trades and crafts can be modelled;</li> + <li><a href="Populating-a-game-world.html">Populating a game world</a> (2013) provides outline algorithms for how a world can be populated, and how organic mixes of trades and crafts can be modelled;</li> <li><a href="https://blog.journeyman.cc/2013/07/modelling-change-from-rural-to-urban.html">Modelling the change from rural to urban</a> (2013) describes the idea of procedurally modelling settlements, but it is grid-based and not particularly satisfactory and has largely been superceded in my thinking;</li> - <li><a href="">Of pigeons, and long distance messaging in a game world</a> (2013) builds on ideas about flows of information;</li> + <li><a href="https://blog.journeyman.cc/2013/10/of-pigeons-and-long-distance-messaging.html">Of pigeons, and long distance messaging in a game world</a> (2013) builds on ideas about flows of information;</li> <li><a href="https://blog.journeyman.cc/2013/10/modelling-rural-to-urban-take-two.html">Modelling rural to urban, take two</a> (2013) revisited the idea of modelling organic settlement structures, trying to find algorithms which would naturally produce more persuasive settlement models, including further ideas on the procedural generation of buildings;</li> <li><a href="https://blog.journeyman.cc/2014/09/more-on-modelling-rivers.html">More on modelling rivers</a> (2014) talks about modelling hydrology, with implications for soil fertility;</li> <li><a href="https://blog.journeyman.cc/2014/08/modelling-settlement-with-cellular.html">Modelling settlement with cellular automata</a> (2014) talks about successful implementation of algorithms to model vegetative environment, human settlement and the impact of human settlement on the environment;</li> <li><a href="https://blog.journeyman.cc/2015/02/voice-acting-considered-harmful.html">Voice acting considered harmful</a> (2015) outlines the ideas behind full speech interaction with non-player characters, and modelling what those non-player characters should be able to speak about;</li> - <li><a href="https://blog.journeyman.cc/2019/05/baking-world.html">Baking the world</a> (2019) an outline of the overall process of creating a world.</li> + <li><a href="Baking-the-world.html">Baking the world</a> (2019) an outline of the overall process of creating a world.</li> </ul> <h2><a href="#organic-and-emergent-game-play" name="organic-and-emergent-game-play"></a>Organic and emergent game-play</h2> <p>If a world is <a href="https://blog.journeyman.cc/2014/08/modelling-settlement-with-cellular.html">dynamically populated</a>, with <a href="https://blog.journeyman.cc/2013/07/populating-game-world.html">dynamic allocation of livelihoods</a> then several aspects of gameplay will emerge organically. First, of course, is just exploring; in a dynamically changing world there will always be more to explore, and it will be different in each restart of the game.</p> @@ -69,7 +69,7 @@ <li><strong>Conqueror</strong>: how many total vassales, recursively, has this agent?</li> <li><strong>Citizen</strong>: really, really tricky. Probably what is the average esteem for this agent among all agents within a specified radius? - although this will score more highly for agents who have taken part in notable events, and what I’m really thinking of for my ideal ‘good citizen’ is someone who really hasn’t.</li> </ol> -<p>So each agent is assigned - by the dreaded random number generator - one top level goal when they are instantiated. I don’t think it’s necessary to model change of top level goals, although of course that does happen in real life; however, although each agent has one top level goal, they will have lower l evel ‘stretch goals’ also taken from this list: so at each decision point in an agent’s planning loop, if base level needs are satisfied and progress on the top level goal is blocked, actions should be chosen which progress one of the lower goals. Indeed, it’s possible that all agents could have all goals, but randomly ordered.</p> +<p>So each agent is assigned - by the dreaded random number generator - one top level goal when they are instantiated. I don’t think it’s necessary to model change of top level goals, although of course that does happen in real life; however, although each agent has one top level goal, they will have lower level ‘stretch goals’ also taken from this list: so at each decision point in an agent’s planning loop, if base level needs are satisfied and progress on the top level goal is blocked, actions should be chosen which progress one of the lower goals. Indeed, it’s possible that all agents could have all goals, but randomly ordered.</p> <p>At the lowest level there are immediate needs goals every agent must satisfy: food for tonight, a safe place to stay tonight, food for next year, a safe place to stay next year.</p> <h3><a href="#on-screen-and-off-screen" name="on-screen-and-off-screen"></a>On screen and off screen</h3> <p>If we’re going to have a very large world with a very large number of characters (as an order of magnitude number, say 100,000), then obviously we cannot plan in detail every time each character lifts a cup to their lips to drink. When a character is on screen we must represent small actions, and at some level these must be planned for. But when they’re off screen, that’s just wasted computation. The only actions we need to plan are life altering actions, such as:</p> @@ -125,4 +125,4 @@ <p>Generally, if a merchant buys goods in an ariston’s market, or sells goods in the ariston’s market, then the economy benefits and the ariston benefits from that; so the ‘tax’ element is part of the market markup. But if a caravan passes through an ariston’s territory without stopping at a market, there’s probably a tax of about 5% of value.</p> <p>Generally, an ariston’s army will control outlawry within the ariston’s domain, so outlaw encounters within a domain are unlikely. Soldiers could be able seek bribes, but that would bring a strongly negative impact on favour and I’m not sure it’s work modelling.</p> <h2><a href="#other-habitual-travellers-gossipers" name="other-habitual-travellers-gossipers"></a>Other habitual travellers: gossipers</h2> -<p>Apart from merchants, the habitual travellers are diplomats (who, in the craft tree, are similar to chancellors) and minstrels (who aren’t on the craft tree but should be); and vagrants. However, vagrants almost certainly don’t have positive favour, so aren’t likely to be useful gossip agents. Each game day, every habitual traveller within the ‘local’ gossip bubble exchanges some items of gossip with the nearest innkeeper to their current location. In the second and third gossip bubbles, it’s probably only more favoured gossip agents who do this. See <a href="https://blog.journeyman.cc/2008/04/the-spread-of-knowledge-in-large-game.html">The spread of knowledge in a large game world</a></p></div></div></div></body></html> \ No newline at end of file +<p>Apart from merchants, the habitual travellers are diplomats (who, in the craft tree, are similar to chancellors) and minstrels (who aren’t on the craft tree but should be); and vagrants. However, vagrants almost certainly don’t have positive favour, so aren’t likely to be useful gossip agents. Each game day, every habitual traveller within the ‘local’ gossip bubble exchanges some items of gossip with the nearest innkeeper to their current location. In the second and third gossip bubbles, it’s probably only more favoured gossip agents who do this. See <a href="The-spread-of-knowledge-in-a-large-game-world.html">The spread of knowledge in a large game world</a></p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/modelling_trading_cost_and_risk.html b/docs/codox/modelling_trading_cost_and_risk.html index 5292eb6..58c4b74 100644 --- a/docs/codox/modelling_trading_cost_and_risk.html +++ b/docs/codox/modelling_trading_cost_and_risk.html @@ -2,6 +2,6 @@ ""> <html><head><meta charset="UTF-8" /><title>Modelling trading cost and risk</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 current"><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#modelling-trading-cost-and-risk" name="modelling-trading-cost-and-risk"></a>Modelling trading cost and risk</h1> <p>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.</p> -<p>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 <a href="null">gossip</a> 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.</p> +<p>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 <a href="the-great-game.gossip.gossip.html">gossip</a> 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.</p> <p>So: to what extent is it worth modelling the spread of knowledge of trade cost and risk?</p> <p>Obviously the more we model, the more compute power modelling consumes. If the core objective is a Role Playing Games as currently understood, then there is no need to model very complex trade risk assessment behaviour.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.gossip.news-items.html b/docs/codox/the-great-game.gossip.news-items.html index 64f1d4c..c2e6806 100644 --- a/docs/codox/the-great-game.gossip.news-items.html +++ b/docs/codox/the-great-game.gossip.news-items.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.news-items documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3 current"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-character"><div class="inner"><span>degrade-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-location"><div class="inner"><span>degrade-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-infer"><div class="inner"><span>infer</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-character"><div class="inner"><span>interest-in-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-location"><div class="inner"><span>interest-in-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-character.3F"><div class="inner"><span>interesting-character?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-item.3F"><div class="inner"><span>interesting-item?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-location.3F"><div class="inner"><span>interesting-location?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-object.3F"><div class="inner"><span>interesting-object?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F"><div class="inner"><span>interesting-topic?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-learn-news-item"><div class="inner"><span>learn-news-item</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-make-all-inferences"><div class="inner"><span>make-all-inferences</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-news-topics"><div class="inner"><span>news-topics</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.news-items</h1><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="public anchor" id="var-degrade-character"><h3>degrade-character</h3><div class="usage"><code>(degrade-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Return a character specification like this <code>character</code>, but comprising only those properties this <code>gossip</code> is interested in.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L193">view source</a></div></div><div class="public anchor" id="var-degrade-location"><h3>degrade-location</h3><div class="usage"><code>(degrade-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Return a location specification like this <code>location</code>, but comprising only those elements this <code>gossip</code> is interested in. If none, return <code>nil</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L200">view source</a></div></div><div class="public anchor" id="var-infer"><h3>infer</h3><div class="usage"><code>(infer item rule)</code></div><div class="doc"><div class="markdown"><p>Infer a new knowledge item from this <code>item</code>, following this <code>rule</code></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L168">view source</a></div></div><div class="public anchor" id="var-interest-in-character"><h3>interest-in-character</h3><div class="usage"><code>(interest-in-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>character</code> is to this <code>gossip</code>. <em>TODO:</em> this assumes that characters are passed as keywords, but, as documented above, they probably have to be maps, to allow for degradation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L99">view source</a></div></div><div class="public anchor" id="var-interest-in-location"><h3>interest-in-location</h3><div class="usage"><code>(interest-in-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>location</code> is to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L116">view source</a></div></div><div class="public anchor" id="var-interesting-character.3F"><h3>interesting-character?</h3><div class="usage"><code>(interesting-character? gossip character)</code></div><div class="doc"><div class="markdown"><p>Boolean representation of whether this <code>character</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L110">view source</a></div></div><div class="public anchor" id="var-interesting-item.3F"><h3>interesting-item?</h3><div class="usage"><code>(interesting-item? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if anything about this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L158">view source</a></div></div><div class="public anchor" id="var-interesting-location.3F"><h3>interesting-location?</h3><div class="usage"><code>(interesting-location? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if the location of this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L143">view source</a></div></div><div class="public anchor" id="var-interesting-object.3F"><h3>interesting-object?</h3><div class="usage"><code>(interesting-object? gossip object)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L148">view source</a></div></div><div class="public anchor" id="var-interesting-topic.3F"><h3>interesting-topic?</h3><div class="usage"><code>(interesting-topic? gossip topic)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L153">view source</a></div></div><div class="public anchor" id="var-learn-news-item"><h3>learn-news-item</h3><div class="usage"><code>(learn-news-item gossip item)</code><code>(learn-news-item gossip item follow-inferences?)</code></div><div class="doc"><div class="markdown"><p>Return a gossip like this <code>gossip</code>, which has learned this news <code>item</code> if it is of interest to them.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L212">view source</a></div></div><div class="public anchor" id="var-make-all-inferences"><h3>make-all-inferences</h3><div class="usage"><code>(make-all-inferences item)</code></div><div class="doc"><div class="markdown"><p>Return a list of knowledge entries inferred from this news <code>item</code> by this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L182">view source</a></div></div><div class="public anchor" id="var-news-topics"><h3>news-topics</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Topics of interest to gossip agents. Topics are keyed in this map by their <code>verbs</code>. The <code>keys</code> associated with each topic are the extra pieces of information required to give context to a gossip item. Generally:</p> +<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.news-items documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3 current"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-character"><div class="inner"><span>degrade-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-location"><div class="inner"><span>degrade-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-infer"><div class="inner"><span>infer</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-character"><div class="inner"><span>interest-in-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-location"><div class="inner"><span>interest-in-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-character.3F"><div class="inner"><span>interesting-character?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-item.3F"><div class="inner"><span>interesting-item?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-location.3F"><div class="inner"><span>interesting-location?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-object.3F"><div class="inner"><span>interesting-object?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F"><div class="inner"><span>interesting-topic?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-learn-news-item"><div class="inner"><span>learn-news-item</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-make-all-inferences"><div class="inner"><span>make-all-inferences</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-news-topics"><div class="inner"><span>news-topics</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.news-items</h1><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="public anchor" id="var-degrade-character"><h3>degrade-character</h3><div class="usage"><code>(degrade-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Return a character specification like this <code>character</code>, but comprising only those properties this <code>gossip</code> is interested in.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L198">view source</a></div></div><div class="public anchor" id="var-degrade-location"><h3>degrade-location</h3><div class="usage"><code>(degrade-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Return a location specification like this <code>location</code>, but comprising only those elements this <code>gossip</code> is interested in. If none, return <code>nil</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L205">view source</a></div></div><div class="public anchor" id="var-infer"><h3>infer</h3><div class="usage"><code>(infer item rule)</code></div><div class="doc"><div class="markdown"><p>Infer a new knowledge item from this <code>item</code>, following this <code>rule</code></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L173">view source</a></div></div><div class="public anchor" id="var-interest-in-character"><h3>interest-in-character</h3><div class="usage"><code>(interest-in-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>character</code> is to this <code>gossip</code>. <em>TODO:</em> this assumes that characters are passed as keywords, but, as documented above, they probably have to be maps, to allow for degradation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L104">view source</a></div></div><div class="public anchor" id="var-interest-in-location"><h3>interest-in-location</h3><div class="usage"><code>(interest-in-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>location</code> is to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L121">view source</a></div></div><div class="public anchor" id="var-interesting-character.3F"><h3>interesting-character?</h3><div class="usage"><code>(interesting-character? gossip character)</code></div><div class="doc"><div class="markdown"><p>Boolean representation of whether this <code>character</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L115">view source</a></div></div><div class="public anchor" id="var-interesting-item.3F"><h3>interesting-item?</h3><div class="usage"><code>(interesting-item? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if anything about this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L163">view source</a></div></div><div class="public anchor" id="var-interesting-location.3F"><h3>interesting-location?</h3><div class="usage"><code>(interesting-location? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if the location of this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L148">view source</a></div></div><div class="public anchor" id="var-interesting-object.3F"><h3>interesting-object?</h3><div class="usage"><code>(interesting-object? gossip object)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L153">view source</a></div></div><div class="public anchor" id="var-interesting-topic.3F"><h3>interesting-topic?</h3><div class="usage"><code>(interesting-topic? gossip topic)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L158">view source</a></div></div><div class="public anchor" id="var-learn-news-item"><h3>learn-news-item</h3><div class="usage"><code>(learn-news-item gossip item)</code><code>(learn-news-item gossip item follow-inferences?)</code></div><div class="doc"><div class="markdown"><p>Return a gossip like this <code>gossip</code>, which has learned this news <code>item</code> if it is of interest to them.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L217">view source</a></div></div><div class="public anchor" id="var-make-all-inferences"><h3>make-all-inferences</h3><div class="usage"><code>(make-all-inferences item)</code></div><div class="doc"><div class="markdown"><p>Return a list of knowledge entries inferred from this news <code>item</code> by this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L187">view source</a></div></div><div class="public anchor" id="var-news-topics"><h3>news-topics</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Topics of interest to gossip agents. Topics are keyed in this map by their <code>verbs</code>. The <code>keys</code> associated with each topic are the extra pieces of information required to give context to a gossip item. Generally:</p> <ul> <li><code>actor</code> is the id of the character who it is reported performed the action;</li> <li><code>other</code> is the id of the character on whom it is reported the action was performed;</li> @@ -11,6 +11,7 @@ <h4><a href="#notes-" name="notes-"></a>Notes:</h4> <h5><a href="#characters-" name="characters-"></a>Characters:</h5> <p><em>TODO</em> but note that at most all the receiver can learn about a character from a news item is what the giver knows about that character, degraded by what the receiver finds interesting about them. If we just pass the id here, then either the receiver knows everything in the database about the character, or else the receiver knows nothing at all about the character. Neither is desirable. Further thought needed.</p> +<p>By implication, the character values passed should include ^all^ the information the giver knows about the character; that can then be degraded as the receiver stores only that segment which the receiver finds interesting.</p> <h5><a href="#locations-" name="locations-"></a>Locations:</h5> <p>A ‘location’ value is a list comprising at most the x/y coordinate location and the ids of the settlement and region (possibly hierarchically) that contain the location. If the x/y is not local to the home of the receiving agent, they won’t remember it and won’t pass it on; if any of the ids are not interesting So location information will degrade progressively as the item is passed along.</p> <p>It is assumed that the <code>:home</code> of a character is a location in this sense.</p> diff --git a/src/the_great_game/gossip/news_items.clj b/src/the_great_game/gossip/news_items.clj index f2572d4..dfe30ee 100644 --- a/src/the_great_game/gossip/news_items.clj +++ b/src/the_great_game/gossip/news_items.clj @@ -41,6 +41,11 @@ character, or else the receiver knows nothing at all about the character. Neither is desirable. Further thought needed. + By implication, the character values passed should include ^all^ the + information the giver knows about the character; that can then be degraded + as the receiver stores only that segment which the receiver finds + interesting. + ##### Locations: A 'location' value is a list comprising at most the x/y coordinate location @@ -218,22 +223,28 @@ ([gossip item follow-inferences?] (if (interesting-item? gossip item) - (let [g (assoc gossip :knowledge - (cons - (assoc - item - :nth-hand (if - (number? (:nth-hand item)) - (inc (:nth-hand item)) - 1) - :date (if (number? (:date item)) (:date item) (game-time)) - :location (degrade-location gossip (:location item)) - ;; ought to degratde the location - ;; ought to maybe-degrade characters we're not yet interested in - ) - ;; ought not to add knowledge items we already have, except - ;; to replace if new item is of increased specificity - (:knowledge gossip)))] + (let + [g (assoc + gossip + :knowledge + (cons + (assoc + item + :nth-hand (if + (number? (:nth-hand item)) + (inc (:nth-hand item)) + 1) + :time-stamp (if + (number? (:time-stamp item)) + (:time-stamp item) + (game-time)) + :location (degrade-location gossip (:location item)) + ;; ought to degratde the location + ;; ought to maybe-degrade characters we're not yet interested in + ) + ;; ought not to add knowledge items we already have, except + ;; to replace if new item is of increased specificity + (:knowledge gossip)))] (if follow-inferences? (assoc g diff --git a/test/the_great_game/gossip/news_items_test.clj b/test/the_great_game/gossip/news_items_test.clj index db5ee89..ca7788e 100644 --- a/test/the_great_game/gossip/news_items_test.clj +++ b/test/the_great_game/gossip/news_items_test.clj @@ -119,7 +119,7 @@ ;; dates will not be and cannot be expected to be equal actual (make-all-inferences {:verb :rape :actor :adam :other :belinda :location :test-home}) - actual' (set (map #(dissoc % :date) actual))] + actual' (set (map #(dissoc % :time-stamp) actual))] (is (= actual' expected))))) (deftest learn-tests @@ -130,5 +130,5 @@ actual (learn-news-item {:home [{0, 0} :test-home] :knowledge []} {:verb :sex :actor :adam :other :belinda :location [:test-home]}) - actual' (assoc actual :knowledge (vec (map #(dissoc % :date) (:knowledge actual))))] + actual' (assoc actual :knowledge (vec (map #(dissoc % :time-stamp) (:knowledge actual))))] (is (= actual' expected))))) From 66bf7ad8569d6af8b0545cbbfcb4bed1a99cc42d Mon Sep 17 00:00:00 2001 From: Simon Brooke <simon@journeyman.cc> Date: Wed, 15 Apr 2020 20:22:01 +0100 Subject: [PATCH 09/12] Trivial typo --- docs/codox/the-great-game.gossip.news-items.html | 2 +- src/the_great_game/gossip/news_items.clj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/codox/the-great-game.gossip.news-items.html b/docs/codox/the-great-game.gossip.news-items.html index c2e6806..ee90317 100644 --- a/docs/codox/the-great-game.gossip.news-items.html +++ b/docs/codox/the-great-game.gossip.news-items.html @@ -11,7 +11,7 @@ <h4><a href="#notes-" name="notes-"></a>Notes:</h4> <h5><a href="#characters-" name="characters-"></a>Characters:</h5> <p><em>TODO</em> but note that at most all the receiver can learn about a character from a news item is what the giver knows about that character, degraded by what the receiver finds interesting about them. If we just pass the id here, then either the receiver knows everything in the database about the character, or else the receiver knows nothing at all about the character. Neither is desirable. Further thought needed.</p> -<p>By implication, the character values passed should include ^all^ the information the giver knows about the character; that can then be degraded as the receiver stores only that segment which the receiver finds interesting.</p> +<p>By implication, the character values passed should include <em>all</em> the information the giver knows about the character; that can then be degraded as the receiver stores only that segment which the receiver finds interesting.</p> <h5><a href="#locations-" name="locations-"></a>Locations:</h5> <p>A ‘location’ value is a list comprising at most the x/y coordinate location and the ids of the settlement and region (possibly hierarchically) that contain the location. If the x/y is not local to the home of the receiving agent, they won’t remember it and won’t pass it on; if any of the ids are not interesting So location information will degrade progressively as the item is passed along.</p> <p>It is assumed that the <code>:home</code> of a character is a location in this sense.</p> diff --git a/src/the_great_game/gossip/news_items.clj b/src/the_great_game/gossip/news_items.clj index dfe30ee..7ebf969 100644 --- a/src/the_great_game/gossip/news_items.clj +++ b/src/the_great_game/gossip/news_items.clj @@ -41,7 +41,7 @@ character, or else the receiver knows nothing at all about the character. Neither is desirable. Further thought needed. - By implication, the character values passed should include ^all^ the + By implication, the character values passed should include *all* the information the giver knows about the character; that can then be degraded as the receiver stores only that segment which the receiver finds interesting. From efb4a9f46de53b55c88da5ff3be577dbf7e8c2b1 Mon Sep 17 00:00:00 2001 From: Simon Brooke <simon@journeyman.cc> Date: Thu, 16 Apr 2020 12:24:40 +0100 Subject: [PATCH 10/12] Minor fixes --- src/the_great_game/gossip/news_items.clj | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/the_great_game/gossip/news_items.clj b/src/the_great_game/gossip/news_items.clj index 7ebf969..2b02479 100644 --- a/src/the_great_game/gossip/news_items.clj +++ b/src/the_great_game/gossip/news_items.clj @@ -65,7 +65,7 @@ { ;; A significant attack is interesting whether or not it leads to deaths :attack {:verb :attack :keys [:actor :other :location]} ;; Deaths of characters may be interesting - :die {:verb :attack :keys [:actor :location]} + :die {:verb :die :keys [:actor :location]} ;; Deliberate killings are interesting. :kill {:verb :kill :keys [:actor :other :location] :inferences [{:verb :die :actor :other :other :nil}]} @@ -127,7 +127,7 @@ (if-let [home (:home gossip)] (let [d (distance-between location home) i (/ 10000 d) ;; 10000 at metre scale is 10km; interest should - ;;fall of with distance from home, but possibly on a log scale + ;;fall off with distance from home, but possibly on a log scale ] (if (> i 1) i 0)) 0) @@ -185,8 +185,8 @@ (declare learn-news-item) (defn make-all-inferences - "Return a list of knowledge entries inferred from this news `item` by this - `gossip`." + "Return a list of knowledge entries that can be inferred from this news + `item`." [item] (set (reduce @@ -239,10 +239,9 @@ (:time-stamp item) (game-time)) :location (degrade-location gossip (:location item)) - ;; ought to degratde the location - ;; ought to maybe-degrade characters we're not yet interested in + ;; TODO: ought to maybe-degrade characters we're not yet interested in ) - ;; ought not to add knowledge items we already have, except + ;; TODO: ought not to add knowledge items we already have, except ;; to replace if new item is of increased specificity (:knowledge gossip)))] (if follow-inferences? From 7e76600f59568c164e6c5910d967f7177a5f747d Mon Sep 17 00:00:00 2001 From: Simon Brooke <simon@journeyman.cc> Date: Fri, 19 Feb 2021 23:41:08 +0000 Subject: [PATCH 11/12] A great deal of work mainly on high level documentation --- doc/Game_Play.md | 40 ++++++++++ ...sip_scripted_plot_and_Johnny_Silverhand.md | 74 +++++++++++++++++++ doc/{orgnic-quests.md => Organic_Quests.md} | 17 ++++- doc/Simulation-layers.md | 21 ++++++ doc/Uncanny_dialogue.md | 9 +++ doc/sexual-dimorphism.md | 4 +- docs/codox/Baking-the-world.html | 2 +- docs/codox/Game_Play.html | 31 ++++++++ ...p_scripted_plot_and_Johnny_Silverhand.html | 56 ++++++++++++++ docs/codox/NewCh1.html | 13 ++++ docs/codox/Organic_Quests.html | 45 +++++++++++ docs/codox/Populating-a-game-world.html | 2 +- docs/codox/Settling-a-game-world.html | 2 +- docs/codox/Simulation-layers.html | 13 ++++ ...ad-of-knowledge-in-a-large-game-world.html | 2 +- docs/codox/Uncanny_dialogue.html | 7 ++ .../Voice-acting-considered-harmful.html | 2 +- docs/codox/economy.html | 2 +- docs/codox/index.html | 2 +- docs/codox/intro.html | 2 +- .../modelling_trading_cost_and_risk.html | 2 +- docs/codox/naming-of-characters.html | 2 +- docs/codox/on-dying.html | 2 +- docs/codox/sandbox.html | 2 +- docs/codox/sexual-dimorphism.html | 6 +- docs/codox/the-great-game.agent.agent.html | 2 +- docs/codox/the-great-game.gossip.gossip.html | 2 +- .../the-great-game.gossip.news-items.html | 2 +- .../the-great-game.merchants.markets.html | 2 +- ...e-great-game.merchants.merchant-utils.html | 2 +- .../the-great-game.merchants.merchants.html | 2 +- .../the-great-game.merchants.planning.html | 2 +- ...reat-game.merchants.strategies.simple.html | 2 +- docs/codox/the-great-game.time.html | 2 +- docs/codox/the-great-game.utils.html | 2 +- docs/codox/the-great-game.world.location.html | 2 +- docs/codox/the-great-game.world.routes.html | 2 +- docs/codox/the-great-game.world.run.html | 2 +- docs/codox/the-great-game.world.world.html | 2 +- src/the_great_game/architecture.md | 40 ++++++++++ 40 files changed, 396 insertions(+), 32 deletions(-) create mode 100644 doc/Game_Play.md create mode 100644 doc/Gossip_scripted_plot_and_Johnny_Silverhand.md rename doc/{orgnic-quests.md => Organic_Quests.md} (76%) create mode 100644 doc/Simulation-layers.md create mode 100644 doc/Uncanny_dialogue.md create mode 100644 docs/codox/Game_Play.html create mode 100644 docs/codox/Gossip_scripted_plot_and_Johnny_Silverhand.html create mode 100644 docs/codox/NewCh1.html create mode 100644 docs/codox/Organic_Quests.html create mode 100644 docs/codox/Simulation-layers.html create mode 100644 docs/codox/Uncanny_dialogue.html create mode 100644 src/the_great_game/architecture.md diff --git a/doc/Game_Play.md b/doc/Game_Play.md new file mode 100644 index 0000000..ec9b948 --- /dev/null +++ b/doc/Game_Play.md @@ -0,0 +1,40 @@ +# Game Play + +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. Superpower: the player character has some special powers or skills that other characters in the game fo not have. + +2. Special status: the player character is 'the chosen one', 'the hero', or even just 'the Witcher' from the very beginning, without having done anything to earn those titles. + +3. Boss fights: some non-player characters have special, and specially strong, combat repertoire, and block progress in the game until you overcome them. + +4. Psychokiller: completing the game necessarily involves beating many, many other characters in combat. + +5. Slaughterhouse: the main way to interact with other characters is to kill them. + +7. The Script is King: everything is scripted. The player either can't diverge from the script, or if they do, will find no interesting content. + +6. Dumb and dumber: non-player characters, even important ones, have extremely limited vocal repertoire. + +Of these, the last two, I think, are key: they are the root cause of the other problems. In fact, to take it further, the real key is the last. We talk a lot about 'Game AI', but really there's nothing remotely approaching artificial intelligence ins modern games. Non-player characters do not think; they do not learn; they do not reason; they do not know. They speak only from the script. And they speak only from the script because of the fetish for voice acting. + +## Death to Dumb-Dumb + +As I've argued [elsewhere](), [repeatedly](), we can now generate a wide variety of naturalistic speaking voices, and have them narrate text. Now of course there's great deal of information conveyed in human vocal communication in addition to the words – of which emotion is only an example, although an important one. Generating voices with the right tone, the right emphasis, for different situations may be harder than I anticipate; there may be an '[uncanny valley](Uncanny_dialogue)' in which generated speech just sounds uncomfortably off. + +But it's a trade off. For possibly less than perfect vocal performance, you get the possibility of much richer repertoire. You get not only the possibility that non-player characters can talk about the weather, or gossip about their neighbours, or give you directions to local places of interest. You get the possibility that a non-player character's attitude to you may be conditioned by the fact that they've heard that you stole from their second cousin, or that you killed an outlaw who'd raped one of their friends. + +Suddenly, they can have attitudes about things that happen in the world, opinions about major political figures in it, about their neighbours, about you the player, which are not scripted, which are emergent. When they learn new information which conflicts with something they already knew, their attitudes will change, as that new information is integrated. Intelligent behaviour will emerge. + +And with the emergence of intelligent behaviour comes the emergence of possibilities for negotiation, for diplomacy, for dynamic, unscripted, friendships and romances. Which means, there are things you can do to interact with every non-player character, even ones who are not 'plot' characters, other than just kill them. + +And as now gameplay possibilities emerge, as new stories emerge organically out of the dynamically changing relationships between non-player characters in the world, the need for scripting decreases. + +The problem with scripting is that it greatly limits player agency. The story can only have one of a few predetermined -- literally, scripted -- endings. This is clearly expressed in [a review of Red Dead Redemption 2](https://youtu.be/_JRikiQyzLA) which I recomment to you; but is equally true of almost all other games. + +Dynamic side quests have fallen into disfavour, because, when they've been tried in earlier generation games, there were too few possibilities, and they became repetitive and boring. I don't believe, with the wealth of compute resource we now have, this any longer need be the case. On the contrary, I think we can now dynamically generate a wide range of different, and differently complex, side quests. I think, in fact, that these can [emerge organically](Organic_Quests.md) from the structure of the game world. + +## Death to Psycho-Killer + +If the main way a player can interact with non-player characters is to kill them, and if the player doesn't have a systematic combat advantage over non-player characters, then it's going to be a short game. This is why players in many or most video games do start with a systematic combat advantage, and that combat advantage tends to increase over the course of the game as the player becomes more proficient with the combat system, and acquires better weapons, armour and combat buffs. This in turn means that to keep combat 'interesting', the game either has to through larger and larger armies of 'bad' non-player characters against the player – a fault seen at its worst in [Dragon Age 2](https://youtu.be/Sc8Bn8yqPYQ?t=3150). + diff --git a/doc/Gossip_scripted_plot_and_Johnny_Silverhand.md b/doc/Gossip_scripted_plot_and_Johnny_Silverhand.md new file mode 100644 index 0000000..cdb7e36 --- /dev/null +++ b/doc/Gossip_scripted_plot_and_Johnny_Silverhand.md @@ -0,0 +1,74 @@ +# 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. A decision on whether to co-operate based on the particular NPC's general demeanor and particular attitude to the player; +3. A search of the game state and lore for relevant information; +4. A filtering of the results based on what the particular NPC can be expected to know; +5. Generation of a textual response from those results based on a library of templates which defines the particular NPC's dialect and style of speech; +6. Production of audio using a [Lyrebird]{https://www.descript.com/overdub?lyrebird=true) style generated voice. + +As I've argued before, the game engine necessarily knows everything about the lore, and the current state, of the game world. It would be possible for any non-player character to answer literally any question about the game world, from who was mayor of Night City in 2020 to who lives in the apartment one floor up from yours, to what the weather is like in North Oaks just now. + +What individual characters know should, of course, be more limited. People who live in Japantown or Heywood are unlikely to know who lives in a particular apartment in Watson; only real old timers, like Rogue, are likely to remember who was mayor fifty years ago. That's the reason for filtering; but the filtering really isn't a big deal. + +Again, the generation of distinct voices for hundreds of non-player characters isn't any longer a big deal. Distinct social groups -- the corpos, and the different gangs such as Maelstrom or the Mox, will have their own argot, their own slang, their own habitual figures of speech which can be encoded into template libraries, while technologies like Lyrebird can produce an infinite range of realistic-sounding voices. + +In particular, they can mimic real voices. They can mimic the voices of real actors. They can mimic [Keanu Reeves](https://cyberpunk.fandom.com/wiki/Keanu_Reeves). + +So: how do you integrate this free form 'you can say anything to any character' style of play with scripted plot? + +Obviously, my vision -- as I've set out in [Organic Quests](Organic_Quests.md) -- is that many quests should emerge organically from modelling the lives, activities and motivations of non-player characters. But that's a radical vision and not one you can really expect many people to buy into until it has been demonstrated to work. I think that investors are still going to want to have confidence that there's something exciting in the game for players to engage with, and I think directors are still going to want to tell the stories they want to tell. + +So if I'm to sell the idea of free-form speech interaction with characters in the game world, I need an account of how it works with scripted characters voiced by high value actors in a scripted plot. I'm picking Johnny Silverhand as a core example, here, because I think he presents particular challenges. + +But I also think these challenges can be addressed very easily. + +In [Cyberpunk 2077](https://www.cyberpunk.net/), the player can't just go and find Johnny Silverhand, to speak to him. On the contrary, Johnny will just appear when the script calls for him to appear, and when he does he'll always initiate conversation. When a plot NPC initiates conversation with the player, the game could show -- as it does now -- a menu of things the player can say, with the implicit promise that selecting any one of these things will at least bring an interesting response which will expand one's knowledge of that character or of the lore. + +Just as the player does now, the player in a game with free form speech interaction could choose to say one of the things presented in the menu, and the implicit contract -- that this would lead to a new revelation, or would advance the plot -- would remain unchanged. But the player could also choose to go off script, to take the conversation in an unscripted direction, or just to end it. + +It should be said that in Cyberpunk 2077, unlike some other games, the player already has the choice to abruptly break off conversations, even with plot characters, so how the game handles breaking off the conversation does not need to change. + +How should the game handle unscripted responses in scripted dialogues? + +Well, the first and obvious thing is to parse the unscripted response to see whether it's a variant of one of the scripted responses, and if it seems that it might be, perhaps ask the player to verify that: + +> **V**: Just get on with it already. +> +> **Panam**: You mean, go to the shiv camp? +> +> **V**: Yes, dammit. + +But the second thing is to respond to the response exactly as the non-player character would if the player had initiated the conversation, using the pipeline given at the beginning of this essay. Of course, in the special case of Johnny Silverhand, he is -- at least initially -- decidedly hostile and extremely selfish, so his response will typically come at step two in the pipeline: + +> **V**: Hey, Johnny, what's the quickest way from here to Jig Jig Street? +> +> **Johnny**: What am I now, your fucking tour guide? +> +> **V**: Oh, come on, Johnny, help me out a bit here, Where's the nearest gun dealer? +> +> **Johnny**: How the fuck should I know? I haven't been here for fifty years, all I know is ancient history. + +The benefit of this interaction style is that these responses could be real acted responses by the voice actor (in this case, Keanu Reeves), which avoids the 'uncanny valley' risk that generated speech from a character the player has become used to interacting with may not sound quite natural enough. + +But, if we've used Lyrebird technology to capture and mimic Reeves' voice, and if Johnny is for some reason uncharacteristically mellow, then generated voice responses should be used. So suppose the player asks something which Johnny ought reasonably to know: + +> **V:** Hey, Johnny, what's between you and Rogue? + +That's lore. It's in at least one of the in-game 'shard' texts. The game engine knows it. A text can be generated for Johnny to respond: + +> **Johnny**: We were lovers, back in the day. + +In any of these cases, in order for the scripted plot to proceed, the non-player character can circle back to the thing they said that the player hasn't yet made an appropriate response to: + +> **Johnny**:But you didn't answer my question. *Repeats question*. + +or + +> **Johnny**: As I said before, *Repeats what he said before*. + +Again, for key plot characters, the voice actors can actually record multiple different canned texts of this form, so that, when played, they don't sound excessively repetitious. + +In short, it doesn't seem to me that it would be at all hard to integrate free form voice interaction with a modern scripted video game. The advantage is that player interaction with non-player characters would become far richer and more engaging, and consequently it would be much easier to allow the player to progress through the plot without the default outcome of every encounter having to be a blood-bath. \ No newline at end of file diff --git a/doc/orgnic-quests.md b/doc/Organic_Quests.md similarity index 76% rename from doc/orgnic-quests.md rename to doc/Organic_Quests.md index bf789b7..ae817b6 100644 --- a/doc/orgnic-quests.md +++ b/doc/Organic_Quests.md @@ -10,7 +10,18 @@ The structure of a modern Role Playing Came revolves around 'quests': tasks that 6. Syntax quests 7. Hybrids -'Gather quests' are more frequently referred to in the literature as 'fetch quests', and 'kill quests' are simply a specialised form of fetch quest where the item to be fetched is a trophy of the kill. A delivery quest is a sort of reverse fetch quest: instead of going to some location or NPC and getting a specific item to return to the quest giver, the player is tasked to take a specific item from the quest giver to some location or NPC. +'Gather quests' are more frequently referred to in the literature as 'fetch quests', and 'kill quests' are simply a specialised form of fetch quest where the item to be fetched is a trophy of the kill. And the trophy could be just the knowledge that the kill has happened. A delivery quest is a sort of reverse fetch quest: instead of going to some location or NPC and getting a specific item to return to the quest giver, the player is tasked to take a specific item from the quest giver to some location or NPC. + +Note, however, that if we consider a delivery quest to have four locations, where some of these locations may be conincident, then a delivery quest and a fetch quest become the same thing. Thus + +1. The location of the quest giver at the beginning of the quest; +2. The location from which the quest object must be collected; +3. The location to which the quest object must be delivered; +4. The location of the quest giver at the end of the quest. + +This characterisation assumes that at the end of each quest, the player must rendezvous with the quest giver at the end of the quest, either to report completion or to collect a reward. Obviously, there could be some quests where this fourth location is not required, because there is no need to report back (for example, if the quest giver was dying/has died) and no reward to be collected. + +Note that a location is not necessarily a fixed x/y location on the map; in a kill quest, for example, location 2 is the current location of the target, and moves when the target moves; location 3 and 4 are both normally the current location of the quest giver, and move when the quest giver moves. Hybrids are in effect chains of quests: do this task in order to get this precondition of this other task, in order to get the overall objective; obviously such chains can be deep and involved - the 'main quest' of every role playing game I know of is a chain or hybrid quest. @@ -45,3 +56,7 @@ Obviously, this doesn't stop you doing jobs you get directly paid/rewarded for, Related to this notion is the notion that, if you are asked to do a task by a character and you do it well, whether for pay or as a favour, your reputation for being competent in tasks of that kind will improve and the more likely it is that other characters will ask you to do similar tasks; and this will apply to virtually anything another character can ask of you in the game world, from carrying out an assassination to delivering a message to finding a quantiy of some specific commodity to having sex. So quests can emerge organically from the mechanics of the world and be richly varied; I'm confident that will work. What I'm not confident of is that they can be narratively satisfying. This relates directly to the generation of speech. + +## Stuff to consider + +The games [Middle Earth: Shadow of Mordor](https://en.wikipedia.org/wiki/Middle-earth:_Shadow_of_Mordor), and [Middle Earth: Shadow of War](https://en.wikipedia.org/wiki/Middle-earth:_Shadow_of_War) have a procedural story system called [Nemesis](https://youtu.be/Lm_AzK27mZY), which is worth a look. \ No newline at end of file diff --git a/doc/Simulation-layers.md b/doc/Simulation-layers.md new file mode 100644 index 0000000..ccd842b --- /dev/null +++ b/doc/Simulation-layers.md @@ -0,0 +1,21 @@ +# 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 + +As goods are transported between cities, prices rise and fall based on simulated production and consumption. As prices of commodities rise, more citizens will take up trades which produce those commodities. The simulation needs to be sophisticated enough that, for example, as a city grows richer, its citizens may switch from preferring low cost textiles, eg perhaps wool or linen, to higher cost textiles, such as for example silk (or more complex weaves, or...) Similarly for foodstuffs and for beverages. + +Agricultural production will be affected by climate simulation. + +This is mainly a land game. Broadly, caravans take the place of ships in Elite or Pirates! Caravans are broadly made up of camels, although some may use mules or possibly horses. In any case, a merchant may own camels and hire camel drivers, or may hire contractor drivers who have their own camels; and there will also be whole teams of camel drivers with their animals which can be hired in a single contract. + +## A political simulation + +Broadly, aristons claim territories in an essentiallu feudal arrangement, drive out outlaws, and levy taxes. + +An ariston will be popular if their regime is stable, if taxes are low, justice is considered fair, oppression is low and depredations by outlaws are minimal. The more unpopular an ariston is, the more resistant the populace will be to paying their taxes, meaning the more military force needs to be diverted to tax collection and the greater the oppression. Taxes are required to pay soldiers and to maintain high roads, bridges, markets and other infrastructure. Merchants will prefer to travel routes which are better policed and maintained, which means more merchants trading in your markets, which means more tax. + +Aristons who can generate surplus can hire more soldiers, ascend the feudal hierarchy, and wage war against neighbours. diff --git a/doc/Uncanny_dialogue.md b/doc/Uncanny_dialogue.md new file mode 100644 index 0000000..2bad54b --- /dev/null +++ b/doc/Uncanny_dialogue.md @@ -0,0 +1,9 @@ +# 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](https://youtu.be/NmLPpcVQFJM) and [Twitter thread](https://twitter.com/GameAnim/status/844961601732018176) about the perceived failings in the character animation system of Mass Effect Andromeda. + +This gets even more problematic if, rather than heavily signposting the player towards locations where plot points will happen, we allow the player to roam the world relatively freely, and cause plot events to occur where the player is at the appropriate phase in the plot rather than when the player arrives at a particular location. This not only means that important plot beats will happen in unpredictable locations but also that we may have to dynamically assign the non-player character(s) who interact with the player character in order to deliver the plot point. diff --git a/doc/sexual-dimorphism.md b/doc/sexual-dimorphism.md index 5325f5c..724864e 100644 --- a/doc/sexual-dimorphism.md +++ b/doc/sexual-dimorphism.md @@ -26,7 +26,7 @@ Another significant point is that women's ability to bear children ceases at a m ## Why have sex at all? -If a character has 'having children' - the **Ancestor** aspiration, in my typology - as their key aim, then they will want to have sex. But to have children in this sense is to have acknowledged children, so while a male character may be motivated to have multiple female partners, he will never the less have some degree of long term committment to them, and will want both to feel confident that the children are his and to be recognised by their father. +If a character has 'having children' - the [**Ancestor**](intro.html#aspirations-and-goals) aspiration, in my typology - as their key aim, then they will want to have sex. But to have children in this sense is to have acknowledged children, so while a male character may be motivated to have multiple female partners, he will never the less have some degree of long term committment to them, and will want both to feel confident that the children are his and to be recognised by their father. From the point of view of seeking to become an Ancestor, there is little benefit to the woman in having multiple partners, except in very harsh environments. It will be easier to give one partner confidence that all your children are his, and while a man can increase his number of potential progeny by having multiple wives, mistresses or other classes of long-term female sexual partners, a woman cannot. @@ -42,4 +42,4 @@ Sex, done right, is an extremely pleasant pastime. Sex can also be used to creat For women, sex with other women carries with it no risk of pregnancy, so can be enjoyed or used for any of these purposes in very much the same way as it can by men; in other words, particularly for women, homosexual sex can be more lighthearted and carefree than heterosexual sex. To what extend our notions of homosexuality and heterosexuality are cultural I simply don't know. But because no children will result, a woman can afford to be more promiscuous with other women than she can with men. -## How does this impact on +## diff --git a/docs/codox/Baking-the-world.html b/docs/codox/Baking-the-world.html index c588bd8..62eb476 100644 --- a/docs/codox/Baking-the-world.html +++ b/docs/codox/Baking-the-world.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Baking the world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 current"><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#baking-the-world" name="baking-the-world"></a>Baking the world</h1> +<html><head><meta charset="UTF-8" /><title>Baking the world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 current"><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#baking-the-world" name="baking-the-world"></a>Baking the world</h1> <h4><a href="#wednesday-8-may-2019" name="wednesday-8-may-2019"></a>Wednesday, 8 May 2019</h4> <p><img src="https://2.bp.blogspot.com/-qxkySlJNmtY/XNKvJksmSjI/AAAAAAAAnXU/z1Zv2LmjydMmi_1q2mWdwVALmdfi9OItwCLcBGAs/s1600/Devorgillas-Bridge.jpg" alt="Devogilla’s Bridge in Dumfries, early foourteenth century" /></p> <p>In previous posts, I’ve described algorithms for dynamically <a href="Populating-a-game-world.html">populating</a> and dynamically <a href="Settling-a-game-world.html">settling</a> a game world. But at kilometre scale (and I think we need a higher resolution than that - something closer to hectare scale), settling the British Isles using my existing algorithms takes about 24 hours of continuous compute on an eight core, 3GHz machine. You cannot do that every time you launch a new game.</p> diff --git a/docs/codox/Game_Play.html b/docs/codox/Game_Play.html new file mode 100644 index 0000000..2743a62 --- /dev/null +++ b/docs/codox/Game_Play.html @@ -0,0 +1,31 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>Game Play</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 current"><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#game-play" name="game-play"></a>Game Play</h1> +<p>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:</p> +<ol> + <li> + <p>Superpower: the player character has some special powers or skills that other characters in the game fo not have.</p></li> + <li> + <p>Special status: the player character is ‘the chosen one’, ‘the hero’, or even just ‘the Witcher’ from the very beginning, without having done anything to earn those titles.</p></li> + <li> + <p>Boss fights: some non-player characters have special, and specially strong, combat repertoire, and block progress in the game until you overcome them.</p></li> + <li> + <p>Psychokiller: completing the game necessarily involves beating many, many other characters in combat.</p></li> + <li> + <p>Slaughterhouse: the main way to interact with other characters is to kill them.</p></li> + <li> + <p>The Script is King: everything is scripted. The player either can’t diverge from the script, or if they do, will find no interesting content.</p></li> + <li> + <p>Dumb and dumber: non-player characters, even important ones, have extremely limited vocal repertoire.</p></li> +</ol> +<p>Of these, the last two, I think, are key: they are the root cause of the other problems. In fact, to take it further, the real key is the last. We talk a lot about ‘Game AI’, but really there’s nothing remotely approaching artificial intelligence ins modern games. Non-player characters do not think; they do not learn; they do not reason; they do not know. They speak only from the script. And they speak only from the script because of the fetish for voice acting.</p> +<p>## Death to Dumb-Dumb</p> +<p>As I’ve argued <a href="">elsewhere</a>, <a href="">repeatedly</a>, we can now generate a wide variety of naturalistic speaking voices, and have them narrate text. Now of course there’s great deal of information conveyed in human vocal communication in addition to the words – of which emotion is only an example, although an important one. Generating voices with the right tone, the right emphasis, for different situations may be harder than I anticipate; there may be an ‘<a href="Uncanny_dialogue">uncanny valley</a>’ in which generated speech just sounds uncomfortably off.</p> +<p>But it’s a trade off. For possibly less than perfect vocal performance, you get the possibility of much richer repertoire. You get not only the possibility that non-player characters can talk about the weather, or gossip about their neighbours, or give you directions to local places of interest. You get the possibility that a non-player character’s attitude to you may be conditioned by the fact that they’ve heard that you stole from their second cousin, or that you killed an outlaw who’d raped one of their friends.</p> +<p>Suddenly, they can have attitudes about things that happen in the world, opinions about major political figures in it, about their neighbours, about you the player, which are not scripted, which are emergent. When they learn new information which conflicts with something they already knew, their attitudes will change, as that new information is integrated. Intelligent behaviour will emerge.</p> +<p>And with the emergence of intelligent behaviour comes the emergence of possibilities for negotiation, for diplomacy, for dynamic, unscripted, friendships and romances. Which means, there are things you can do to interact with every non-player character, even ones who are not ‘plot’ characters, other than just kill them.</p> +<p>And as now gameplay possibilities emerge, as new stories emerge organically out of the dynamically changing relationships between non-player characters in the world, the need for scripting decreases.</p> +<p>The problem with scripting is that it greatly limits player agency. The story can only have one of a few predetermined – literally, scripted – endings. This is clearly expressed in <a href="https://youtu.be/_JRikiQyzLA">a review of Red Dead Redemption 2</a> which I recomment to you; but is equally true of almost all other games. </p> +<p>Dynamic side quests have fallen into disfavour, because, when they’ve been tried in earlier generation games, there were too few possibilities, and they became repetitive and boring. I don’t believe, with the wealth of compute resource we now have, this any longer need be the case. On the contrary, I think we can now dynamically generate a wide range of different, and differently complex, side quests. I think, in fact, that these can <a href="Organic_Quests.html">emerge organically</a> from the structure of the game world.</p> +<h2><a href="#death-to-psycho-killer" name="death-to-psycho-killer"></a>Death to Psycho-Killer</h2> +<p>If the main way a player can interact with non-player characters is to kill them, and if the player doesn’t have a systematic combat advantage over non-player characters, then it’s going to be a short game. This is why players in many or most video games do start with a systematic combat advantage, and that combat advantage tends to increase over the course of the game as the player becomes more proficient with the combat system, and acquires better weapons, armour and combat buffs. This in turn means that to keep combat ‘interesting’, the game either has to through larger and larger armies of ‘bad’ non-player characters against the player – a fault seen at its worst in <a href="https://youtu.be/Sc8Bn8yqPYQ?t=3150">Dragon Age 2</a>.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/Gossip_scripted_plot_and_Johnny_Silverhand.html b/docs/codox/Gossip_scripted_plot_and_Johnny_Silverhand.html new file mode 100644 index 0000000..2061af4 --- /dev/null +++ b/docs/codox/Gossip_scripted_plot_and_Johnny_Silverhand.html @@ -0,0 +1,56 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>Gossip, scripted plot, and Johnny Silverhand</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 current"><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#gossip-scripted-plot-and-johnny-silverhand" name="gossip-scripted-plot-and-johnny-silverhand"></a>Gossip, scripted plot, and Johnny Silverhand</h1> +<p>I’ve been writing literally for years – since <a href="null">Voice acting considered harmful</a> 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,</p> +<ol> + <li>Alexa/Siri style speech interpretation;</li> + <li>A decision on whether to co-operate based on the particular NPC’s general demeanor and particular attitude to the player;</li> + <li>A search of the game state and lore for relevant information;</li> + <li>A filtering of the results based on what the particular NPC can be expected to know;</li> + <li>Generation of a textual response from those results based on a library of templates which defines the particular NPC’s dialect and style of speech;</li> + <li>Production of audio using a [Lyrebird]{<a href="https://www.descript.com/overdub?lyrebird=true">https://www.descript.com/overdub?lyrebird=true</a>) style generated voice.</li> +</ol> +<p>As I’ve argued before, the game engine necessarily knows everything about the lore, and the current state, of the game world. It would be possible for any non-player character to answer literally any question about the game world, from who was mayor of Night City in 2020 to who lives in the apartment one floor up from yours, to what the weather is like in North Oaks just now.</p> +<p>What individual characters know should, of course, be more limited. People who live in Japantown or Heywood are unlikely to know who lives in a particular apartment in Watson; only real old timers, like Rogue, are likely to remember who was mayor fifty years ago. That’s the reason for filtering; but the filtering really isn’t a big deal.</p> +<p>Again, the generation of distinct voices for hundreds of non-player characters isn’t any longer a big deal. Distinct social groups – the corpos, and the different gangs such as Maelstrom or the Mox, will have their own argot, their own slang, their own habitual figures of speech which can be encoded into template libraries, while technologies like Lyrebird can produce an infinite range of realistic-sounding voices.</p> +<p>In particular, they can mimic real voices. They can mimic the voices of real actors. They can mimic <a href="https://cyberpunk.fandom.com/wiki/Keanu_Reeves">Keanu Reeves</a>.</p> +<p>So: how do you integrate this free form ‘you can say anything to any character’ style of play with scripted plot?</p> +<p>Obviously, my vision – as I’ve set out in <a href="Organic_Quests.html">Organic Quests</a> – is that many quests should emerge organically from modelling the lives, activities and motivations of non-player characters. But that’s a radical vision and not one you can really expect many people to buy into until it has been demonstrated to work. I think that investors are still going to want to have confidence that there’s something exciting in the game for players to engage with, and I think directors are still going to want to tell the stories they want to tell.</p> +<p>So if I’m to sell the idea of free-form speech interaction with characters in the game world, I need an account of how it works with scripted characters voiced by high value actors in a scripted plot. I’m picking Johnny Silverhand as a core example, here, because I think he presents particular challenges.</p> +<p>But I also think these challenges can be addressed very easily.</p> +<p>In <a href="https://www.cyberpunk.net/">Cyberpunk 2077</a>, the player can’t just go and find Johnny Silverhand, to speak to him. On the contrary, Johnny will just appear when the script calls for him to appear, and when he does he’ll always initiate conversation. When a plot NPC initiates conversation with the player, the game could show – as it does now – a menu of things the player can say, with the implicit promise that selecting any one of these things will at least bring an interesting response which will expand one’s knowledge of that character or of the lore.</p> +<p>Just as the player does now, the player in a game with free form speech interaction could choose to say one of the things presented in the menu, and the implicit contract – that this would lead to a new revelation, or would advance the plot – would remain unchanged. But the player could also choose to go off script, to take the conversation in an unscripted direction, or just to end it.</p> +<p>It should be said that in Cyberpunk 2077, unlike some other games, the player already has the choice to abruptly break off conversations, even with plot characters, so how the game handles breaking off the conversation does not need to change.</p> +<p>How should the game handle unscripted responses in scripted dialogues?</p> +<p>Well, the first and obvious thing is to parse the unscripted response to see whether it’s a variant of one of the scripted responses, and if it seems that it might be, perhaps ask the player to verify that:</p> +<blockquote> + <p><strong>V</strong>: Just get on with it already.</p> + <p><strong>Panam</strong>: You mean, go to the shiv camp?</p> + <p><strong>V</strong>: Yes, dammit.</p> +</blockquote> +<p>But the second thing is to respond to the response exactly as the non-player character would if the player had initiated the conversation, using the pipeline given at the beginning of this essay. Of course, in the special case of Johnny Silverhand, he is – at least initially – decidedly hostile and extremely selfish, so his response will typically come at step two in the pipeline:</p> +<blockquote> + <p><strong>V</strong>: Hey, Johnny, what’s the quickest way from here to Jig Jig Street?</p> + <p><strong>Johnny</strong>: What am I now, your fucking tour guide?</p> + <p><strong>V</strong>: Oh, come on, Johnny, help me out a bit here, Where’s the nearest gun dealer?</p> + <p><strong>Johnny</strong>: How the fuck should I know? I haven’t been here for fifty years, all I know is ancient history.</p> +</blockquote> +<p>The benefit of this interaction style is that these responses could be real acted responses by the voice actor (in this case, Keanu Reeves), which avoids the ‘uncanny valley’ risk that generated speech from a character the player has become used to interacting with may not sound quite natural enough.</p> +<p>But, if we’ve used Lyrebird technology to capture and mimic Reeves’ voice, and if Johnny is for some reason uncharacteristically mellow, then generated voice responses should be used. So suppose the player asks something which Johnny ought reasonably to know:</p> +<blockquote> + <p><strong>V:</strong> Hey, Johnny, what’s between you and Rogue?</p> +</blockquote> +<p>That’s lore. It’s in at least one of the in-game ‘shard’ texts. The game engine knows it. A text can be generated for Johnny to respond:</p> +<blockquote> + <p><strong>Johnny</strong>: We were lovers, back in the day.</p> +</blockquote> +<p>In any of these cases, in order for the scripted plot to proceed, the non-player character can circle back to the thing they said that the player hasn’t yet made an appropriate response to:</p> +<blockquote> + <p><strong>Johnny</strong>:But you didn’t answer my question. <em>Repeats question</em>.</p> +</blockquote> +<p>or</p> +<blockquote> + <p><strong>Johnny</strong>: As I said before, <em>Repeats what he said before</em>.</p> +</blockquote> +<p>Again, for key plot characters, the voice actors can actually record multiple different canned texts of this form, so that, when played, they don’t sound excessively repetitious.</p> +<p>In short, it doesn’t seem to me that it would be at all hard to integrate free form voice interaction with a modern scripted video game. The advantage is that player interaction with non-player characters would become far richer and more engaging, and consequently it would be much easier to allow the player to progress through the plot without the default outcome of every encounter having to be a blood-bath.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/NewCh1.html b/docs/codox/NewCh1.html new file mode 100644 index 0000000..09abe76 --- /dev/null +++ b/docs/codox/NewCh1.html @@ -0,0 +1,13 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>Axiom</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 current"><a href="NewCh1.html"><div class="inner"><span>Axiom</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#axiom" name="axiom"></a>Axiom</h1> +<p>It is at once natural and yet extraordinary; at once familiar and yet always uncanny. Strange, yet still a part of the landscape of my life since earliest childhood. Circular, about three and a half metres across, of unknown depth; filled with clear water which neither rises in time of flood nor falls in time of drought, which is never warm in summer yet rarely freezes in winter. And its level is always, always, always, about a metre higher than the level of the burn which flows around three sides of the rock through which it rises.</p> +<p>The well is liminal: a gateway between the world of air and the world of water, the world of men and the underworld, the world of sunlight and the world of darkness. It is the place where – my mother always claimed – I was conceived; and for too many people whom I have known, the gateway between life and death, through which none pass twice.</p> +<p>It is the Cauld Well: the Cauld Well of Scotland. The Well of Sorrows. According to folklore, a place of blessings and ancient magic. According to historians, the last site in Britain where the Celtic gods were regularly worshipped.</p> +<p>And it is mine.</p> +<h1><a href="#tentatively-curious" name="tentatively-curious"></a>Tentatively Curious</h1> +<p>Cryptography is the science of hiding things. The modern methods of hiding things are well known; they’re based on mathematical problems which are very hard to solve unless you already have a known starting point. For now, they work very well; but the problem with mathematical problems which are very hard to solve is that computers are steadily getting better and better at solving things.</p> +<p>Encryption is important; it is everywhere. It secures our communications, our wealth, our identity, our secrets. Many people – people with a great deal of money to spend – are very interested in the science of hiding things: in ensuring things are hidden, or else in finding things which others have hidden.</p> +<p>Unfortunately, the person who I wanted to find, in the spring of 2015 – who I had wanted to find since I’d lost her in the autumn of 2012 – could not be found by solving hard sums. In that spring, in fact, lots of things were hidden from me. Things which were hidden in plain sight, which were urgently important; </p> +<p>Like A. A. Milne’s King John, I am not a good man. Like him, I have my little ways. And very often no one speaks to me for days and days and days; although, to be fair, these past three years I hadn’t much encourage them to.</p> +<p>The university mostly understood that. My research – and to some degree my name – still brought in money; my papers were still well received. I no longer taught undergraduates, but I had a select group of excellent postgrads. And my colleagues accepted that I needed time to grieve.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/Organic_Quests.html b/docs/codox/Organic_Quests.html new file mode 100644 index 0000000..392187e --- /dev/null +++ b/docs/codox/Organic_Quests.html @@ -0,0 +1,45 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>Organic Quests</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 current"><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#organic-quests" name="organic-quests"></a>Organic Quests</h1> +<p>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](<a href="https://en.wikipedia.org/wiki/Quest_(gaming)">https://en.wikipedia.org/wiki/Quest_(gaming)</a>) offers a typology of quests as follows:</p> +<ol> + <li>Kill quests</li> + <li>Combo quests</li> + <li>Delivery quests</li> + <li>Gather quests</li> + <li>Escort quests</li> + <li>Syntax quests</li> + <li>Hybrids</li> +</ol> +<p>‘Gather quests’ are more frequently referred to in the literature as ‘fetch quests’, and ‘kill quests’ are simply a specialised form of fetch quest where the item to be fetched is a trophy of the kill. And the trophy could be just the knowledge that the kill has happened. A delivery quest is a sort of reverse fetch quest: instead of going to some location or NPC and getting a specific item to return to the quest giver, the player is tasked to take a specific item from the quest giver to some location or NPC.</p> +<p>Note, however, that if we consider a delivery quest to have four locations, where some of these locations may be conincident, then a delivery quest and a fetch quest become the same thing. Thus</p> +<ol> + <li>The location of the quest giver at the beginning of the quest;</li> + <li>The location from which the quest object must be collected;</li> + <li>The location to which the quest object must be delivered;</li> + <li>The location of the quest giver at the end of the quest.</li> +</ol> +<p>This characterisation assumes that at the end of each quest, the player must rendezvous with the quest giver at the end of the quest, either to report completion or to collect a reward. Obviously, there could be some quests where this fourth location is not required, because there is no need to report back (for example, if the quest giver was dying/has died) and no reward to be collected.</p> +<p>Note that a location is not necessarily a fixed x/y location on the map; in a kill quest, for example, location 2 is the current location of the target, and moves when the target moves; location 3 and 4 are both normally the current location of the quest giver, and move when the quest giver moves.</p> +<p>Hybrids are in effect chains of quests: do this task in order to get this precondition of this other task, in order to get the overall objective; obviously such chains can be deep and involved - the ‘main quest’ of every role playing game I know of is a chain or hybrid quest.</p> +<p>My understanding is that what Wikipedia means by a ‘syntax quest’ is what one would normally call a puzzle.</p> +<p>An escort quest is typically a request to take a specified non-player character safely through a dangerous area.</p> +<p>Combo quests are not, in my opinion, particularly relevant to the sorts of game we’re discussing here.</p> +<p>So essentially quests break down into three core types</p> +<ol> + <li>Fetch and deliver quests</li> + <li>Escort quests</li> + <li>Puzzles</li> +</ol> +<p>which are combined together into more or less complex chains, where the simplest chain is a single quest.</p> +<p>Given that quests are as simple as this, it’s obvious that narrative sophistication is required to make them interesting; and this point is clearly made by some variants of roguelike games which procedurally generate quests: they’re generally pretty dull. By contrast, the Witcher series is full of fetch-quests which are made to really matter by being wrapped in interesting character interaction and narrative plausibility. Very often this takes the form of tragedy: as one reviewer pointed out, the missing relatives that Geralt is asked to find generally turn out to be (horribly) dead. In other words, creative scripting tends to deliver much more narratively satisfying quests than is usually delivered by procedural generation.</p> +<p>But, if we’re thinking of a game with much more intelligent non-player characters with much more conversational repertoir, as I am, can satisfying quests emerge organically? In space trading games such as <a href="https://www.telegraph.co.uk/games/11051122/Elite-the-game-that-changed-the-world.html">Elite</a>, a primary activity is moving goods from markets with surplus (and thus low prices) to markets with shortage (and thus high prices). This is, in effect, a game made up of deliver quests - but rather than deliver quests which are scripted, they are deliver quests which arise organically out of the structure of the game world.</p> +<p>I already have working code for non-player character merchants, who move goods from city to city based on market information available to them. For player characters to join in this trading is an organic activity emerging from the structure of the world, which provides an activity. But moving merchants provides a market opportunity for bandits, who can intercept and steal cargoes, and so for mercenaries, who can protect cargoes from bandits, and so on. And because I have an architecture that allows non-player characters to fill economic niches, there will be non-player characters in all these niches.</p> +<p>Where a non-player character can act, so can a player character: when a (non-player character) merchant seeks to hire a caravan guard and a player character responds, that’s an organic escort quest.</p> +<p>The key idea behind organic quests is that the circumstance and requirments for quests emerges as an emergent behaviour out of the mechanics of the game world. A non-player character doesn’t know that there is a player character who is different from them; rather, when a non-player character needs something they can’t readily achieve for themselves, they will ask other characters to help, and that may include the player character.</p> +<p>This means, of course, that characters need a goal-seeking planning algorithm to decide their actions, with one option in any plan being ‘ask for help’. Thus, ‘asking for help’ becomes a mechanism within the game, a normal behaviour. Ideally non-player characters will keep track of quite complex webs of loyalty and of obligation - debts of honour, duties of hospitality, collective loyalties. So that, if you do a favour for some character in the world, that character’s tribe, friends, obligation circle, whatever, are now more likely to do favours for you.</p> +<p>Obviously, this doesn’t stop you doing jobs you get directly paid/rewarded for, but I’d like the web of obligation to be at least potentially much richer than just tit for tat.</p> +<p>Related to this notion is the notion that, if you are asked to do a task by a character and you do it well, whether for pay or as a favour, your reputation for being competent in tasks of that kind will improve and the more likely it is that other characters will ask you to do similar tasks; and this will apply to virtually anything another character can ask of you in the game world, from carrying out an assassination to delivering a message to finding a quantiy of some specific commodity to having sex.</p> +<p>So quests can emerge organically from the mechanics of the world and be richly varied; I’m confident that will work. What I’m not confident of is that they can be narratively satisfying. This relates directly to the generation of speech.</p> +<h2><a href="#stuff-to-consider" name="stuff-to-consider"></a>Stuff to consider</h2> +<p>The games <a href="https://en.wikipedia.org/wiki/Middle-earth:_Shadow_of_Mordor">Middle Earth: Shadow of Mordor</a>, and <a href="https://en.wikipedia.org/wiki/Middle-earth:_Shadow_of_War">Middle Earth: Shadow of War</a> have a procedural story system called <a href="https://youtu.be/Lm_AzK27mZY">Nemesis</a>, which is worth a look.</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/Populating-a-game-world.html b/docs/codox/Populating-a-game-world.html index 8a50174..e1886fc 100644 --- a/docs/codox/Populating-a-game-world.html +++ b/docs/codox/Populating-a-game-world.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Populating a game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 current"><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#populating-a-game-world" name="populating-a-game-world"></a>Populating a game world</h1> +<html><head><meta charset="UTF-8" /><title>Populating a game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 current"><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#populating-a-game-world" name="populating-a-game-world"></a>Populating a game world</h1> <h4><a href="#saturday-6-july-2013" name="saturday-6-july-2013"></a>Saturday, 6 July 2013</h4> <p><em>(You might want to read this essay in conjunction with my older essay, <a href="../../2009/12/settling-game-world.html">Settling a game world</a>, which covers similar ground but which this hopefully advances on)</em></p> <p>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.</p> diff --git a/docs/codox/Settling-a-game-world.html b/docs/codox/Settling-a-game-world.html index f7b58df..357ea68 100644 --- a/docs/codox/Settling-a-game-world.html +++ b/docs/codox/Settling-a-game-world.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Settling a game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 current"><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#settling-a-game-world" name="settling-a-game-world"></a>Settling a game world</h1> +<html><head><meta charset="UTF-8" /><title>Settling a game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 current"><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#settling-a-game-world" name="settling-a-game-world"></a>Settling a game world</h1> <h4><a href="#wednesday-30-december-2009" name="wednesday-30-december-2009"></a>Wednesday, 30 December 2009</h4> <p><em>This essay is part of a series with ‘<a href="Worlds-and-flats.html">Worlds and Flats</a>’ and ‘<a href="The-spread-of-knowledge-in-a-large-game-world.html">The spread of knowledge in a large game world</a>’; 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 ‘<a href="Populating-a-game-world.html">Populating a game world</a>’)</em></p> <h3><a href="#microworld" name="microworld"></a>Microworld</h3> diff --git a/docs/codox/Simulation-layers.html b/docs/codox/Simulation-layers.html new file mode 100644 index 0000000..24d074d --- /dev/null +++ b/docs/codox/Simulation-layers.html @@ -0,0 +1,13 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>Simulation layers</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 current"><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#simulation-layers" name="simulation-layers"></a>Simulation layers</h1> +<p>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.</p> +<p>That is to say there is</p> +<h2><a href="#an-economy-simulation" name="an-economy-simulation"></a>An economy simulation</h2> +<p>As goods are transported between cities, prices rise and fall based on simulated production and consumption. As prices of commodities rise, more citizens will take up trades which produce those commodities. The simulation needs to be sophisticated enough that, for example, as a city grows richer, its citizens may switch from preferring low cost textiles, eg perhaps wool or linen, to higher cost textiles, such as for example silk (or more complex weaves, or…) Similarly for foodstuffs and for beverages.</p> +<p>Agricultural production will be affected by climate simulation.</p> +<p>This is mainly a land game. Broadly, caravans take the place of ships in Elite or Pirates! Caravans are broadly made up of camels, although some may use mules or possibly horses. In any case, a merchant may own camels and hire camel drivers, or may hire contractor drivers who have their own camels; and there will also be whole teams of camel drivers with their animals which can be hired in a single contract.</p> +<h2><a href="#a-political-simulation" name="a-political-simulation"></a>A political simulation</h2> +<p>Broadly, aristons claim territories in an essentiallu feudal arrangement, drive out outlaws, and levy taxes.</p> +<p>An ariston will be popular if their regime is stable, if taxes are low, justice is considered fair, oppression is low and depredations by outlaws are minimal. The more unpopular an ariston is, the more resistant the populace will be to paying their taxes, meaning the more military force needs to be diverted to tax collection and the greater the oppression. Taxes are required to pay soldiers and to maintain high roads, bridges, markets and other infrastructure. Merchants will prefer to travel routes which are better policed and maintained, which means more merchants trading in your markets, which means more tax.</p> +<p>Aristons who can generate surplus can hire more soldiers, ascend the feudal hierarchy, and wage war against neighbours.</p></div></div></div></body></html> \ No newline at end of file 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 9dd26f5..d20d166 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,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>The spread of knowledge in a large game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 current"><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#the-spread-of-knowledge-in-a-large-game-world" name="the-spread-of-knowledge-in-a-large-game-world"></a>The spread of knowledge in a large game world</h1> +<html><head><meta charset="UTF-8" /><title>The spread of knowledge in a large game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 current"><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#the-spread-of-knowledge-in-a-large-game-world" name="the-spread-of-knowledge-in-a-large-game-world"></a>The spread of knowledge in a large game world</h1> <h4><a href="#saturday-26-april-2008" name="saturday-26-april-2008"></a>Saturday, 26 April 2008</h4> <p><img src="https://4.bp.blogspot.com/-F2gxx0dRM8o/UlfSsRe8ybI/AAAAAAAAYIA/I1I9D5Yk7to/s1600/Tw2_full_Dandelion.png" alt="part of the role of Dandelion, in The Witcher games, is to provide the player with news" /></p> <h3><a href="#note" name="note"></a>Note</h3> diff --git a/docs/codox/Uncanny_dialogue.html b/docs/codox/Uncanny_dialogue.html new file mode 100644 index 0000000..480c253 --- /dev/null +++ b/docs/codox/Uncanny_dialogue.html @@ -0,0 +1,7 @@ +<!DOCTYPE html PUBLIC "" + ""> +<html><head><meta charset="UTF-8" /><title>The Uncanny Valley, and dynamically generated dialogue</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 current"><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#the-uncanny-valley-and-dynamically-generated-dialogue" name="the-uncanny-valley-and-dynamically-generated-dialogue"></a>The Uncanny Valley, and dynamically generated dialogue</h1> +<p>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.</p> +<p>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.</p> +<p>These thoughts were prompted by a very interesting <a href="https://youtu.be/NmLPpcVQFJM">video</a> and <a href="https://twitter.com/GameAnim/status/844961601732018176">Twitter thread</a> about the perceived failings in the character animation system of Mass Effect Andromeda.</p> +<p>This gets even more problematic if, rather than heavily signposting the player towards locations where plot points will happen, we allow the player to roam the world relatively freely, and cause plot events to occur where the player is at the appropriate phase in the plot rather than when the player arrives at a particular location. This not only means that important plot beats will happen in unpredictable locations but also that we may have to dynamically assign the non-player character(s) who interact with the player character in order to deliver the plot point.</p></div></div></div></body></html> \ 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 7e5c1ad..b5fbd6c 100644 --- a/docs/codox/Voice-acting-considered-harmful.html +++ b/docs/codox/Voice-acting-considered-harmful.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Voice acting considered harmful</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 current"><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#voice-acting-considered-harmful" name="voice-acting-considered-harmful"></a>Voice acting considered harmful</h1> +<html><head><meta charset="UTF-8" /><title>Voice acting considered harmful</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 current"><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#voice-acting-considered-harmful" name="voice-acting-considered-harmful"></a>Voice acting considered harmful</h1> <h4><a href="#wednesday-25-february-2015" name="wednesday-25-february-2015"></a>Wednesday, 25 February 2015</h4> <p><img src="https://3.bp.blogspot.com/-ZI90HLjEcuo/VO4f-yXP3sI/AAAAAAAAZt4/C0hQ7hScWyM/s1600/witcher_conversation.jpg" alt="The Witcher: Conversation with Kalkstein" /></p> <p>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 Create a new room north of here called dungeon-3 the player was playing the game Pick up the rusty sword and go north or the player was talking to a non-player character Say to the wizard ‘can you tell me the way to the castle’ Of course, the parser didn’t ‘understand’ English. It worked on trees of words, in which terminal nodes were actions and branching nodes were key words, and it had the property that any word it didn’t recognise at that point in sentence was a noise word and could be ignored. A few special hacks (such as ‘the’, ‘a’, or ‘an’ was an indicator that what came next was probably a noun phrase, and thus that if there was more than one sword in the player’s immediate environment the one that was wanted was the one tagged with the adjective ‘rusty’), and you ended up with a parser that most of the time convincingly interpreted most of what the player threw at it.</p> diff --git a/docs/codox/economy.html b/docs/codox/economy.html index b5c7ecb..c8264d5 100644 --- a/docs/codox/economy.html +++ b/docs/codox/economy.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Game world economy</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 current"><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#game-world-economy" name="game-world-economy"></a>Game world economy</h1> +<html><head><meta charset="UTF-8" /><title>Game world economy</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 current"><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#game-world-economy" name="game-world-economy"></a>Game world economy</h1> <p>Broadly this essay extends ideas presented in <a href="Populating-a-game-world.html">Populating a game world</a>, q.v.</p> <h2><a href="#primary-producers" name="primary-producers"></a>Primary producers</h2> <h3><a href="#herdsfolk" name="herdsfolk"></a>Herdsfolk</h3> diff --git a/docs/codox/index.html b/docs/codox/index.html index d645463..05dd2bc 100644 --- a/docs/codox/index.html +++ b/docs/codox/index.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>The-great-game 0.1.1-SNAPSHOT</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 current"><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="namespace-index" id="content"><h1><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></h1><h5 class="license">Released under the <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GNU General Public License,version 2.0 or (at your option) any later version</a></h5><div class="doc"><p>Prototype code towards the great game I've been writing about for ten years, and know I will never finish.</p></div><h2>Installation</h2><p>To install, add the following dependency to your project or build file:</p><pre class="deps">[the-great-game "0.1.1-SNAPSHOT"]</pre><h2>Topics</h2><ul class="topics"><li><a href="Baking-the-world.html">Baking the world</a></li><li><a href="Populating-a-game-world.html">Populating a game world</a></li><li><a href="Settling-a-game-world.html">Settling a game world</a></li><li><a href="The-spread-of-knowledge-in-a-large-game-world.html">The spread of knowledge in a large game world</a></li><li><a href="Voice-acting-considered-harmful.html">Voice acting considered harmful</a></li><li><a href="economy.html">Game world economy</a></li><li><a href="intro.html">Introduction to the-great-game</a></li><li><a href="modelling_trading_cost_and_risk.html">Modelling trading cost and risk</a></li><li><a href="naming-of-characters.html">Naming of Characters</a></li><li><a href="on-dying.html">On Dying</a></li><li><a href="orgnic-quests.html">Organic Quests</a></li><li><a href="sandbox.html">Sandbox</a></li><li><a href="sexual-dimorphism.html">Sexual dimorphism</a></li></ul><h2>Namespaces</h2><div class="namespace"><h3><a href="the-great-game.agent.agent.html">the-great-game.agent.agent</a></h3><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div><div class="index"><p>Public variables and functions:</p><ul></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.gossip.html">the-great-game.gossip.gossip</a></h3><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.gossip.html#var-dialogue">dialogue</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-gather-news">gather-news</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-move-gossip">move-gossip</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.news-items.html">the-great-game.gossip.news-items</a></h3><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.news-items.html#var-degrade-character">degrade-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-degrade-location">degrade-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-infer">infer</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-character">interest-in-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-location">interest-in-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-character.3F">interesting-character?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-item.3F">interesting-item?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-location.3F">interesting-location?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-object.3F">interesting-object?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F">interesting-topic?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-learn-news-item">learn-news-item</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-make-all-inferences">make-all-inferences</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-news-topics">news-topics</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.markets.html">the-great-game.merchants.markets</a></h3><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price">adjust-quantity-and-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-new-price">new-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-run">run</a> </li><li> <a href="the-great-game.merchants.markets.html#var-update-markets">update-markets</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchant-utils.html">the-great-game.merchants.merchant-utils</a></h3><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices">add-known-prices</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-stock">add-stock</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-burden">burden</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-afford">can-afford</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-carry">can-carry</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-expected-price">expected-price</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchants.html">the-great-game.merchants.merchants</a></h3><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchants.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.planning.html">the-great-game.merchants.planning</a></h3><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.planning.html#var-augment-plan">augment-plan</a> </li><li> <a href="the-great-game.merchants.planning.html#var-generate-trade-plans">generate-trade-plans</a> </li><li> <a href="the-great-game.merchants.planning.html#var-nearest-with-targets">nearest-with-targets</a> </li><li> <a href="the-great-game.merchants.planning.html#var-plan-trade">plan-trade</a> </li><li> <a href="the-great-game.merchants.planning.html#var-select-cargo">select-cargo</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.strategies.simple.html">the-great-game.merchants.strategies.simple</a></h3><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.strategies.simple.html#var-move-merchant">move-merchant</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy">plan-and-buy</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-re-plan">re-plan</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy">sell-and-buy</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.time.html">the-great-game.time</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.time.html#var-canonical-ordering-of-houses">canonical-ordering-of-houses</a> </li><li> <a href="the-great-game.time.html#var-date-string">date-string</a> </li><li> <a href="the-great-game.time.html#var-day">day</a> </li><li> <a href="the-great-game.time.html#var-day-of-year">day-of-year</a> </li><li> <a href="the-great-game.time.html#var-days-in-season">days-in-season</a> </li><li> <a href="the-great-game.time.html#var-days-in-week">days-in-week</a> </li><li> <a href="the-great-game.time.html#var-days-of-week">days-of-week</a> </li><li> <a href="the-great-game.time.html#var-game-day-length">game-day-length</a> </li><li> <a href="the-great-game.time.html#var-game-start-time">game-start-time</a> </li><li> <a href="the-great-game.time.html#var-game-time">game-time</a> </li><li> <a href="the-great-game.time.html#var-now">now</a> </li><li> <a href="the-great-game.time.html#var-season">season</a> </li><li> <a href="the-great-game.time.html#var-seasons-in-year">seasons-in-year</a> </li><li> <a href="the-great-game.time.html#var-seasons-of-year">seasons-of-year</a> </li><li> <a href="the-great-game.time.html#var-waiting-day.3F">waiting-day?</a> </li><li> <a href="the-great-game.time.html#var-week">week</a> </li><li> <a href="the-great-game.time.html#var-weeks-in-season">weeks-in-season</a> </li><li> <a href="the-great-game.time.html#var-weeks-of-season">weeks-of-season</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.utils.html">the-great-game.utils</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.utils.html#var-cyclic.3F">cyclic?</a> </li><li> <a href="the-great-game.utils.html#var-deep-merge">deep-merge</a> </li><li> <a href="the-great-game.utils.html#var-make-target-filter">make-target-filter</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.location.html">the-great-game.world.location</a></h3><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.location.html#var-distance-between">distance-between</a> </li><li> <a href="the-great-game.world.location.html#var-get-coords">get-coords</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.routes.html">the-great-game.world.routes</a></h3><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.routes.html#var-find-route">find-route</a> </li><li> <a href="the-great-game.world.routes.html#var-find-routes">find-routes</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.run.html">the-great-game.world.run</a></h3><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.run.html#var-init">init</a> </li><li> <a href="the-great-game.world.run.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.world.html">the-great-game.world.world</a></h3><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.world.html#var-actual-price">actual-price</a> </li><li> <a href="the-great-game.world.world.html#var-default-world">default-world</a> </li><li> <a href="the-great-game.world.world.html#var-run">run</a> </li></ul></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>The-great-game 0.1.1-SNAPSHOT</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 current"><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="namespace-index" id="content"><h1><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></h1><h5 class="license">Released under the <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GNU General Public License,version 2.0 or (at your option) any later version</a></h5><div class="doc"><p>Prototype code towards the great game I've been writing about for ten years, and know I will never finish.</p></div><h2>Installation</h2><p>To install, add the following dependency to your project or build file:</p><pre class="deps">[the-great-game "0.1.1-SNAPSHOT"]</pre><h2>Topics</h2><ul class="topics"><li><a href="Baking-the-world.html">Baking the world</a></li><li><a href="Game_Play.html">Game Play</a></li><li><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html">Gossip, scripted plot, and Johnny Silverhand</a></li><li><a href="Organic_Quests.html">Organic Quests</a></li><li><a href="Populating-a-game-world.html">Populating a game world</a></li><li><a href="Settling-a-game-world.html">Settling a game world</a></li><li><a href="Simulation-layers.html">Simulation layers</a></li><li><a href="The-spread-of-knowledge-in-a-large-game-world.html">The spread of knowledge in a large game world</a></li><li><a href="Uncanny_dialogue.html">The Uncanny Valley, and dynamically generated dialogue</a></li><li><a href="Voice-acting-considered-harmful.html">Voice acting considered harmful</a></li><li><a href="economy.html">Game world economy</a></li><li><a href="intro.html">Introduction to the-great-game</a></li><li><a href="modelling_trading_cost_and_risk.html">Modelling trading cost and risk</a></li><li><a href="naming-of-characters.html">Naming of Characters</a></li><li><a href="on-dying.html">On Dying</a></li><li><a href="sandbox.html">Sandbox</a></li><li><a href="sexual-dimorphism.html">Sexual dimorphism</a></li></ul><h2>Namespaces</h2><div class="namespace"><h3><a href="the-great-game.agent.agent.html">the-great-game.agent.agent</a></h3><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div><div class="index"><p>Public variables and functions:</p><ul></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.gossip.html">the-great-game.gossip.gossip</a></h3><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.gossip.html#var-dialogue">dialogue</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-gather-news">gather-news</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-move-gossip">move-gossip</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.news-items.html">the-great-game.gossip.news-items</a></h3><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.news-items.html#var-degrade-character">degrade-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-degrade-location">degrade-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-infer">infer</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-character">interest-in-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-location">interest-in-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-character.3F">interesting-character?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-item.3F">interesting-item?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-location.3F">interesting-location?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-object.3F">interesting-object?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F">interesting-topic?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-learn-news-item">learn-news-item</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-make-all-inferences">make-all-inferences</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-news-topics">news-topics</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.markets.html">the-great-game.merchants.markets</a></h3><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price">adjust-quantity-and-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-new-price">new-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-run">run</a> </li><li> <a href="the-great-game.merchants.markets.html#var-update-markets">update-markets</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchant-utils.html">the-great-game.merchants.merchant-utils</a></h3><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices">add-known-prices</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-stock">add-stock</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-burden">burden</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-afford">can-afford</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-carry">can-carry</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-expected-price">expected-price</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchants.html">the-great-game.merchants.merchants</a></h3><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchants.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.planning.html">the-great-game.merchants.planning</a></h3><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.planning.html#var-augment-plan">augment-plan</a> </li><li> <a href="the-great-game.merchants.planning.html#var-generate-trade-plans">generate-trade-plans</a> </li><li> <a href="the-great-game.merchants.planning.html#var-nearest-with-targets">nearest-with-targets</a> </li><li> <a href="the-great-game.merchants.planning.html#var-plan-trade">plan-trade</a> </li><li> <a href="the-great-game.merchants.planning.html#var-select-cargo">select-cargo</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.strategies.simple.html">the-great-game.merchants.strategies.simple</a></h3><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.strategies.simple.html#var-move-merchant">move-merchant</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy">plan-and-buy</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-re-plan">re-plan</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy">sell-and-buy</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.time.html">the-great-game.time</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.time.html#var-canonical-ordering-of-houses">canonical-ordering-of-houses</a> </li><li> <a href="the-great-game.time.html#var-date-string">date-string</a> </li><li> <a href="the-great-game.time.html#var-day">day</a> </li><li> <a href="the-great-game.time.html#var-day-of-year">day-of-year</a> </li><li> <a href="the-great-game.time.html#var-days-in-season">days-in-season</a> </li><li> <a href="the-great-game.time.html#var-days-in-week">days-in-week</a> </li><li> <a href="the-great-game.time.html#var-days-of-week">days-of-week</a> </li><li> <a href="the-great-game.time.html#var-game-day-length">game-day-length</a> </li><li> <a href="the-great-game.time.html#var-game-start-time">game-start-time</a> </li><li> <a href="the-great-game.time.html#var-game-time">game-time</a> </li><li> <a href="the-great-game.time.html#var-now">now</a> </li><li> <a href="the-great-game.time.html#var-season">season</a> </li><li> <a href="the-great-game.time.html#var-seasons-in-year">seasons-in-year</a> </li><li> <a href="the-great-game.time.html#var-seasons-of-year">seasons-of-year</a> </li><li> <a href="the-great-game.time.html#var-waiting-day.3F">waiting-day?</a> </li><li> <a href="the-great-game.time.html#var-week">week</a> </li><li> <a href="the-great-game.time.html#var-weeks-in-season">weeks-in-season</a> </li><li> <a href="the-great-game.time.html#var-weeks-of-season">weeks-of-season</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.utils.html">the-great-game.utils</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.utils.html#var-cyclic.3F">cyclic?</a> </li><li> <a href="the-great-game.utils.html#var-deep-merge">deep-merge</a> </li><li> <a href="the-great-game.utils.html#var-make-target-filter">make-target-filter</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.location.html">the-great-game.world.location</a></h3><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.location.html#var-distance-between">distance-between</a> </li><li> <a href="the-great-game.world.location.html#var-get-coords">get-coords</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.routes.html">the-great-game.world.routes</a></h3><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.routes.html#var-find-route">find-route</a> </li><li> <a href="the-great-game.world.routes.html#var-find-routes">find-routes</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.run.html">the-great-game.world.run</a></h3><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.run.html#var-init">init</a> </li><li> <a href="the-great-game.world.run.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.world.html">the-great-game.world.world</a></h3><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.world.html#var-actual-price">actual-price</a> </li><li> <a href="the-great-game.world.world.html#var-default-world">default-world</a> </li><li> <a href="the-great-game.world.world.html#var-run">run</a> </li></ul></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/intro.html b/docs/codox/intro.html index ebeff11..59c29c7 100644 --- a/docs/codox/intro.html +++ b/docs/codox/intro.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Introduction to the-great-game</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 current"><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#introduction-to-the-great-game" name="introduction-to-the-great-game"></a>Introduction to the-great-game</h1> +<html><head><meta charset="UTF-8" /><title>Introduction to the-great-game</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 current"><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#introduction-to-the-great-game" name="introduction-to-the-great-game"></a>Introduction to the-great-game</h1> <h1><a href="#the-great-game" name="the-great-game"></a>The Great Game</h1> <p>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.</p> <p>So, firstly, how does one characterise this game?</p> diff --git a/docs/codox/modelling_trading_cost_and_risk.html b/docs/codox/modelling_trading_cost_and_risk.html index 58c4b74..b568591 100644 --- a/docs/codox/modelling_trading_cost_and_risk.html +++ b/docs/codox/modelling_trading_cost_and_risk.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Modelling trading cost and risk</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 current"><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#modelling-trading-cost-and-risk" name="modelling-trading-cost-and-risk"></a>Modelling trading cost and risk</h1> +<html><head><meta charset="UTF-8" /><title>Modelling trading cost and risk</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 current"><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#modelling-trading-cost-and-risk" name="modelling-trading-cost-and-risk"></a>Modelling trading cost and risk</h1> <p>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.</p> <p>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 <a href="the-great-game.gossip.gossip.html">gossip</a> 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.</p> <p>So: to what extent is it worth modelling the spread of knowledge of trade cost and risk?</p> diff --git a/docs/codox/naming-of-characters.html b/docs/codox/naming-of-characters.html index 3258a8a..42d633a 100644 --- a/docs/codox/naming-of-characters.html +++ b/docs/codox/naming-of-characters.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Naming of Characters</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 current"><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#naming-of-characters" name="naming-of-characters"></a>Naming of Characters</h1> +<html><head><meta charset="UTF-8" /><title>Naming of Characters</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 current"><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#naming-of-characters" name="naming-of-characters"></a>Naming of Characters</h1> <p>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.</p> <p>The full name of each character will be made up as follows:</p> <p>[epithet] [clan] [personal-name] the [trade-or-rank] of [location], son/daughter of [parent]</p> diff --git a/docs/codox/on-dying.html b/docs/codox/on-dying.html index d84d7de..3120d3a 100644 --- a/docs/codox/on-dying.html +++ b/docs/codox/on-dying.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>On Dying</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 current"><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#on-dying" name="on-dying"></a>On Dying</h1> +<html><head><meta charset="UTF-8" /><title>On Dying</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 current"><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#on-dying" name="on-dying"></a>On Dying</h1> <p>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.</p> <p>So how could this be better handled?</p> <p>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.</p> diff --git a/docs/codox/sandbox.html b/docs/codox/sandbox.html index e5b4a25..f3a2a72 100644 --- a/docs/codox/sandbox.html +++ b/docs/codox/sandbox.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Sandbox</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 current"><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sandbox" name="sandbox"></a>Sandbox</h1> +<html><head><meta charset="UTF-8" /><title>Sandbox</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 current"><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sandbox" name="sandbox"></a>Sandbox</h1> <p>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.</p> <p>Why?</p> <p>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</p> diff --git a/docs/codox/sexual-dimorphism.html b/docs/codox/sexual-dimorphism.html index de010b7..25ce9d2 100644 --- a/docs/codox/sexual-dimorphism.html +++ b/docs/codox/sexual-dimorphism.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Sexual dimorphism</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 current"><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sexual-dimorphism" name="sexual-dimorphism"></a>Sexual dimorphism</h1> +<html><head><meta charset="UTF-8" /><title>Sexual dimorphism</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 current"><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sexual-dimorphism" name="sexual-dimorphism"></a>Sexual dimorphism</h1> <p>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.</p> <p>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.</p> <p>OK? Let’s start.</p> @@ -17,7 +17,7 @@ <p>The essential trade-off in the traditional western marriage is that the man gets to have sex, and the woman gets to have protection for her progeny.</p> <p>Another significant point is that women’s ability to bear children ceases at a much younger age than men’s ability to father them.</p> <h2><a href="#why-have-sex-at-all-" name="why-have-sex-at-all-"></a>Why have sex at all?</h2> -<p>If a character has ‘having children’ - the <strong>Ancestor</strong> aspiration, in my typology - as their key aim, then they will want to have sex. But to have children in this sense is to have acknowledged children, so while a male character may be motivated to have multiple female partners, he will never the less have some degree of long term committment to them, and will want both to feel confident that the children are his and to be recognised by their father.</p> +<p>If a character has ‘having children’ - the <a href="intro.html#aspirations-and-goals"><strong>Ancestor</strong></a> aspiration, in my typology - as their key aim, then they will want to have sex. But to have children in this sense is to have acknowledged children, so while a male character may be motivated to have multiple female partners, he will never the less have some degree of long term committment to them, and will want both to feel confident that the children are his and to be recognised by their father.</p> <p>From the point of view of seeking to become an Ancestor, there is little benefit to the woman in having multiple partners, except in very harsh environments. It will be easier to give one partner confidence that all your children are his, and while a man can increase his number of potential progeny by having multiple wives, mistresses or other classes of long-term female sexual partners, a woman cannot.</p> <h2><a href="#why-have-children-" name="why-have-children-"></a>Why have children?</h2> <p>In modern Scotland, I have met a lot of women with a strong drive to have children for the sake of having children, where the best explanation they could give is that it’s instinctual; it may be so. But beyond that, in many cultures children provide their (acknowledged) parents with care and security in their old age, may tend their graves and perform belief-related services after they die, and carry on their name and their stories into the future.</p> @@ -25,4 +25,4 @@ <h2><a href="#why-else-have-sex-" name="why-else-have-sex-"></a>Why else have sex?</h2> <p>Sex, done right, is an extremely pleasant pastime. Sex can also be used to create and maintain bonds of committment, to demonstrate social status, to defuse tense situations, and transactionally in many ways, both formal and informal.</p> <p>For women, sex with other women carries with it no risk of pregnancy, so can be enjoyed or used for any of these purposes in very much the same way as it can by men; in other words, particularly for women, homosexual sex can be more lighthearted and carefree than heterosexual sex. To what extend our notions of homosexuality and heterosexuality are cultural I simply don’t know. But because no children will result, a woman can afford to be more promiscuous with other women than she can with men.</p> -<h2><a href="#how-does-this-impact-on" name="how-does-this-impact-on"></a>How does this impact on</h2></div></div></div></body></html> \ No newline at end of file +<p>## </p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.agent.agent.html b/docs/codox/the-great-game.agent.agent.html index 079a700..90c31c3 100644 --- a/docs/codox/the-great-game.agent.agent.html +++ b/docs/codox/the-great-game.agent.agent.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.agent.agent documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3 current"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.agent.agent</h1><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.agent.agent documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3 current"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.agent.agent</h1><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.gossip.gossip.html b/docs/codox/the-great-game.gossip.gossip.html index 177c964..aa503f5 100644 --- a/docs/codox/the-great-game.gossip.gossip.html +++ b/docs/codox/the-great-game.gossip.gossip.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.gossip documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-dialogue"><div class="inner"><span>dialogue</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-gather-news"><div class="inner"><span>gather-news</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-move-gossip"><div class="inner"><span>move-gossip</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.gossip</h1><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="public anchor" id="var-dialogue"><h3>dialogue</h3><div class="usage"><code>(dialogue enquirer respondent world)</code></div><div class="doc"><div class="markdown"><p>Dialogue between an <code>enquirer</code> and an <code>agent</code> in this <code>world</code>; returns a map identical to <code>enquirer</code> except that its <code>:gossip</code> collection may have additional entries.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L10">view source</a></div></div><div class="public anchor" id="var-gather-news"><h3>gather-news</h3><div class="usage"><code>(gather-news world)</code><code>(gather-news world gossip)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L18">view source</a></div></div><div class="public anchor" id="var-move-gossip"><h3>move-gossip</h3><div class="usage"><code>(move-gossip gossip world new-location)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> but with this <code>gossip</code> moved to this <code>new-location</code>. Many gossips are essentially shadow-records of agents of other types, and the movement of the gossip should be controlled by the run function of the type of the record they shadow. The <a href="null">#run</a> function below does NOT call this function.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L44">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with news items exchanged between gossip agents.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L62">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.gossip documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-dialogue"><div class="inner"><span>dialogue</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-gather-news"><div class="inner"><span>gather-news</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-move-gossip"><div class="inner"><span>move-gossip</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.gossip</h1><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="public anchor" id="var-dialogue"><h3>dialogue</h3><div class="usage"><code>(dialogue enquirer respondent world)</code></div><div class="doc"><div class="markdown"><p>Dialogue between an <code>enquirer</code> and an <code>agent</code> in this <code>world</code>; returns a map identical to <code>enquirer</code> except that its <code>:gossip</code> collection may have additional entries.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L10">view source</a></div></div><div class="public anchor" id="var-gather-news"><h3>gather-news</h3><div class="usage"><code>(gather-news world)</code><code>(gather-news world gossip)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L18">view source</a></div></div><div class="public anchor" id="var-move-gossip"><h3>move-gossip</h3><div class="usage"><code>(move-gossip gossip world new-location)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> but with this <code>gossip</code> moved to this <code>new-location</code>. Many gossips are essentially shadow-records of agents of other types, and the movement of the gossip should be controlled by the run function of the type of the record they shadow. The <a href="null">#run</a> function below does NOT call this function.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L44">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with news items exchanged between gossip agents.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L62">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.gossip.news-items.html b/docs/codox/the-great-game.gossip.news-items.html index ee90317..425c54d 100644 --- a/docs/codox/the-great-game.gossip.news-items.html +++ b/docs/codox/the-great-game.gossip.news-items.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.news-items documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3 current"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-character"><div class="inner"><span>degrade-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-location"><div class="inner"><span>degrade-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-infer"><div class="inner"><span>infer</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-character"><div class="inner"><span>interest-in-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-location"><div class="inner"><span>interest-in-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-character.3F"><div class="inner"><span>interesting-character?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-item.3F"><div class="inner"><span>interesting-item?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-location.3F"><div class="inner"><span>interesting-location?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-object.3F"><div class="inner"><span>interesting-object?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F"><div class="inner"><span>interesting-topic?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-learn-news-item"><div class="inner"><span>learn-news-item</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-make-all-inferences"><div class="inner"><span>make-all-inferences</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-news-topics"><div class="inner"><span>news-topics</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.news-items</h1><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="public anchor" id="var-degrade-character"><h3>degrade-character</h3><div class="usage"><code>(degrade-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Return a character specification like this <code>character</code>, but comprising only those properties this <code>gossip</code> is interested in.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L198">view source</a></div></div><div class="public anchor" id="var-degrade-location"><h3>degrade-location</h3><div class="usage"><code>(degrade-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Return a location specification like this <code>location</code>, but comprising only those elements this <code>gossip</code> is interested in. If none, return <code>nil</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L205">view source</a></div></div><div class="public anchor" id="var-infer"><h3>infer</h3><div class="usage"><code>(infer item rule)</code></div><div class="doc"><div class="markdown"><p>Infer a new knowledge item from this <code>item</code>, following this <code>rule</code></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L173">view source</a></div></div><div class="public anchor" id="var-interest-in-character"><h3>interest-in-character</h3><div class="usage"><code>(interest-in-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>character</code> is to this <code>gossip</code>. <em>TODO:</em> this assumes that characters are passed as keywords, but, as documented above, they probably have to be maps, to allow for degradation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L104">view source</a></div></div><div class="public anchor" id="var-interest-in-location"><h3>interest-in-location</h3><div class="usage"><code>(interest-in-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>location</code> is to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L121">view source</a></div></div><div class="public anchor" id="var-interesting-character.3F"><h3>interesting-character?</h3><div class="usage"><code>(interesting-character? gossip character)</code></div><div class="doc"><div class="markdown"><p>Boolean representation of whether this <code>character</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L115">view source</a></div></div><div class="public anchor" id="var-interesting-item.3F"><h3>interesting-item?</h3><div class="usage"><code>(interesting-item? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if anything about this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L163">view source</a></div></div><div class="public anchor" id="var-interesting-location.3F"><h3>interesting-location?</h3><div class="usage"><code>(interesting-location? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if the location of this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L148">view source</a></div></div><div class="public anchor" id="var-interesting-object.3F"><h3>interesting-object?</h3><div class="usage"><code>(interesting-object? gossip object)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L153">view source</a></div></div><div class="public anchor" id="var-interesting-topic.3F"><h3>interesting-topic?</h3><div class="usage"><code>(interesting-topic? gossip topic)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L158">view source</a></div></div><div class="public anchor" id="var-learn-news-item"><h3>learn-news-item</h3><div class="usage"><code>(learn-news-item gossip item)</code><code>(learn-news-item gossip item follow-inferences?)</code></div><div class="doc"><div class="markdown"><p>Return a gossip like this <code>gossip</code>, which has learned this news <code>item</code> if it is of interest to them.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L217">view source</a></div></div><div class="public anchor" id="var-make-all-inferences"><h3>make-all-inferences</h3><div class="usage"><code>(make-all-inferences item)</code></div><div class="doc"><div class="markdown"><p>Return a list of knowledge entries inferred from this news <code>item</code> by this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L187">view source</a></div></div><div class="public anchor" id="var-news-topics"><h3>news-topics</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Topics of interest to gossip agents. Topics are keyed in this map by their <code>verbs</code>. The <code>keys</code> associated with each topic are the extra pieces of information required to give context to a gossip item. Generally:</p> +<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.news-items documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3 current"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-character"><div class="inner"><span>degrade-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-location"><div class="inner"><span>degrade-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-infer"><div class="inner"><span>infer</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-character"><div class="inner"><span>interest-in-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-location"><div class="inner"><span>interest-in-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-character.3F"><div class="inner"><span>interesting-character?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-item.3F"><div class="inner"><span>interesting-item?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-location.3F"><div class="inner"><span>interesting-location?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-object.3F"><div class="inner"><span>interesting-object?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F"><div class="inner"><span>interesting-topic?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-learn-news-item"><div class="inner"><span>learn-news-item</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-make-all-inferences"><div class="inner"><span>make-all-inferences</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-news-topics"><div class="inner"><span>news-topics</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.news-items</h1><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="public anchor" id="var-degrade-character"><h3>degrade-character</h3><div class="usage"><code>(degrade-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Return a character specification like this <code>character</code>, but comprising only those properties this <code>gossip</code> is interested in.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L198">view source</a></div></div><div class="public anchor" id="var-degrade-location"><h3>degrade-location</h3><div class="usage"><code>(degrade-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Return a location specification like this <code>location</code>, but comprising only those elements this <code>gossip</code> is interested in. If none, return <code>nil</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L205">view source</a></div></div><div class="public anchor" id="var-infer"><h3>infer</h3><div class="usage"><code>(infer item rule)</code></div><div class="doc"><div class="markdown"><p>Infer a new knowledge item from this <code>item</code>, following this <code>rule</code></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L173">view source</a></div></div><div class="public anchor" id="var-interest-in-character"><h3>interest-in-character</h3><div class="usage"><code>(interest-in-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>character</code> is to this <code>gossip</code>. <em>TODO:</em> this assumes that characters are passed as keywords, but, as documented above, they probably have to be maps, to allow for degradation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L104">view source</a></div></div><div class="public anchor" id="var-interest-in-location"><h3>interest-in-location</h3><div class="usage"><code>(interest-in-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>location</code> is to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L121">view source</a></div></div><div class="public anchor" id="var-interesting-character.3F"><h3>interesting-character?</h3><div class="usage"><code>(interesting-character? gossip character)</code></div><div class="doc"><div class="markdown"><p>Boolean representation of whether this <code>character</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L115">view source</a></div></div><div class="public anchor" id="var-interesting-item.3F"><h3>interesting-item?</h3><div class="usage"><code>(interesting-item? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if anything about this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L163">view source</a></div></div><div class="public anchor" id="var-interesting-location.3F"><h3>interesting-location?</h3><div class="usage"><code>(interesting-location? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if the location of this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L148">view source</a></div></div><div class="public anchor" id="var-interesting-object.3F"><h3>interesting-object?</h3><div class="usage"><code>(interesting-object? gossip object)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L153">view source</a></div></div><div class="public anchor" id="var-interesting-topic.3F"><h3>interesting-topic?</h3><div class="usage"><code>(interesting-topic? gossip topic)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L158">view source</a></div></div><div class="public anchor" id="var-learn-news-item"><h3>learn-news-item</h3><div class="usage"><code>(learn-news-item gossip item)</code><code>(learn-news-item gossip item follow-inferences?)</code></div><div class="doc"><div class="markdown"><p>Return a gossip like this <code>gossip</code>, which has learned this news <code>item</code> if it is of interest to them.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L217">view source</a></div></div><div class="public anchor" id="var-make-all-inferences"><h3>make-all-inferences</h3><div class="usage"><code>(make-all-inferences item)</code></div><div class="doc"><div class="markdown"><p>Return a list of knowledge entries that can be inferred from this news <code>item</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L187">view source</a></div></div><div class="public anchor" id="var-news-topics"><h3>news-topics</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Topics of interest to gossip agents. Topics are keyed in this map by their <code>verbs</code>. The <code>keys</code> associated with each topic are the extra pieces of information required to give context to a gossip item. Generally:</p> <ul> <li><code>actor</code> is the id of the character who it is reported performed the action;</li> <li><code>other</code> is the id of the character on whom it is reported the action was performed;</li> diff --git a/docs/codox/the-great-game.merchants.markets.html b/docs/codox/the-great-game.merchants.markets.html index fa68c6e..5c3f0f8 100644 --- a/docs/codox/the-great-game.merchants.markets.html +++ b/docs/codox/the-great-game.merchants.markets.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.markets documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price"><div class="inner"><span>adjust-quantity-and-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-new-price"><div class="inner"><span>new-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-run"><div class="inner"><span>run</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-update-markets"><div class="inner"><span>update-markets</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.markets</h1><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="public anchor" id="var-adjust-quantity-and-price"><h3>adjust-quantity-and-price</h3><div class="usage"><code>(adjust-quantity-and-price world city commodity)</code></div><div class="doc"><div class="markdown"><p>Adjust the quantity of this <code>commodity</code> currently in stock in this <code>city</code> of this <code>world</code>. Return a fragmentary world which can be deep-merged into this world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L17">view source</a></div></div><div class="public anchor" id="var-new-price"><h3>new-price</h3><div class="usage"><code>(new-price old stock supply demand)</code></div><div class="doc"><div class="markdown"><p>If <code>stock</code> is greater than the maximum of <code>supply</code> and <code>demand</code>, then there is surplus and <code>old</code> price is too high, so shold be reduced. If lower, then it is too low and should be increased.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L6">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L79">view source</a></div></div><div class="public anchor" id="var-update-markets"><h3>update-markets</h3><div class="usage"><code>(update-markets world)</code><code>(update-markets world city)</code><code>(update-markets world city commodity)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand. If <code>city</code> or <code>city</code> and <code>commodity</code> are specified, return a fragmentary world with only the changes for that <code>city</code> (and <code>commodity</code> if specified) populated.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L57">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.markets documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price"><div class="inner"><span>adjust-quantity-and-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-new-price"><div class="inner"><span>new-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-run"><div class="inner"><span>run</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-update-markets"><div class="inner"><span>update-markets</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.markets</h1><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="public anchor" id="var-adjust-quantity-and-price"><h3>adjust-quantity-and-price</h3><div class="usage"><code>(adjust-quantity-and-price world city commodity)</code></div><div class="doc"><div class="markdown"><p>Adjust the quantity of this <code>commodity</code> currently in stock in this <code>city</code> of this <code>world</code>. Return a fragmentary world which can be deep-merged into this world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L17">view source</a></div></div><div class="public anchor" id="var-new-price"><h3>new-price</h3><div class="usage"><code>(new-price old stock supply demand)</code></div><div class="doc"><div class="markdown"><p>If <code>stock</code> is greater than the maximum of <code>supply</code> and <code>demand</code>, then there is surplus and <code>old</code> price is too high, so shold be reduced. If lower, then it is too low and should be increased.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L6">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L79">view source</a></div></div><div class="public anchor" id="var-update-markets"><h3>update-markets</h3><div class="usage"><code>(update-markets world)</code><code>(update-markets world city)</code><code>(update-markets world city commodity)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand. If <code>city</code> or <code>city</code> and <code>commodity</code> are specified, return a fragmentary world with only the changes for that <code>city</code> (and <code>commodity</code> if specified) populated.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L57">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.merchants.merchant-utils.html b/docs/codox/the-great-game.merchants.merchant-utils.html index 7667e12..a9df75a 100644 --- a/docs/codox/the-great-game.merchants.merchant-utils.html +++ b/docs/codox/the-great-game.merchants.merchant-utils.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchant-utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices"><div class="inner"><span>add-known-prices</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-stock"><div class="inner"><span>add-stock</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-burden"><div class="inner"><span>burden</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-afford"><div class="inner"><span>can-afford</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-carry"><div class="inner"><span>can-carry</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-expected-price"><div class="inner"><span>expected-price</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchant-utils</h1><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="public anchor" id="var-add-known-prices"><h3>add-known-prices</h3><div class="usage"><code>(add-known-prices merchant world)</code></div><div class="doc"><div class="markdown"><p>Add the current prices at this <code>merchant</code>’s location in the <code>world</code> to a new cache of known prices, and return it.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L82">view source</a></div></div><div class="public anchor" id="var-add-stock"><h3>add-stock</h3><div class="usage"><code>(add-stock a b)</code></div><div class="doc"><div class="markdown"><p>Where <code>a</code> and <code>b</code> are both maps all of whose values are numbers, return a map whose keys are a union of the keys of <code>a</code> and <code>b</code> and whose values are the sums of their respective values.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L70">view source</a></div></div><div class="public anchor" id="var-burden"><h3>burden</h3><div class="usage"><code>(burden merchant world)</code></div><div class="doc"><div class="markdown"><p>The total weight of the current cargo carried by this <code>merchant</code> in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L17">view source</a></div></div><div class="public anchor" id="var-can-afford"><h3>can-afford</h3><div class="usage"><code>(can-afford merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can afford to buy in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L50">view source</a></div></div><div class="public anchor" id="var-can-carry"><h3>can-carry</h3><div class="usage"><code>(can-carry merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can carry in this <code>world</code>, given their current burden.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L35">view source</a></div></div><div class="public anchor" id="var-expected-price"><h3>expected-price</h3><div class="usage"><code>(expected-price merchant commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the price anticipated, given this <code>world</code>, by this <code>merchant</code> for this <code>commodity</code> in this <code>city</code>. If no information, assume 1. <code>merchant</code> should be passed as a map, <code>commodity</code> and <code>city</code> should be passed as keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L4">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchant-utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices"><div class="inner"><span>add-known-prices</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-stock"><div class="inner"><span>add-stock</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-burden"><div class="inner"><span>burden</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-afford"><div class="inner"><span>can-afford</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-carry"><div class="inner"><span>can-carry</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-expected-price"><div class="inner"><span>expected-price</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchant-utils</h1><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="public anchor" id="var-add-known-prices"><h3>add-known-prices</h3><div class="usage"><code>(add-known-prices merchant world)</code></div><div class="doc"><div class="markdown"><p>Add the current prices at this <code>merchant</code>’s location in the <code>world</code> to a new cache of known prices, and return it.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L82">view source</a></div></div><div class="public anchor" id="var-add-stock"><h3>add-stock</h3><div class="usage"><code>(add-stock a b)</code></div><div class="doc"><div class="markdown"><p>Where <code>a</code> and <code>b</code> are both maps all of whose values are numbers, return a map whose keys are a union of the keys of <code>a</code> and <code>b</code> and whose values are the sums of their respective values.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L70">view source</a></div></div><div class="public anchor" id="var-burden"><h3>burden</h3><div class="usage"><code>(burden merchant world)</code></div><div class="doc"><div class="markdown"><p>The total weight of the current cargo carried by this <code>merchant</code> in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L17">view source</a></div></div><div class="public anchor" id="var-can-afford"><h3>can-afford</h3><div class="usage"><code>(can-afford merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can afford to buy in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L50">view source</a></div></div><div class="public anchor" id="var-can-carry"><h3>can-carry</h3><div class="usage"><code>(can-carry merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can carry in this <code>world</code>, given their current burden.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L35">view source</a></div></div><div class="public anchor" id="var-expected-price"><h3>expected-price</h3><div class="usage"><code>(expected-price merchant commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the price anticipated, given this <code>world</code>, by this <code>merchant</code> for this <code>commodity</code> in this <code>city</code>. If no information, assume 1. <code>merchant</code> should be passed as a map, <code>commodity</code> and <code>city</code> should be passed as keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L4">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.merchants.merchants.html b/docs/codox/the-great-game.merchants.merchants.html index d5abf84..6677b8b 100644 --- a/docs/codox/the-great-game.merchants.merchants.html +++ b/docs/codox/the-great-game.merchants.merchants.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchants documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchants.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchants</h1><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a partial world based on this <code>world</code>, but with each merchant moved.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchants.clj#L8">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchants documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchants.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchants</h1><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a partial world based on this <code>world</code>, but with each merchant moved.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchants.clj#L8">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.merchants.planning.html b/docs/codox/the-great-game.merchants.planning.html index 476d46a..a13ff3b 100644 --- a/docs/codox/the-great-game.merchants.planning.html +++ b/docs/codox/the-great-game.merchants.planning.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.planning documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-augment-plan"><div class="inner"><span>augment-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-generate-trade-plans"><div class="inner"><span>generate-trade-plans</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-nearest-with-targets"><div class="inner"><span>nearest-with-targets</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-plan-trade"><div class="inner"><span>plan-trade</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-select-cargo"><div class="inner"><span>select-cargo</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.planning</h1><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="public anchor" id="var-augment-plan"><h3>augment-plan</h3><div class="usage"><code>(augment-plan merchant world plan)</code></div><div class="doc"><div class="markdown"><p>Augment this <code>plan</code> constructed in this <code>world</code> for this <code>merchant</code> with the <code>:quantity</code> of goods which should be bought and the <code>:expected-profit</code> of the trade.</p> +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.planning documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-augment-plan"><div class="inner"><span>augment-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-generate-trade-plans"><div class="inner"><span>generate-trade-plans</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-nearest-with-targets"><div class="inner"><span>nearest-with-targets</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-plan-trade"><div class="inner"><span>plan-trade</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-select-cargo"><div class="inner"><span>select-cargo</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.planning</h1><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="public anchor" id="var-augment-plan"><h3>augment-plan</h3><div class="usage"><code>(augment-plan merchant world plan)</code></div><div class="doc"><div class="markdown"><p>Augment this <code>plan</code> constructed in this <code>world</code> for this <code>merchant</code> with the <code>:quantity</code> of goods which should be bought and the <code>:expected-profit</code> of the trade.</p> <p>Returns the augmented plan.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/planning.clj#L110">view source</a></div></div><div class="public anchor" id="var-generate-trade-plans"><h3>generate-trade-plans</h3><div class="usage"><code>(generate-trade-plans merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Generate all possible trade plans for this <code>merchant</code> and this <code>commodity</code> in this <code>world</code>.</p> <p>Returned plans are maps with keys:</p> <ul> diff --git a/docs/codox/the-great-game.merchants.strategies.simple.html b/docs/codox/the-great-game.merchants.strategies.simple.html index b1a47a3..f4d298e 100644 --- a/docs/codox/the-great-game.merchants.strategies.simple.html +++ b/docs/codox/the-great-game.merchants.strategies.simple.html @@ -1,4 +1,4 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.strategies.simple documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4 current"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-move-merchant"><div class="inner"><span>move-merchant</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy"><div class="inner"><span>plan-and-buy</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-re-plan"><div class="inner"><span>re-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy"><div class="inner"><span>sell-and-buy</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.strategies.simple</h1><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p> +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.strategies.simple documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4 current"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-move-merchant"><div class="inner"><span>move-merchant</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy"><div class="inner"><span>plan-and-buy</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-re-plan"><div class="inner"><span>re-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy"><div class="inner"><span>sell-and-buy</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.strategies.simple</h1><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p> <p>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.</p></div></div><div class="public anchor" id="var-move-merchant"><h3>move-merchant</h3><div class="usage"><code>(move-merchant merchant world)</code></div><div class="doc"><div class="markdown"><p>Handle general en route movement of this <code>merchant</code> in this <code>world</code>; return a (partial or full) world like this <code>world</code> but in which the merchant may have been moved ot updated.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L126">view source</a></div></div><div class="public anchor" id="var-plan-and-buy"><h3>plan-and-buy</h3><div class="usage"><code>(plan-and-buy merchant world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, in which this <code>merchant</code> 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.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L17">view source</a></div></div><div class="public anchor" id="var-re-plan"><h3>re-plan</h3><div class="usage"><code>(re-plan merchant world)</code></div><div class="doc"><div class="markdown"><p>Having failed to sell a cargo at current location, re-plan a route to sell the current cargo. Returns a revised world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L65">view source</a></div></div><div class="public anchor" id="var-sell-and-buy"><h3>sell-and-buy</h3><div class="usage"><code>(sell-and-buy merchant world)</code></div><div class="doc"><div class="markdown"><p>Return a new world like this <code>world</code>, in which this <code>merchant</code> has sold their current stock in their current location, and planned a new trade, and bought appropriate stock for it.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L84">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.time.html b/docs/codox/the-great-game.time.html index 2fc8c02..f8e3c46 100644 --- a/docs/codox/the-great-game.time.html +++ b/docs/codox/the-great-game.time.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.time documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.time.html#var-canonical-ordering-of-houses"><div class="inner"><span>canonical-ordering-of-houses</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-date-string"><div class="inner"><span>date-string</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day"><div class="inner"><span>day</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day-of-year"><div class="inner"><span>day-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-season"><div class="inner"><span>days-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-week"><div class="inner"><span>days-in-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-of-week"><div class="inner"><span>days-of-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-day-length"><div class="inner"><span>game-day-length</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-start-time"><div class="inner"><span>game-start-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-time"><div class="inner"><span>game-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-now"><div class="inner"><span>now</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-season"><div class="inner"><span>season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-in-year"><div class="inner"><span>seasons-in-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-of-year"><div class="inner"><span>seasons-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-waiting-day.3F"><div class="inner"><span>waiting-day?</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-week"><div class="inner"><span>week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-in-season"><div class="inner"><span>weeks-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-of-season"><div class="inner"><span>weeks-of-season</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.time</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-canonical-ordering-of-houses"><h3>canonical-ordering-of-houses</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The canonical ordering of religious houses.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L26">view source</a></div></div><div class="public anchor" id="var-date-string"><h3>date-string</h3><div class="usage"><code>(date-string game-time)</code></div><div class="doc"><div class="markdown"><p>Return a correctly formatted date for this <code>game-time</code> in the calendar of the Great Place.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L124">view source</a></div></div><div class="public anchor" id="var-day"><h3>day</h3><div class="usage"><code>(day game-time)</code></div><div class="doc"><div class="markdown"><p>Day of the eight-day week represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L100">view source</a></div></div><div class="public anchor" id="var-day-of-year"><h3>day-of-year</h3><h4 class="type">macro</h4><div class="usage"><code>(day-of-year game-time)</code></div><div class="doc"><div class="markdown"><p>The day of the year represented by this <code>game-time</code>, ignoring leap years.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L85">view source</a></div></div><div class="public anchor" id="var-days-in-season"><h3>days-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L75">view source</a></div></div><div class="public anchor" id="var-days-in-week"><h3>days-in-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>This world has an eight day week.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L43">view source</a></div></div><div class="public anchor" id="var-days-of-week"><h3>days-of-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The eight-day week of the game world. This differs from the canonical ordering of houses in that it omits the eye.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L38">view source</a></div></div><div class="public anchor" id="var-game-day-length"><h3>game-day-length</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The Java clock advances in milliseconds, which is fine. But we need game-days to be shorter than real world days. A Witcher 3 game day is 1 hour 36 minutes, or 96 minutes, which is presumably researched. Round it up to 100 minutes for easier calculation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L8">view source</a></div></div><div class="public anchor" id="var-game-start-time"><h3>game-start-time</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The start time of this run.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L4">view source</a></div></div><div class="public anchor" id="var-game-time"><h3>game-time</h3><div class="usage"><code>(game-time)</code><code>(game-time timestamp)</code></div><div class="doc"><div class="markdown"><p>With no arguments, the current game time. If a Java <code>timestamp</code> value is passed (as a <code>long</code>), the game time represented by that value.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L78">view source</a></div></div><div class="public anchor" id="var-now"><h3>now</h3><div class="usage"><code>(now)</code></div><div class="doc"><div class="markdown"><p>For now, we’ll use Java timestamp for time; ultimately, we need a concept of game-time which allows us to drive day/night cycle, seasons, et cetera, but what matters about time is that it is a value which increases.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L18">view source</a></div></div><div class="public anchor" id="var-season"><h3>season</h3><div class="usage"><code>(season game-time)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L117">view source</a></div></div><div class="public anchor" id="var-seasons-in-year"><h3>seasons-in-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Nine seasons in a year, one for each house (although the order is different.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L60">view source</a></div></div><div class="public anchor" id="var-seasons-of-year"><h3>seasons-of-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The ordering of seasons in the year is different from the canonical ordering of the houses, for reasons of the agricultural cycle.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L47">view source</a></div></div><div class="public anchor" id="var-waiting-day.3F"><h3>waiting-day?</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Does this <code>game-time</code> represent a waiting day?</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L90">view source</a></div></div><div class="public anchor" id="var-week"><h3>week</h3><div class="usage"><code>(week game-time)</code></div><div class="doc"><div class="markdown"><p>Week of season represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L108">view source</a></div></div><div class="public anchor" id="var-weeks-in-season"><h3>weeks-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L70">view source</a></div></div><div class="public anchor" id="var-weeks-of-season"><h3>weeks-of-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L65">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.time documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.time.html#var-canonical-ordering-of-houses"><div class="inner"><span>canonical-ordering-of-houses</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-date-string"><div class="inner"><span>date-string</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day"><div class="inner"><span>day</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day-of-year"><div class="inner"><span>day-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-season"><div class="inner"><span>days-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-week"><div class="inner"><span>days-in-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-of-week"><div class="inner"><span>days-of-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-day-length"><div class="inner"><span>game-day-length</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-start-time"><div class="inner"><span>game-start-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-time"><div class="inner"><span>game-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-now"><div class="inner"><span>now</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-season"><div class="inner"><span>season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-in-year"><div class="inner"><span>seasons-in-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-of-year"><div class="inner"><span>seasons-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-waiting-day.3F"><div class="inner"><span>waiting-day?</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-week"><div class="inner"><span>week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-in-season"><div class="inner"><span>weeks-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-of-season"><div class="inner"><span>weeks-of-season</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.time</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-canonical-ordering-of-houses"><h3>canonical-ordering-of-houses</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The canonical ordering of religious houses.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L26">view source</a></div></div><div class="public anchor" id="var-date-string"><h3>date-string</h3><div class="usage"><code>(date-string game-time)</code></div><div class="doc"><div class="markdown"><p>Return a correctly formatted date for this <code>game-time</code> in the calendar of the Great Place.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L124">view source</a></div></div><div class="public anchor" id="var-day"><h3>day</h3><div class="usage"><code>(day game-time)</code></div><div class="doc"><div class="markdown"><p>Day of the eight-day week represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L100">view source</a></div></div><div class="public anchor" id="var-day-of-year"><h3>day-of-year</h3><h4 class="type">macro</h4><div class="usage"><code>(day-of-year game-time)</code></div><div class="doc"><div class="markdown"><p>The day of the year represented by this <code>game-time</code>, ignoring leap years.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L85">view source</a></div></div><div class="public anchor" id="var-days-in-season"><h3>days-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L75">view source</a></div></div><div class="public anchor" id="var-days-in-week"><h3>days-in-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>This world has an eight day week.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L43">view source</a></div></div><div class="public anchor" id="var-days-of-week"><h3>days-of-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The eight-day week of the game world. This differs from the canonical ordering of houses in that it omits the eye.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L38">view source</a></div></div><div class="public anchor" id="var-game-day-length"><h3>game-day-length</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The Java clock advances in milliseconds, which is fine. But we need game-days to be shorter than real world days. A Witcher 3 game day is 1 hour 36 minutes, or 96 minutes, which is presumably researched. Round it up to 100 minutes for easier calculation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L8">view source</a></div></div><div class="public anchor" id="var-game-start-time"><h3>game-start-time</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The start time of this run.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L4">view source</a></div></div><div class="public anchor" id="var-game-time"><h3>game-time</h3><div class="usage"><code>(game-time)</code><code>(game-time timestamp)</code></div><div class="doc"><div class="markdown"><p>With no arguments, the current game time. If a Java <code>timestamp</code> value is passed (as a <code>long</code>), the game time represented by that value.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L78">view source</a></div></div><div class="public anchor" id="var-now"><h3>now</h3><div class="usage"><code>(now)</code></div><div class="doc"><div class="markdown"><p>For now, we’ll use Java timestamp for time; ultimately, we need a concept of game-time which allows us to drive day/night cycle, seasons, et cetera, but what matters about time is that it is a value which increases.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L18">view source</a></div></div><div class="public anchor" id="var-season"><h3>season</h3><div class="usage"><code>(season game-time)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L117">view source</a></div></div><div class="public anchor" id="var-seasons-in-year"><h3>seasons-in-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Nine seasons in a year, one for each house (although the order is different.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L60">view source</a></div></div><div class="public anchor" id="var-seasons-of-year"><h3>seasons-of-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The ordering of seasons in the year is different from the canonical ordering of the houses, for reasons of the agricultural cycle.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L47">view source</a></div></div><div class="public anchor" id="var-waiting-day.3F"><h3>waiting-day?</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Does this <code>game-time</code> represent a waiting day?</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L90">view source</a></div></div><div class="public anchor" id="var-week"><h3>week</h3><div class="usage"><code>(week game-time)</code></div><div class="doc"><div class="markdown"><p>Week of season represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L108">view source</a></div></div><div class="public anchor" id="var-weeks-in-season"><h3>weeks-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L70">view source</a></div></div><div class="public anchor" id="var-weeks-of-season"><h3>weeks-of-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L65">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.utils.html b/docs/codox/the-great-game.utils.html index b52db2b..c8684dc 100644 --- a/docs/codox/the-great-game.utils.html +++ b/docs/codox/the-great-game.utils.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.utils.html#var-cyclic.3F"><div class="inner"><span>cyclic?</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-deep-merge"><div class="inner"><span>deep-merge</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-make-target-filter"><div class="inner"><span>make-target-filter</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.utils</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-cyclic.3F"><h3>cyclic?</h3><div class="usage"><code>(cyclic? route)</code></div><div class="doc"><div class="markdown"><p>True if two or more elements of <code>route</code> are identical</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L3">view source</a></div></div><div class="public anchor" id="var-deep-merge"><h3>deep-merge</h3><div class="usage"><code>(deep-merge & maps)</code></div><div class="doc"><div class="markdown"><p>Recursively merges maps. Stolen from <a href="https://dnaeon.github.io/recursively-merging-maps-in-clojure/">https://dnaeon.github.io/recursively-merging-maps-in-clojure/</a></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L8">view source</a></div></div><div class="public anchor" id="var-make-target-filter"><h3>make-target-filter</h3><div class="usage"><code>(make-target-filter targets)</code></div><div class="doc"><div class="markdown"><p>Construct a filter which, when applied to a list of maps, will pass those which match these <code>targets</code>, where each target is a tuple [key value].</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L18">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.utils.html#var-cyclic.3F"><div class="inner"><span>cyclic?</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-deep-merge"><div class="inner"><span>deep-merge</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-make-target-filter"><div class="inner"><span>make-target-filter</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.utils</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-cyclic.3F"><h3>cyclic?</h3><div class="usage"><code>(cyclic? route)</code></div><div class="doc"><div class="markdown"><p>True if two or more elements of <code>route</code> are identical</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L3">view source</a></div></div><div class="public anchor" id="var-deep-merge"><h3>deep-merge</h3><div class="usage"><code>(deep-merge & maps)</code></div><div class="doc"><div class="markdown"><p>Recursively merges maps. Stolen from <a href="https://dnaeon.github.io/recursively-merging-maps-in-clojure/">https://dnaeon.github.io/recursively-merging-maps-in-clojure/</a></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L8">view source</a></div></div><div class="public anchor" id="var-make-target-filter"><h3>make-target-filter</h3><div class="usage"><code>(make-target-filter targets)</code></div><div class="doc"><div class="markdown"><p>Construct a filter which, when applied to a list of maps, will pass those which match these <code>targets</code>, where each target is a tuple [key value].</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L18">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.location.html b/docs/codox/the-great-game.world.location.html index 641a92c..17995a4 100644 --- a/docs/codox/the-great-game.world.location.html +++ b/docs/codox/the-great-game.world.location.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.location documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.location.html#var-distance-between"><div class="inner"><span>distance-between</span></div></a></li><li class="depth-1"><a href="the-great-game.world.location.html#var-get-coords"><div class="inner"><span>get-coords</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.location</h1><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="public anchor" id="var-distance-between"><h3>distance-between</h3><div class="usage"><code>(distance-between location-1 location-2)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L31">view source</a></div></div><div class="public anchor" id="var-get-coords"><h3>get-coords</h3><div class="usage"><code>(get-coords location)</code></div><div class="doc"><div class="markdown"><p>Return the coordinates in the game world of <code>location</code>, 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 <code>:location</code> property whose value is one of the above.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L13">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.location documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.location.html#var-distance-between"><div class="inner"><span>distance-between</span></div></a></li><li class="depth-1"><a href="the-great-game.world.location.html#var-get-coords"><div class="inner"><span>get-coords</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.location</h1><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="public anchor" id="var-distance-between"><h3>distance-between</h3><div class="usage"><code>(distance-between location-1 location-2)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L31">view source</a></div></div><div class="public anchor" id="var-get-coords"><h3>get-coords</h3><div class="usage"><code>(get-coords location)</code></div><div class="doc"><div class="markdown"><p>Return the coordinates in the game world of <code>location</code>, 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 <code>:location</code> property whose value is one of the above.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L13">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.routes.html b/docs/codox/the-great-game.world.routes.html index 725f405..db9aca6 100644 --- a/docs/codox/the-great-game.world.routes.html +++ b/docs/codox/the-great-game.world.routes.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.routes documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-route"><div class="inner"><span>find-route</span></div></a></li><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-routes"><div class="inner"><span>find-routes</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.routes</h1><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="public anchor" id="var-find-route"><h3>find-route</h3><div class="usage"><code>(find-route world-or-routes from to)</code></div><div class="doc"><div class="markdown"><p>Find a single route from <code>from</code> to <code>to</code> in this <code>world-or-routes</code>, which may be either a world as defined in <a href="the-great-game.world.world.html">the-great-game.world.world</a> or else a sequence of tuples of keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L46">view source</a></div></div><div class="public anchor" id="var-find-routes"><h3>find-routes</h3><div class="usage"><code>(find-routes routes from)</code><code>(find-routes routes from to)</code><code>(find-routes routes from to steps)</code></div><div class="doc"><div class="markdown"><p>Find routes from among these <code>routes</code> from <code>from</code>; if <code>to</code> is supplied, to <code>to</code>, by breadth-first search.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L5">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.routes documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-route"><div class="inner"><span>find-route</span></div></a></li><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-routes"><div class="inner"><span>find-routes</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.routes</h1><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="public anchor" id="var-find-route"><h3>find-route</h3><div class="usage"><code>(find-route world-or-routes from to)</code></div><div class="doc"><div class="markdown"><p>Find a single route from <code>from</code> to <code>to</code> in this <code>world-or-routes</code>, which may be either a world as defined in <a href="the-great-game.world.world.html">the-great-game.world.world</a> or else a sequence of tuples of keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L46">view source</a></div></div><div class="public anchor" id="var-find-routes"><h3>find-routes</h3><div class="usage"><code>(find-routes routes from)</code><code>(find-routes routes from to)</code><code>(find-routes routes from to steps)</code></div><div class="doc"><div class="markdown"><p>Find routes from among these <code>routes</code> from <code>from</code>; if <code>to</code> is supplied, to <code>to</code>, by breadth-first search.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L5">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.run.html b/docs/codox/the-great-game.world.run.html index 277b977..30a7964 100644 --- a/docs/codox/the-great-game.world.run.html +++ b/docs/codox/the-great-game.world.run.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.run documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.run.html#var-init"><div class="inner"><span>init</span></div></a></li><li class="depth-1"><a href="the-great-game.world.run.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.run</h1><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="public anchor" id="var-init"><h3>init</h3><div class="usage"><code>(init)</code><code>(init config)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L11">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>The pipeline to run the simulation each game day. Returns a world like this world, with all the various active elements updated. The optional <code>date</code> argument, if supplied, is set as the <code>:date</code> of the returned world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L26">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.run documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.run.html#var-init"><div class="inner"><span>init</span></div></a></li><li class="depth-1"><a href="the-great-game.world.run.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.run</h1><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="public anchor" id="var-init"><h3>init</h3><div class="usage"><code>(init)</code><code>(init config)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L11">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>The pipeline to run the simulation each game day. Returns a world like this world, with all the various active elements updated. The optional <code>date</code> argument, if supplied, is set as the <code>:date</code> of the returned world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L26">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.world.html b/docs/codox/the-great-game.world.world.html index 67d8c86..b093291 100644 --- a/docs/codox/the-great-game.world.world.html +++ b/docs/codox/the-great-game.world.world.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.world documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="orgnic-quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3 current"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.world.html#var-actual-price"><div class="inner"><span>actual-price</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-default-world"><div class="inner"><span>default-world</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.world</h1><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="public anchor" id="var-actual-price"><h3>actual-price</h3><div class="usage"><code>(actual-price world commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the actual current price of this <code>commodity</code> in this <code>city</code> given this <code>world</code>. <strong>NOTE</strong> that merchants can only know the actual prices in the city in which they are currently located.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L178">view source</a></div></div><div class="public anchor" id="var-default-world"><h3>default-world</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>A basic world for testing concepts</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L10">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> with only the <code>:date</code> to this <code>date</code> (or id <code>date</code> not supplied, the current value incremented by one). For running other aspects of the simulation, see <a href="the-great-game.world.run.html">the-great-game.world.run</a>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L185">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.world documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3 current"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.world.html#var-actual-price"><div class="inner"><span>actual-price</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-default-world"><div class="inner"><span>default-world</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.world</h1><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="public anchor" id="var-actual-price"><h3>actual-price</h3><div class="usage"><code>(actual-price world commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the actual current price of this <code>commodity</code> in this <code>city</code> given this <code>world</code>. <strong>NOTE</strong> that merchants can only know the actual prices in the city in which they are currently located.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L178">view source</a></div></div><div class="public anchor" id="var-default-world"><h3>default-world</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>A basic world for testing concepts</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L10">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> with only the <code>:date</code> to this <code>date</code> (or id <code>date</code> not supplied, the current value incremented by one). For running other aspects of the simulation, see <a href="the-great-game.world.run.html">the-great-game.world.run</a>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L185">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/src/the_great_game/architecture.md b/src/the_great_game/architecture.md new file mode 100644 index 0000000..75aeb7e --- /dev/null +++ b/src/the_great_game/architecture.md @@ -0,0 +1,40 @@ +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. + +There is a master map - the `oblist` which contains every object, keyed by its :id. + +Every object has a :run function, which returns either a new copy of itself or nil, and does not have side effects. + +Every object has a :location function, which takes one argument, the object, and returns its location as a coordinate pair (or coordinate triple, probably) (this may involve fetching the location from the container in which it is contained, which implies that a contained object must hold a handle to its container). + +Every collection of things in the world is represented as a list of :id values, by which the actual objects can be fetched from the `oblist`. + +## Circles + +Among those collections are the circles. The circles include, at minimum + +1. Those objects in audible/visual range of the player; these have their run method invoked avery game loop. Weather, is always in this circle. The sun and moon are in this circle from shortly becore they rise to shortly after they set. +2. Those objects which might come into audible/visual range within a short period; these have their run method invoked every N game loops, where N is probably variable depending on overall system load +3. Those objects (actors) which are necessary to maintain the gossip system, etc. These should each have their run method invoked once per game day, but that is done by invoking the run method of a share of them each game loop. + +So `run` takes three arguments - the object, the world and the circle; and returns nil if it makes no change, or a new copy of itself; and probably each of the main functions that run calls have the same behaviour. So, for example, a hierarchy of needs can be represented by + + + (defn run [character world circle] + (first + (handle-immediate-threat character world circle) ;; if being attacked, deal with it + (complete-current-action character world circle) ;; otherwise, continue the current + ;; short-term unless completed + (handle-thirst character world circle) ;; perhaps adjust tactical plan to find water + (handle-hunger character world circle) ;; perhaps adjust tactical plan to find food + (handle-fatigue character world circle) ;; perhaps rest if safe to do so + (advance-current-plan character world circle) ;; select next step of current strategic plan + (select-next-plan character world circle) ;; plan new strategic objective + (return-home character world circle))) ;; if no other strategic objective, return + ;; to home location + + +Atoms? Background threads? From 811a28315c4a171feb10b6a8b223d45d75b72727 Mon Sep 17 00:00:00 2001 From: Simon Brooke <simon@journeyman.cc> Date: Fri, 19 Feb 2021 23:42:10 +0000 Subject: [PATCH 12/12] Version 0.1.1 --- docs/cloverage/index.html | 125 ++-- .../the_great_game/gossip/gossip.clj.html | 4 +- .../the_great_game/gossip/news_items.clj.html | 538 +++++++++--------- .../the_great_game/merchants/markets.clj.html | 20 +- .../merchants/merchant_utils.clj.html | 12 +- .../merchants/planning.clj.html | 14 +- .../merchants/strategies/simple.clj.html | 24 +- docs/cloverage/the_great_game/time.clj.html | 28 +- docs/cloverage/the_great_game/utils.clj.html | 4 +- .../the_great_game/world/location.clj.html | 2 +- .../the_great_game/world/routes.clj.html | 8 +- .../the_great_game/world/run.clj.html | 2 +- .../the_great_game/world/world.clj.html | 2 +- docs/codox/Baking-the-world.html | 2 +- docs/codox/Game_Play.html | 2 +- ...p_scripted_plot_and_Johnny_Silverhand.html | 2 +- docs/codox/Organic_Quests.html | 2 +- docs/codox/Populating-a-game-world.html | 2 +- docs/codox/Settling-a-game-world.html | 2 +- docs/codox/Simulation-layers.html | 2 +- ...ad-of-knowledge-in-a-large-game-world.html | 2 +- docs/codox/Uncanny_dialogue.html | 2 +- .../Voice-acting-considered-harmful.html | 2 +- docs/codox/economy.html | 2 +- docs/codox/index.html | 2 +- docs/codox/intro.html | 2 +- .../modelling_trading_cost_and_risk.html | 2 +- docs/codox/naming-of-characters.html | 2 +- docs/codox/on-dying.html | 2 +- docs/codox/sandbox.html | 2 +- docs/codox/sexual-dimorphism.html | 2 +- docs/codox/the-great-game.agent.agent.html | 2 +- docs/codox/the-great-game.gossip.gossip.html | 2 +- .../the-great-game.gossip.news-items.html | 2 +- .../the-great-game.merchants.markets.html | 2 +- ...e-great-game.merchants.merchant-utils.html | 2 +- .../the-great-game.merchants.merchants.html | 2 +- .../the-great-game.merchants.planning.html | 2 +- ...reat-game.merchants.strategies.simple.html | 2 +- docs/codox/the-great-game.time.html | 2 +- docs/codox/the-great-game.utils.html | 2 +- docs/codox/the-great-game.world.location.html | 2 +- docs/codox/the-great-game.world.routes.html | 2 +- docs/codox/the-great-game.world.run.html | 2 +- docs/codox/the-great-game.world.world.html | 2 +- project.clj | 2 +- 46 files changed, 434 insertions(+), 415 deletions(-) diff --git a/docs/cloverage/index.html b/docs/cloverage/index.html index 516511b..237af9c 100644 --- a/docs/cloverage/index.html +++ b/docs/cloverage/index.html @@ -14,24 +14,13 @@ <td class="with-number">Lines %</td> <td class="with-number">Total</td><td class="with-number">Blank</td><td class="with-number">Instrumented</td> </tr></thead> -<tr> - <td><a href="the_great_game/agent/agent.clj.html">the-great-game.agent.agent</a></td><td class="with-bar"><div class="covered" - style="width:100.0%; - float:left;"> 1 </div></td> -<td class="with-number">100.00 %</td> -<td class="with-bar"><div class="covered" - style="width:100.0%; - float:left;"> 1 </div></td> -<td class="with-number">100.00 %</td> -<td class="with-number">7</td><td class="with-number">2</td><td class="with-number">1</td> -</tr> <tr> <td><a href="the_great_game/gossip/gossip.clj.html">the-great-game.gossip.gossip</a></td><td class="with-bar"><div class="covered" - style="width:4.545454545454546%; + style="width:4.62962962962963%; float:left;"> 5 </div><div class="not-covered" - style="width:95.45454545454545%; - float:left;"> 105 </div></td> -<td class="with-number">4.55 %</td> + style="width:95.37037037037037%; + float:left;"> 103 </div></td> +<td class="with-number">4.63 %</td> <td class="with-bar"><div class="covered" style="width:12.820512820512821%; float:left;"> 5 </div><div class="not-covered" @@ -42,28 +31,28 @@ </tr> <tr> <td><a href="the_great_game/gossip/news_items.clj.html">the-great-game.gossip.news-items</a></td><td class="with-bar"><div class="covered" - style="width:92.73422562141491%; - float:left;"> 485 </div><div class="not-covered" - style="width:7.265774378585086%; - float:left;"> 38 </div></td> -<td class="with-number">92.73 %</td> + style="width:92.80155642023347%; + float:left;"> 477 </div><div class="not-covered" + style="width:7.198443579766537%; + float:left;"> 37 </div></td> +<td class="with-number">92.80 %</td> <td class="with-bar"><div class="covered" - style="width:87.5%; - float:left;"> 91 </div><div class="partial" - style="width:8.653846153846153%; - float:left;"> 9 </div><div class="not-covered" - style="width:3.8461538461538463%; - float:left;"> 4 </div></td> -<td class="with-number">96.15 %</td> -<td class="with-number">246</td><td class="with-number">30</td><td class="with-number">104</td> + style="width:88.07339449541284%; + float:left;"> 96 </div><div class="partial" + style="width:7.339449541284404%; + float:left;"> 8 </div><div class="not-covered" + style="width:4.587155963302752%; + float:left;"> 5 </div></td> +<td class="with-number">95.41 %</td> +<td class="with-number">256</td><td class="with-number">31</td><td class="with-number">109</td> </tr> <tr> <td><a href="the_great_game/merchants/markets.clj.html">the-great-game.merchants.markets</a></td><td class="with-bar"><div class="covered" - style="width:96.71361502347418%; - float:left;"> 206 </div><div class="not-covered" - style="width:3.2863849765258215%; + style="width:96.46464646464646%; + float:left;"> 191 </div><div class="not-covered" + style="width:3.5353535353535355%; float:left;"> 7 </div></td> -<td class="with-number">96.71 %</td> +<td class="with-number">96.46 %</td> <td class="with-bar"><div class="covered" style="width:93.18181818181819%; float:left;"> 41 </div><div class="partial" @@ -76,11 +65,11 @@ </tr> <tr> <td><a href="the_great_game/merchants/merchant_utils.clj.html">the-great-game.merchants.merchant-utils</a></td><td class="with-bar"><div class="covered" - style="width:66.12377850162866%; - float:left;"> 203 </div><div class="not-covered" - style="width:33.876221498371336%; + style="width:65.4485049833887%; + float:left;"> 197 </div><div class="not-covered" + style="width:34.5514950166113%; float:left;"> 104 </div></td> -<td class="with-number">66.12 %</td> +<td class="with-number">65.45 %</td> <td class="with-bar"><div class="covered" style="width:66.66666666666667%; float:left;"> 48 </div><div class="partial" @@ -108,11 +97,11 @@ </tr> <tr> <td><a href="the_great_game/merchants/planning.clj.html">the-great-game.merchants.planning</a></td><td class="with-bar"><div class="covered" - style="width:88.88888888888889%; - float:left;"> 264 </div><div class="not-covered" - style="width:11.11111111111111%; - float:left;"> 33 </div></td> -<td class="with-number">88.89 %</td> + style="width:89.27335640138408%; + float:left;"> 258 </div><div class="not-covered" + style="width:10.726643598615917%; + float:left;"> 31 </div></td> +<td class="with-number">89.27 %</td> <td class="with-bar"><div class="covered" style="width:83.52941176470588%; float:left;"> 71 </div><div class="partial" @@ -125,11 +114,11 @@ </tr> <tr> <td><a href="the_great_game/merchants/strategies/simple.clj.html">the-great-game.merchants.strategies.simple</a></td><td class="with-bar"><div class="covered" - style="width:0.8103727714748784%; + style="width:0.8264462809917356%; float:left;"> 5 </div><div class="not-covered" - style="width:99.18962722852513%; - float:left;"> 612 </div></td> -<td class="with-number">0.81 %</td> + style="width:99.17355371900827%; + float:left;"> 600 </div></td> +<td class="with-number">0.83 %</td> <td class="with-bar"><div class="covered" style="width:4.032258064516129%; float:left;"> 5 </div><div class="not-covered" @@ -140,11 +129,11 @@ </tr> <tr> <td><a href="the_great_game/time.clj.html">the-great-game.time</a></td><td class="with-bar"><div class="covered" - style="width:99.62121212121212%; - float:left;"> 263 </div><div class="not-covered" - style="width:0.3787878787878788%; + style="width:99.5850622406639%; + float:left;"> 240 </div><div class="not-covered" + style="width:0.4149377593360996%; float:left;"> 1 </div></td> -<td class="with-number">99.62 %</td> +<td class="with-number">99.59 %</td> <td class="with-bar"><div class="covered" style="width:98.33333333333333%; float:left;"> 59 </div><div class="partial" @@ -156,7 +145,7 @@ <tr> <td><a href="the_great_game/utils.clj.html">the-great-game.utils</a></td><td class="with-bar"><div class="covered" style="width:100.0%; - float:left;"> 72 </div></td> + float:left;"> 69 </div></td> <td class="with-number">100.00 %</td> <td class="with-bar"><div class="covered" style="width:100.0%; @@ -166,11 +155,11 @@ </tr> <tr> <td><a href="the_great_game/world/location.clj.html">the-great-game.world.location</a></td><td class="with-bar"><div class="covered" - style="width:88.37209302325581%; - float:left;"> 76 </div><div class="not-covered" - style="width:11.627906976744185%; + style="width:87.95180722891567%; + float:left;"> 73 </div><div class="not-covered" + style="width:12.048192771084338%; float:left;"> 10 </div></td> -<td class="with-number">88.37 %</td> +<td class="with-number">87.95 %</td> <td class="with-bar"><div class="covered" style="width:70.58823529411765%; float:left;"> 12 </div><div class="partial" @@ -183,11 +172,11 @@ </tr> <tr> <td><a href="the_great_game/world/routes.clj.html">the-great-game.world.routes</a></td><td class="with-bar"><div class="covered" - style="width:99.21875%; - float:left;"> 127 </div><div class="not-covered" - style="width:0.78125%; + style="width:99.19354838709677%; + float:left;"> 123 </div><div class="not-covered" + style="width:0.8064516129032258%; float:left;"> 1 </div></td> -<td class="with-number">99.22 %</td> +<td class="with-number">99.19 %</td> <td class="with-bar"><div class="covered" style="width:97.61904761904762%; float:left;"> 41 </div><div class="partial" @@ -198,11 +187,11 @@ </tr> <tr> <td><a href="the_great_game/world/run.clj.html">the-great-game.world.run</a></td><td class="with-bar"><div class="covered" - style="width:4.918032786885246%; + style="width:5.0%; float:left;"> 3 </div><div class="not-covered" - style="width:95.08196721311475%; - float:left;"> 58 </div></td> -<td class="with-number">4.92 %</td> + style="width:95.0%; + float:left;"> 57 </div></td> +<td class="with-number">5.00 %</td> <td class="with-bar"><div class="covered" style="width:15.0%; float:left;"> 3 </div><div class="not-covered" @@ -213,11 +202,11 @@ </tr> <tr> <td><a href="the_great_game/world/world.clj.html">the-great-game.world.world</a></td><td class="with-bar"><div class="covered" - style="width:95.89041095890411%; + style="width:96.10983981693364%; float:left;"> 420 </div><div class="not-covered" - style="width:4.109589041095891%; - float:left;"> 18 </div></td> -<td class="with-number">95.89 %</td> + style="width:3.8901601830663615%; + float:left;"> 17 </div></td> +<td class="with-number">96.11 %</td> <td class="with-bar"><div class="covered" style="width:97.01492537313433%; float:left;"> 65 </div><div class="not-covered" @@ -228,9 +217,9 @@ </tr> <tr><td>Totals:</td> <td class="with-bar"></td> -<td class="with-number">66.88 %</td> +<td class="with-number">66.55 %</td> <td class="with-bar"></td> -<td class="with-number">68.59 %</td> +<td class="with-number">68.63 %</td> </tr> </table> </body> diff --git a/docs/cloverage/the_great_game/gossip/gossip.clj.html b/docs/cloverage/the_great_game/gossip/gossip.clj.html index 8a83a2d..bf7ed93 100644 --- a/docs/cloverage/the_great_game/gossip/gossip.clj.html +++ b/docs/cloverage/the_great_game/gossip/gossip.clj.html @@ -118,13 +118,13 @@ <span class="not-covered" title="0 out of 3 forms covered"> 038 (remove </span><br/> -<span class="not-covered" title="0 out of 4 forms covered"> +<span class="not-covered" title="0 out of 3 forms covered"> 039 #( = g %) </span><br/> <span class="not-covered" title="0 out of 3 forms covered"> 040 (filter </span><br/> -<span class="not-covered" title="0 out of 8 forms covered"> +<span class="not-covered" title="0 out of 7 forms covered"> 041 #(= (:location %) (:location g)) </span><br/> <span class="not-covered" title="0 out of 5 forms covered"> diff --git a/docs/cloverage/the_great_game/gossip/news_items.clj.html b/docs/cloverage/the_great_game/gossip/news_items.clj.html index 6e5f68b..adf5a7d 100644 --- a/docs/cloverage/the_great_game/gossip/news_items.clj.html +++ b/docs/cloverage/the_great_game/gossip/news_items.clj.html @@ -134,337 +134,337 @@ 043 </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 044 ##### Locations: + 044 By implication, the character values passed should include *all* the + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 045 information the giver knows about the character; that can then be degraded + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 046 as the receiver stores only that segment which the receiver finds + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 047 interesting. </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 045 + 048 </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 046 A 'location' value is a list comprising at most the x/y coordinate location - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 047 and the ids of the settlement and region (possibly hierarchically) that contain - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 048 the location. If the x/y is not local to the home of the receiving agent, they - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 049 won't remember it and won't pass it on; if any of the ids are not interesting - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 050 So location information will degrade progressively as the item is passed along. + 049 ##### Locations: </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 051 + 050 </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 052 It is assumed that the `:home` of a character is a location in this sense. + 051 A 'location' value is a list comprising at most the x/y coordinate location + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 052 and the ids of the settlement and region (possibly hierarchically) that contain + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 053 the location. If the x/y is not local to the home of the receiving agent, they + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 054 won't remember it and won't pass it on; if any of the ids are not interesting + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 055 So location information will degrade progressively as the item is passed along. </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 053 + 056 </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 054 ##### Inferences: + 057 It is assumed that the `:home` of a character is a location in this sense. </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 055 + 058 </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 056 If an agent learns that Adam has married Betty, they can infer that Betty has + 059 ##### Inferences: + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 060 </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 057 married Adam; if they learn that Charles killed Dorothy, that Dorothy has died. + 061 If an agent learns that Adam has married Betty, they can infer that Betty has </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 058 I'm not convinced that my representation of inferences here is ideal. + 062 married Adam; if they learn that Charles killed Dorothy, that Dorothy has died. </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 059 " + 063 I'm not convinced that my representation of inferences here is ideal. + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 064 " </span><br/> <span class="covered" title="13 out of 13 forms covered"> - 060 { ;; A significant attack is interesting whether or not it leads to deaths + 065 { ;; A significant attack is interesting whether or not it leads to deaths </span><br/> <span class="covered" title="8 out of 8 forms covered"> - 061 :attack {:verb :attack :keys [:actor :other :location]} + 066 :attack {:verb :attack :keys [:actor :other :location]} </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 062 ;; Deaths of characters may be interesting + 067 ;; Deaths of characters may be interesting </span><br/> <span class="covered" title="7 out of 7 forms covered"> - 063 :die {:verb :attack :keys [:actor :location]} + 068 :die {:verb :die :keys [:actor :location]} </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 064 ;; Deliberate killings are interesting. + 069 ;; Deliberate killings are interesting. </span><br/> <span class="covered" title="9 out of 9 forms covered"> - 065 :kill {:verb :kill :keys [:actor :other :location] + 070 :kill {:verb :kill :keys [:actor :other :location] </span><br/> <span class="covered" title="8 out of 8 forms covered"> - 066 :inferences [{:verb :die :actor :other :other :nil}]} + 071 :inferences [{:verb :die :actor :other :other :nil}]} </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 067 ;; Marriages may be interesting + 072 ;; Marriages may be interesting </span><br/> <span class="covered" title="9 out of 9 forms covered"> - 068 :marry {:verb :marry :keys [:actor :other :location] + 073 :marry {:verb :marry :keys [:actor :other :location] </span><br/> <span class="covered" title="8 out of 8 forms covered"> - 069 :inferences [{:verb :marry :actor :other :other :actor}]} + 074 :inferences [{:verb :marry :actor :other :other :actor}]} </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 070 ;; The end of ongoing open conflict between to characters may be interesting + 075 ;; The end of ongoing open conflict between to characters may be interesting </span><br/> <span class="covered" title="9 out of 9 forms covered"> - 071 :peace {:verb :peace :keys [:actor :other :location] + 076 :peace {:verb :peace :keys [:actor :other :location] </span><br/> <span class="covered" title="8 out of 8 forms covered"> - 072 :inferences [{:verb :peace :actor :other :other :actor}]} + 077 :inferences [{:verb :peace :actor :other :other :actor}]} </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 073 ;; Things related to the plot are interesting, but will require special + 078 ;; Things related to the plot are interesting, but will require special </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 074 ;; handling. Extra keys may be required by particular plot events. + 079 ;; handling. Extra keys may be required by particular plot events. </span><br/> <span class="covered" title="9 out of 9 forms covered"> - 075 :plot {:verb :plot :keys [:actor :other :object :location]} + 080 :plot {:verb :plot :keys [:actor :other :object :location]} </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 076 ;; Rapes are interesting. + 081 ;; Rapes are interesting. </span><br/> <span class="covered" title="9 out of 9 forms covered"> - 077 :rape {:verb :rape :keys [:actor :other :location] + 082 :rape {:verb :rape :keys [:actor :other :location] </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 078 ;; Should you also infer from rape that actor is male and adult? + 083 ;; Should you also infer from rape that actor is male and adult? </span><br/> <span class="covered" title="4 out of 4 forms covered"> - 079 :inferences [{:verb :attack} + 084 :inferences [{:verb :attack} </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 080 {:verb :sex} + 085 {:verb :sex} </span><br/> <span class="covered" title="7 out of 7 forms covered"> - 081 {:verb :sex :actor :other :other :actor}]} + 086 {:verb :sex :actor :other :other :actor}]} </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 082 ;; Merchants, especially, are interested in prices in other markets + 087 ;; Merchants, especially, are interested in prices in other markets </span><br/> <span class="covered" title="10 out of 10 forms covered"> - 083 :sell {:verb :sell :keys [:actor :other :object :location :price]} + 088 :sell {:verb :sell :keys [:actor :other :object :location :price]} </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 084 ;; Sex can juicy gossip, although not normally if the participants are in an + 089 ;; Sex can juicy gossip, although not normally if the participants are in an </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 085 ;; established sexual relationship. + 090 ;; established sexual relationship. </span><br/> <span class="covered" title="9 out of 9 forms covered"> - 086 :sex {:verb :sex :keys [:actor :other :location] + 091 :sex {:verb :sex :keys [:actor :other :location] </span><br/> <span class="covered" title="8 out of 8 forms covered"> - 087 :inferences [{:verb :sex :actor :other :other :actor}]} + 092 :inferences [{:verb :sex :actor :other :other :actor}]} </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 088 ;; Thefts are interesting + 093 ;; Thefts are interesting </span><br/> <span class="covered" title="9 out of 9 forms covered"> - 089 :steal {:verb :steal :keys [:actor :other :object :location]} + 094 :steal {:verb :steal :keys [:actor :other :object :location]} </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 090 ;; The succession of rulers is interesting; of respected craftsmen, + 095 ;; The succession of rulers is interesting; of respected craftsmen, </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 091 ;; potentially also interesting. + 096 ;; potentially also interesting. </span><br/> <span class="covered" title="9 out of 9 forms covered"> - 092 :succession {:verb :succession :keys [:actor :other :location :rank]} + 097 :succession {:verb :succession :keys [:actor :other :location :rank]} </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 093 ;; The start of ongoing open conflict between to characters may be interesting + 098 ;; The start of ongoing open conflict between to characters may be interesting </span><br/> <span class="covered" title="9 out of 9 forms covered"> - 094 :war {:verb :war :keys [:actor :other :location] + 099 :war {:verb :war :keys [:actor :other :location] </span><br/> <span class="covered" title="8 out of 8 forms covered"> - 095 :inferences [{:verb :war :actor :other :other :actor}]} + 100 :inferences [{:verb :war :actor :other :other :actor}]} </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 096 }) + 101 }) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 097 + 102 </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 098 + 103 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 099 (defn interest-in-character + 104 (defn interest-in-character </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 100 "Integer representation of how interesting this `character` is to this + 105 "Integer representation of how interesting this `character` is to this </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 101 `gossip`. + 106 `gossip`. </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 102 *TODO:* this assumes that characters are passed as keywords, but, as + 107 *TODO:* this assumes that characters are passed as keywords, but, as </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 103 documented above, they probably have to be maps, to allow for degradation." + 108 documented above, they probably have to be maps, to allow for degradation." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 104 [gossip character] + 109 [gossip character] + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 110 (count </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 105 (count - </span><br/> -<span class="covered" title="2 out of 2 forms covered"> - 106 (concat + 111 (concat </span><br/> <span class="partial" title="6 out of 12 forms covered"> - 107 (filter #(= (:actor % character)) (:knowledge gossip)) + 112 (filter #(= (:actor % character)) (:knowledge gossip)) </span><br/> <span class="partial" title="6 out of 12 forms covered"> - 108 (filter #(= (:other % character)) (:knowledge gossip))))) + 113 (filter #(= (:other % character)) (:knowledge gossip))))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 109 + 114 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 110 (defn interesting-character? + 115 (defn interesting-character? </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 111 "Boolean representation of whether this `character` is interesting to this + 116 "Boolean representation of whether this `character` is interesting to this </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 112 `gossip`." + 117 `gossip`." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 113 [gossip character] + 118 [gossip character] </span><br/> -<span class="covered" title="7 out of 7 forms covered"> - 114 (> (interest-in-character gossip character) 0)) +<span class="covered" title="6 out of 6 forms covered"> + 119 (> (interest-in-character gossip character) 0)) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 115 + 120 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 116 (defn interest-in-location + 121 (defn interest-in-location </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 117 "Integer representation of how interesting this `location` is to this + 122 "Integer representation of how interesting this `location` is to this </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 118 `gossip`." + 123 `gossip`." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 119 [gossip location] + 124 [gossip location] </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 120 (cond + 125 (cond </span><br/> <span class="partial" title="20 out of 21 forms covered"> - 121 (and (map? location) (number? (:x location)) (number? (:y location))) + 126 (and (map? location) (number? (:x location)) (number? (:y location))) </span><br/> <span class="partial" title="8 out of 9 forms covered"> - 122 (if-let [home (:home gossip)] + 127 (if-let [home (:home gossip)] </span><br/> <span class="covered" title="5 out of 5 forms covered"> - 123 (let [d (distance-between location home) - </span><br/> -<span class="covered" title="4 out of 4 forms covered"> - 124 i (/ 10000 d) ;; 10000 at metre scale is 10km; interest should - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 125 ;;fall of with distance from home, but possibly on a log scale - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 126 ] - </span><br/> -<span class="covered" title="7 out of 7 forms covered"> - 127 (if (> i 1) i 0)) - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 128 0) + 128 (let [d (distance-between location home) </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 129 (coll? location) + 129 i (/ 10000 d) ;; 10000 at metre scale is 10km; interest should + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 130 ;;fall off with distance from home, but possibly on a log scale + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 131 ] + </span><br/> +<span class="covered" title="6 out of 6 forms covered"> + 132 (if (> i 1) i 0)) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 133 0) + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 134 (coll? location) </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 130 (reduce + 135 (reduce </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 131 + + 136 + </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 132 (map + 137 (map </span><br/> <span class="covered" title="4 out of 4 forms covered"> - 133 #(interest-in-location gossip %) + 138 #(interest-in-location gossip %) </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 134 location)) + 139 location)) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 135 :else + 140 :else </span><br/> -<span class="covered" title="2 out of 2 forms covered"> - 136 (count +<span class="covered" title="1 out of 1 forms covered"> + 141 (count </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 137 (filter - </span><br/> -<span class="covered" title="10 out of 10 forms covered"> - 138 #(some (fn [x] (= x location)) (:location %)) - </span><br/> -<span class="covered" title="10 out of 10 forms covered"> - 139 (cons {:location (:home gossip)} (:knowledge gossip)))))) - </span><br/> -<span class="blank" title="0 out of 0 forms covered"> - 140 - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 141 ;; (interest-in-location {:home [{0, 0} :test-home] :knowledge []} [:test-home]) - </span><br/> -<span class="blank" title="0 out of 0 forms covered"> - 142 - </span><br/> -<span class="covered" title="1 out of 1 forms covered"> - 143 (defn interesting-location? - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 144 "True if the location of this news `item` is interesting to this `gossip`." - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 145 [gossip item] + 142 (filter </span><br/> <span class="covered" title="9 out of 9 forms covered"> - 146 (> (interest-in-location gossip (:location item)) 0)) + 143 #(some (fn [x] (= x location)) (:location %)) + </span><br/> +<span class="covered" title="10 out of 10 forms covered"> + 144 (cons {:location (:home gossip)} (:knowledge gossip)))))) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 145 + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 146 ;; (interest-in-location {:home [{0, 0} :test-home] :knowledge []} [:test-home]) </span><br/> <span class="blank" title="0 out of 0 forms covered"> 147 </span><br/> -<span class="covered" title="2 out of 2 forms covered"> - 148 (defn interesting-object? +<span class="covered" title="1 out of 1 forms covered"> + 148 (defn interesting-location? </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 149 [gossip object] + 149 "True if the location of this news `item` is interesting to this `gossip`." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 150 ;; TODO: Not yet (really) implemented + 150 [gossip item] </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 151 true) +<span class="covered" title="8 out of 8 forms covered"> + 151 (> (interest-in-location gossip (:location item)) 0)) </span><br/> <span class="blank" title="0 out of 0 forms covered"> 152 </span><br/> -<span class="partial" title="1 out of 2 forms covered"> - 153 (defn interesting-topic? +<span class="covered" title="2 out of 2 forms covered"> + 153 (defn interesting-object? </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 154 [gossip topic] + 154 [gossip object] </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> 155 ;; TODO: Not yet (really) implemented @@ -475,272 +475,302 @@ <span class="blank" title="0 out of 0 forms covered"> 157 </span><br/> +<span class="partial" title="1 out of 2 forms covered"> + 158 (defn interesting-topic? + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 159 [gossip topic] + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 160 ;; TODO: Not yet (really) implemented + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 161 true) + </span><br/> +<span class="blank" title="0 out of 0 forms covered"> + 162 + </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 158 (defn interesting-item? + 163 (defn interesting-item? </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 159 "True if anything about this news `item` is interesting to this `gossip`." + 164 "True if anything about this news `item` is interesting to this `gossip`." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 160 [gossip item] + 165 [gossip item] </span><br/> <span class="partial" title="13 out of 17 forms covered"> - 161 (or + 166 (or </span><br/> <span class="covered" title="6 out of 6 forms covered"> - 162 (interesting-character? gossip (:actor item)) + 167 (interesting-character? gossip (:actor item)) </span><br/> <span class="covered" title="6 out of 6 forms covered"> - 163 (interesting-character? gossip (:other item)) + 168 (interesting-character? gossip (:other item)) </span><br/> <span class="covered" title="6 out of 6 forms covered"> - 164 (interesting-location? gossip (:location item)) + 169 (interesting-location? gossip (:location item)) </span><br/> <span class="covered" title="6 out of 6 forms covered"> - 165 (interesting-object? gossip (:object item)) + 170 (interesting-object? gossip (:object item)) </span><br/> <span class="not-covered" title="0 out of 5 forms covered"> - 166 (interesting-topic? gossip (:verb item)))) + 171 (interesting-topic? gossip (:verb item)))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 167 + 172 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 168 (defn infer + 173 (defn infer </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 169 "Infer a new knowledge item from this `item`, following this `rule`" + 174 "Infer a new knowledge item from this `item`, following this `rule`" </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 170 [item rule] + 175 [item rule] </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 171 (reduce merge + 176 (reduce merge </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 172 item + 177 item </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 173 (cons + 178 (cons </span><br/> <span class="covered" title="5 out of 5 forms covered"> - 174 {:verb (:verb rule)} + 179 {:verb (:verb rule)} </span><br/> <span class="covered" title="13 out of 13 forms covered"> - 175 (map (fn [k] {k (apply (k rule) (list item))}) + 180 (map (fn [k] {k (apply (k rule) (list item))}) </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 176 (remove - </span><br/> -<span class="covered" title="4 out of 4 forms covered"> - 177 #(= % :verb) + 181 (remove </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 178 (keys rule)))))) + 182 #(= % :verb) + </span><br/> +<span class="covered" title="3 out of 3 forms covered"> + 183 (keys rule)))))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 179 + 184 </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 180 (declare learn-news-item) + 185 (declare learn-news-item) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 181 + 186 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 182 (defn make-all-inferences + 187 (defn make-all-inferences </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 183 "Return a list of knowledge entries inferred from this news `item` by this + 188 "Return a list of knowledge entries that can be inferred from this news </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 184 `gossip`." + 189 `item`." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 185 [item] + 190 [item] </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 186 (set + 191 (set </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 187 (reduce + 192 (reduce </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 188 concat + 193 concat </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 189 (map + 194 (map </span><br/> <span class="covered" title="10 out of 10 forms covered"> - 190 #(:knowledge (learn-news-item {} (infer item %) false)) + 195 #(:knowledge (learn-news-item {} (infer item %) false)) </span><br/> <span class="covered" title="7 out of 7 forms covered"> - 191 (:inferences (news-topics (:verb item))))))) + 196 (:inferences (news-topics (:verb item))))))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 192 + 197 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 193 (defn degrade-character + 198 (defn degrade-character </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 194 "Return a character specification like this `character`, but comprising + 199 "Return a character specification like this `character`, but comprising </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 195 only those properties this `gossip` is interested in." + 200 only those properties this `gossip` is interested in." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 196 [gossip character] + 201 [gossip character] </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 197 ;; TODO: Not yet (really) implemented + 202 ;; TODO: Not yet (really) implemented </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> - 198 character) + 203 character) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 199 + 204 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 200 (defn degrade-location + 205 (defn degrade-location </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 201 "Return a location specification like this `location`, but comprising + 206 "Return a location specification like this `location`, but comprising </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 202 only those elements this `gossip` is interested in. If none, return + 207 only those elements this `gossip` is interested in. If none, return </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 203 `nil`." + 208 `nil`." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 204 [gossip location] + 209 [gossip location] </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 205 (let [l (if + 210 (let [l (if </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 206 (coll? location) + 211 (coll? location) </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 207 (filter + 212 (filter </span><br/> <span class="partial" title="5 out of 7 forms covered"> - 208 #(when (interesting-location? gossip %) %) + 213 #(when (interesting-location? gossip %) %) </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 209 location))] + 214 location))] </span><br/> <span class="partial" title="5 out of 7 forms covered"> - 210 (when-not (empty? l) l))) + 215 (when-not (empty? l) l))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 211 + 216 </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 212 (defn learn-news-item + 217 (defn learn-news-item </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 213 "Return a gossip like this `gossip`, which has learned this news `item` if + 218 "Return a gossip like this `gossip`, which has learned this news `item` if </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 214 it is of interest to them." + 219 it is of interest to them." </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 215 ;; TODO: Not yet implemented + 220 ;; TODO: Not yet implemented </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 216 ([gossip item] + 221 ([gossip item] </span><br/> <span class="covered" title="5 out of 5 forms covered"> - 217 (learn-news-item gossip item true)) + 222 (learn-news-item gossip item true)) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 218 ([gossip item follow-inferences?] + 223 ([gossip item follow-inferences?] </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 219 (if + 224 (if </span><br/> <span class="covered" title="4 out of 4 forms covered"> - 220 (interesting-item? gossip item) - </span><br/> -<span class="covered" title="5 out of 5 forms covered"> - 221 (let [g (assoc gossip :knowledge - </span><br/> -<span class="covered" title="2 out of 2 forms covered"> - 222 (cons - </span><br/> -<span class="covered" title="5 out of 5 forms covered"> - 223 (assoc + 225 (interesting-item? gossip item) </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 224 item + 226 (let </span><br/> -<span class="covered" title="2 out of 2 forms covered"> - 225 :nth-hand (if +<span class="covered" title="3 out of 3 forms covered"> + 227 [g (assoc </span><br/> -<span class="covered" title="5 out of 5 forms covered"> - 226 (number? (:nth-hand item)) - </span><br/> -<span class="not-covered" title="0 out of 5 forms covered"> - 227 (inc (:nth-hand item)) +<span class="covered" title="1 out of 1 forms covered"> + 228 gossip </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 228 1) + 229 :knowledge </span><br/> -<span class="partial" title="8 out of 11 forms covered"> - 229 :date (if (number? (:date item)) (:date item) (game-time)) +<span class="covered" title="2 out of 2 forms covered"> + 230 (cons + </span><br/> +<span class="covered" title="5 out of 5 forms covered"> + 231 (assoc + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 232 item + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 233 :nth-hand (if + </span><br/> +<span class="covered" title="5 out of 5 forms covered"> + 234 (number? (:nth-hand item)) + </span><br/> +<span class="not-covered" title="0 out of 4 forms covered"> + 235 (inc (:nth-hand item)) + </span><br/> +<span class="not-tracked" title="0 out of 0 forms covered"> + 236 1) + </span><br/> +<span class="covered" title="1 out of 1 forms covered"> + 237 :time-stamp (if + </span><br/> +<span class="covered" title="5 out of 5 forms covered"> + 238 (number? (:time-stamp item)) + </span><br/> +<span class="not-covered" title="0 out of 3 forms covered"> + 239 (:time-stamp item) + </span><br/> +<span class="covered" title="2 out of 2 forms covered"> + 240 (game-time)) </span><br/> <span class="covered" title="6 out of 6 forms covered"> - 230 :location (degrade-location gossip (:location item)) + 241 :location (degrade-location gossip (:location item)) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 231 ;; ought to degratde the location + 242 ;; TODO: ought to maybe-degrade characters we're not yet interested in </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 232 ;; ought to maybe-degrade characters we're not yet interested in + 243 ) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 233 ) + 244 ;; TODO: ought not to add knowledge items we already have, except </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 234 ;; ought not to add knowledge items we already have, except - </span><br/> -<span class="not-tracked" title="0 out of 0 forms covered"> - 235 ;; to replace if new item is of increased specificity + 245 ;; to replace if new item is of increased specificity </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 236 (:knowledge gossip)))] + 246 (:knowledge gossip)))] </span><br/> <span class="covered" title="2 out of 2 forms covered"> - 237 (if follow-inferences? + 247 (if follow-inferences? </span><br/> <span class="covered" title="3 out of 3 forms covered"> - 238 (assoc + 248 (assoc </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 239 g + 249 g </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> - 240 :knowledge + 250 :knowledge </span><br/> <span class="covered" title="8 out of 8 forms covered"> - 241 (concat (:knowledge g) (make-all-inferences item))) + 251 (concat (:knowledge g) (make-all-inferences item))) </span><br/> <span class="covered" title="1 out of 1 forms covered"> - 242 g)) + 252 g)) </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> - 243 gossip))) + 253 gossip))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 244 + 254 </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 245 + 255 </span><br/> <span class="blank" title="0 out of 0 forms covered"> - 246 + 256 </span><br/> </body> </html> diff --git a/docs/cloverage/the_great_game/merchants/markets.clj.html b/docs/cloverage/the_great_game/merchants/markets.clj.html index 46dc44a..03ace93 100644 --- a/docs/cloverage/the_great_game/merchants/markets.clj.html +++ b/docs/cloverage/the_great_game/merchants/markets.clj.html @@ -37,13 +37,13 @@ <span class="covered" title="1 out of 1 forms covered"> 011 (let </span><br/> -<span class="covered" title="13 out of 13 forms covered"> +<span class="covered" title="10 out of 10 forms covered"> 012 [delta (dec' (/ (max supply demand 1) (max stock 1))) </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 013 scaled (/ delta 100)] </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 014 (+ old scaled))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> @@ -91,7 +91,7 @@ <span class="covered" title="10 out of 10 forms covered"> 029 su (or (-> c :supplies commodity) 0) </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 030 decrement (min st d) </span><br/> <span class="partial" title="5 out of 6 forms covered"> @@ -103,7 +103,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 033 ;; stock, halt production </span><br/> -<span class="covered" title="7 out of 7 forms covered"> +<span class="covered" title="5 out of 5 forms covered"> 034 (> st (* su 2)) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> @@ -115,7 +115,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 037 ;; craftspeople of the city will do so. </span><br/> -<span class="covered" title="5 out of 5 forms covered"> +<span class="covered" title="4 out of 4 forms covered"> 038 (> p 1) su </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> @@ -127,10 +127,10 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 041 ;; incoming merchants to buy </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 042 (> su st) </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 043 (- su st) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> @@ -148,7 +148,7 @@ <span class="covered" title="4 out of 4 forms covered"> 048 (not= p n) </span><br/> -<span class="covered" title="26 out of 26 forms covered"> +<span class="covered" title="24 out of 24 forms covered"> 049 (l/info "Price of" commodity "at" id "has changed from" (float p) "to" (float n))) </span><br/> <span class="covered" title="4 out of 4 forms covered"> @@ -157,7 +157,7 @@ <span class="covered" title="3 out of 3 forms covered"> 051 {:stock </span><br/> -<span class="covered" title="9 out of 9 forms covered"> +<span class="covered" title="7 out of 7 forms covered"> 052 {commodity (+ (- st decrement) increment)} </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> diff --git a/docs/cloverage/the_great_game/merchants/merchant_utils.clj.html b/docs/cloverage/the_great_game/merchants/merchant_utils.clj.html index 8774b44..dc586ef 100644 --- a/docs/cloverage/the_great_game/merchants/merchant_utils.clj.html +++ b/docs/cloverage/the_great_game/merchants/merchant_utils.clj.html @@ -94,7 +94,7 @@ <span class="covered" title="3 out of 3 forms covered"> 030 (map </span><br/> -<span class="covered" title="12 out of 12 forms covered"> +<span class="covered" title="11 out of 11 forms covered"> 031 #(* (cargo %) (-> world :commodities % :weight)) </span><br/> <span class="covered" title="3 out of 3 forms covered"> @@ -133,16 +133,16 @@ <span class="covered" title="1 out of 1 forms covered"> 043 merchant)] </span><br/> -<span class="covered" title="3 out of 3 forms covered"> +<span class="covered" title="2 out of 2 forms covered"> 044 (max </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> 045 0 </span><br/> -<span class="covered" title="2 out of 2 forms covered"> +<span class="covered" title="1 out of 1 forms covered"> 046 (quot </span><br/> -<span class="partial" title="13 out of 14 forms covered"> +<span class="partial" title="12 out of 13 forms covered"> 047 (- (or (:capacity m) 0) (burden m world)) </span><br/> <span class="covered" title="7 out of 7 forms covered"> @@ -199,7 +199,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 065 :else </span><br/> -<span class="covered" title="2 out of 2 forms covered"> +<span class="covered" title="1 out of 1 forms covered"> 066 (quot </span><br/> <span class="covered" title="3 out of 3 forms covered"> @@ -238,7 +238,7 @@ <span class="covered" title="3 out of 3 forms covered"> 078 (map </span><br/> -<span class="partial" title="20 out of 21 forms covered"> +<span class="partial" title="19 out of 20 forms covered"> 079 #(hash-map % (+ (or (a %) 0) (or (b %) 0))) </span><br/> <span class="covered" title="3 out of 3 forms covered"> diff --git a/docs/cloverage/the_great_game/merchants/planning.clj.html b/docs/cloverage/the_great_game/merchants/planning.clj.html index fcbe3f8..add36f9 100644 --- a/docs/cloverage/the_great_game/merchants/planning.clj.html +++ b/docs/cloverage/the_great_game/merchants/planning.clj.html @@ -136,13 +136,13 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 044 %) </span><br/> -<span class="covered" title="2 out of 2 forms covered"> +<span class="covered" title="1 out of 1 forms covered"> 045 :distance (count </span><br/> <span class="covered" title="5 out of 5 forms covered"> 046 (find-route world origin %)) </span><br/> -<span class="covered" title="2 out of 2 forms covered"> +<span class="covered" title="1 out of 1 forms covered"> 047 :dist-to-home (count </span><br/> <span class="covered" title="3 out of 3 forms covered"> @@ -157,7 +157,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 051 %))) </span><br/> -<span class="covered" title="12 out of 12 forms covered"> +<span class="covered" title="11 out of 11 forms covered"> 052 (remove #(= % origin) (-> world :cities keys))))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> @@ -304,7 +304,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 100 ;; to home. </span><br/> -<span class="not-covered" title="0 out of 6 forms covered"> +<span class="not-covered" title="0 out of 5 forms covered"> 101 #(- 0 (:dist-to-home %)) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> @@ -376,7 +376,7 @@ <span class="covered" title="5 out of 5 forms covered"> 124 (can-afford merchant world c)) </span><br/> -<span class="covered" title="11 out of 11 forms covered"> +<span class="covered" title="9 out of 9 forms covered"> 125 p (* q (- (:expected-price plan) (:buy-price plan)))] </span><br/> <span class="covered" title="7 out of 7 forms covered"> @@ -442,7 +442,7 @@ <span class="covered" title="10 out of 10 forms covered"> 146 #(let [q (-> world :cities origin :stock %)] </span><br/> -<span class="partial" title="9 out of 10 forms covered"> +<span class="partial" title="8 out of 9 forms covered"> 147 (and (number? q) (pos? q))) </span><br/> <span class="covered" title="3 out of 3 forms covered"> @@ -460,7 +460,7 @@ <span class="covered" title="3 out of 3 forms covered"> 152 (sort-by </span><br/> -<span class="not-covered" title="0 out of 6 forms covered"> +<span class="not-covered" title="0 out of 5 forms covered"> 153 #(- 0 (:dist-to-home %)) </span><br/> <span class="covered" title="2 out of 2 forms covered"> diff --git a/docs/cloverage/the_great_game/merchants/strategies/simple.clj.html b/docs/cloverage/the_great_game/merchants/strategies/simple.clj.html index 7f5ba97..ec1ab97 100644 --- a/docs/cloverage/the_great_game/merchants/strategies/simple.clj.html +++ b/docs/cloverage/the_great_game/merchants/strategies/simple.clj.html @@ -109,7 +109,7 @@ <span class="not-covered" title="0 out of 3 forms covered"> 035 [c (:commodity plan) </span><br/> -<span class="not-covered" title="0 out of 8 forms covered"> +<span class="not-covered" title="0 out of 7 forms covered"> 036 p (* (:quantity plan) (:buy-price plan)) </span><br/> <span class="not-covered" title="0 out of 3 forms covered"> @@ -127,7 +127,7 @@ <span class="not-covered" title="0 out of 13 forms covered"> 041 {:stock (add-stock (:stock m) {c q}) </span><br/> -<span class="not-covered" title="0 out of 6 forms covered"> +<span class="not-covered" title="0 out of 5 forms covered"> 042 :cash (- (:cash m) p) </span><br/> <span class="not-covered" title="0 out of 4 forms covered"> @@ -142,16 +142,16 @@ <span class="not-covered" title="0 out of 2 forms covered"> 046 {location </span><br/> -<span class="not-covered" title="0 out of 17 forms covered"> +<span class="not-covered" title="0 out of 16 forms covered"> 047 {:stock (assoc (:stock market) c (- (-> market :stock c) q)) </span><br/> -<span class="not-covered" title="0 out of 6 forms covered"> +<span class="not-covered" title="0 out of 5 forms covered"> 048 :cash (+ (:cash market) p)}}}) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> 049 ;; if no plan, then if at home stay put </span><br/> -<span class="not-covered" title="0 out of 8 forms covered"> +<span class="not-covered" title="0 out of 7 forms covered"> 050 (= (:location m) (:home m)) </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> @@ -172,7 +172,7 @@ <span class="not-covered" title="0 out of 8 forms covered"> 056 (let [route (find-route world location (:home m)) </span><br/> -<span class="not-covered" title="0 out of 4 forms covered"> +<span class="not-covered" title="0 out of 3 forms covered"> 057 next-location (nth route 1)] </span><br/> <span class="not-covered" title="0 out of 20 forms covered"> @@ -310,7 +310,7 @@ <span class="not-covered" title="0 out of 3 forms covered"> 102 (map </span><br/> -<span class="not-covered" title="0 out of 12 forms covered"> +<span class="not-covered" title="0 out of 11 forms covered"> 103 #(* (-> m :stock %) (-> market :prices m)) </span><br/> <span class="not-covered" title="0 out of 5 forms covered"> @@ -322,7 +322,7 @@ <span class="not-covered" title="0 out of 1 forms covered"> 106 (if </span><br/> -<span class="not-covered" title="0 out of 6 forms covered"> +<span class="not-covered" title="0 out of 5 forms covered"> 107 (>= (:cash market) stock-value) </span><br/> <span class="not-covered" title="0 out of 1 forms covered"> @@ -352,7 +352,7 @@ <span class="not-covered" title="0 out of 5 forms covered"> 116 {:stock {} </span><br/> -<span class="not-covered" title="0 out of 6 forms covered"> +<span class="not-covered" title="0 out of 5 forms covered"> 117 :cash (+ (:cash m) stock-value) </span><br/> <span class="not-covered" title="0 out of 4 forms covered"> @@ -367,7 +367,7 @@ <span class="not-covered" title="0 out of 11 forms covered"> 121 {:stock (add-stock (:stock m) (:stock market)) </span><br/> -<span class="not-covered" title="0 out of 6 forms covered"> +<span class="not-covered" title="0 out of 5 forms covered"> 122 :cash (- (:cash market) stock-value)}}}))) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> @@ -412,7 +412,7 @@ <span class="not-covered" title="0 out of 3 forms covered"> 136 id (:id m) </span><br/> -<span class="not-covered" title="0 out of 17 forms covered"> +<span class="not-covered" title="0 out of 16 forms covered"> 137 at-destination? (and (:plan m) (= (:location m) (-> m :plan :destination))) </span><br/> <span class="not-covered" title="0 out of 3 forms covered"> @@ -421,7 +421,7 @@ <span class="not-covered" title="0 out of 2 forms covered"> 139 next-location (if plan </span><br/> -<span class="not-covered" title="0 out of 3 forms covered"> +<span class="not-covered" title="0 out of 2 forms covered"> 140 (nth </span><br/> <span class="not-covered" title="0 out of 2 forms covered"> diff --git a/docs/cloverage/the_great_game/time.clj.html b/docs/cloverage/the_great_game/time.clj.html index 2c7d56e..25e2b11 100644 --- a/docs/cloverage/the_great_game/time.clj.html +++ b/docs/cloverage/the_great_game/time.clj.html @@ -136,7 +136,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 044 "This world has an eight day week." </span><br/> -<span class="covered" title="3 out of 3 forms covered"> +<span class="covered" title="2 out of 2 forms covered"> 045 (count days-of-week)) </span><br/> <span class="blank" title="0 out of 0 forms covered"> @@ -190,7 +190,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 062 different." </span><br/> -<span class="covered" title="3 out of 3 forms covered"> +<span class="covered" title="2 out of 2 forms covered"> 063 (count seasons-of-year)) </span><br/> <span class="blank" title="0 out of 0 forms covered"> @@ -220,7 +220,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 072 five weeks." </span><br/> -<span class="covered" title="3 out of 3 forms covered"> +<span class="covered" title="2 out of 2 forms covered"> 073 (count weeks-of-season)) </span><br/> <span class="blank" title="0 out of 0 forms covered"> @@ -229,7 +229,7 @@ <span class="covered" title="1 out of 1 forms covered"> 075 (def ^:const days-in-season </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 076 (* weeks-in-season days-in-week)) </span><br/> <span class="blank" title="0 out of 0 forms covered"> @@ -250,13 +250,13 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 082 ([timestamp] </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 083 (- timestamp game-start-time))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> 084 </span><br/> -<span class="covered" title="63 out of 63 forms covered"> +<span class="covered" title="54 out of 54 forms covered"> 085 (defmacro day-of-year </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> @@ -289,7 +289,7 @@ <span class="covered" title="1 out of 1 forms covered"> 095 (fn [game-time] </span><br/> -<span class="covered" title="2 out of 2 forms covered"> +<span class="covered" title="1 out of 1 forms covered"> 096 (>= </span><br/> <span class="covered" title="5 out of 5 forms covered"> @@ -316,10 +316,10 @@ <span class="covered" title="4 out of 4 forms covered"> 104 (if (waiting-day? game-time) </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 105 (nth weeks-of-season day-of-week) </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 106 (nth days-of-week day-of-week)))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> @@ -337,7 +337,7 @@ <span class="covered" title="9 out of 9 forms covered"> 111 (let [day-of-season (mod (day-of-year game-time) days-in-season) </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 112 week (/ day-of-season days-in-week)] </span><br/> <span class="partial" title="4 out of 5 forms covered"> @@ -346,7 +346,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 114 :waiting </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 115 (nth weeks-of-season week)))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> @@ -358,7 +358,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 118 [game-time] </span><br/> -<span class="covered" title="11 out of 11 forms covered"> +<span class="covered" title="9 out of 9 forms covered"> 119 (let [season (int (/ (day-of-year game-time) days-in-season))] </span><br/> <span class="covered" title="5 out of 5 forms covered"> @@ -367,7 +367,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 121 :waiting </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 122 (nth seasons-of-year season)))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> @@ -403,7 +403,7 @@ <span class="covered" title="2 out of 2 forms covered"> 133 (name </span><br/> -<span class="covered" title="2 out of 2 forms covered"> +<span class="covered" title="1 out of 1 forms covered"> 134 (nth </span><br/> <span class="covered" title="1 out of 1 forms covered"> diff --git a/docs/cloverage/the_great_game/utils.clj.html b/docs/cloverage/the_great_game/utils.clj.html index f07ef01..142a6e9 100644 --- a/docs/cloverage/the_great_game/utils.clj.html +++ b/docs/cloverage/the_great_game/utils.clj.html @@ -19,7 +19,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 005 [route] </span><br/> -<span class="covered" title="10 out of 10 forms covered"> +<span class="covered" title="8 out of 8 forms covered"> 006 (not= (count route)(count (set route)))) </span><br/> <span class="blank" title="0 out of 0 forms covered"> @@ -103,7 +103,7 @@ <span class="covered" title="6 out of 6 forms covered"> 033 (list (first %) 'm) </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 034 (nth % 1)) </span><br/> <span class="covered" title="1 out of 1 forms covered"> diff --git a/docs/cloverage/the_great_game/world/location.clj.html b/docs/cloverage/the_great_game/world/location.clj.html index 195df85..9b943f9 100644 --- a/docs/cloverage/the_great_game/world/location.clj.html +++ b/docs/cloverage/the_great_game/world/location.clj.html @@ -112,7 +112,7 @@ <span class="partial" title="5 out of 6 forms covered"> 036 (and c1 c2) </span><br/> -<span class="covered" title="26 out of 26 forms covered"> +<span class="covered" title="23 out of 23 forms covered"> 037 (sqrt (+ (expt (- (:x c1) (:x c2)) 2) (expt (- (:y c1) (:y c2)) 2)))))) </span><br/> </body> diff --git a/docs/cloverage/the_great_game/world/routes.clj.html b/docs/cloverage/the_great_game/world/routes.clj.html index 730f295..5260748 100644 --- a/docs/cloverage/the_great_game/world/routes.clj.html +++ b/docs/cloverage/the_great_game/world/routes.clj.html @@ -49,10 +49,10 @@ <span class="covered" title="3 out of 3 forms covered"> 015 (remove </span><br/> -<span class="covered" title="4 out of 4 forms covered"> +<span class="covered" title="3 out of 3 forms covered"> 016 #(= from %) </span><br/> -<span class="covered" title="10 out of 10 forms covered"> +<span class="covered" title="9 out of 9 forms covered"> 017 (if (some #(= % from) route) route))) </span><br/> <span class="covered" title="1 out of 1 forms covered"> @@ -67,7 +67,7 @@ <span class="covered" title="2 out of 2 forms covered"> 021 found (filter </span><br/> -<span class="covered" title="11 out of 11 forms covered"> +<span class="covered" title="10 out of 10 forms covered"> 022 (fn [step] (if (some #(= to %) step) step)) </span><br/> <span class="covered" title="1 out of 1 forms covered"> @@ -121,7 +121,7 @@ <span class="covered" title="3 out of 3 forms covered"> 039 found (filter </span><br/> -<span class="covered" title="7 out of 7 forms covered"> +<span class="covered" title="6 out of 6 forms covered"> 040 #(= (last %) to) paths)] </span><br/> <span class="covered" title="1 out of 1 forms covered"> diff --git a/docs/cloverage/the_great_game/world/run.clj.html b/docs/cloverage/the_great_game/world/run.clj.html index e6ea4e4..f56fd11 100644 --- a/docs/cloverage/the_great_game/world/run.clj.html +++ b/docs/cloverage/the_great_game/world/run.clj.html @@ -58,7 +58,7 @@ <span class="not-covered" title="0 out of 6 forms covered"> 018 {:path "the-great-game.log" </span><br/> -<span class="not-covered" title="0 out of 4 forms covered"> +<span class="not-covered" title="0 out of 3 forms covered"> 019 :max-size (* 512 1024) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> diff --git a/docs/cloverage/the_great_game/world/world.clj.html b/docs/cloverage/the_great_game/world/world.clj.html index 94d91d0..1f6afad 100644 --- a/docs/cloverage/the_great_game/world/world.clj.html +++ b/docs/cloverage/the_great_game/world/world.clj.html @@ -571,7 +571,7 @@ <span class="not-tracked" title="0 out of 0 forms covered"> 189 ([world] </span><br/> -<span class="not-covered" title="0 out of 13 forms covered"> +<span class="not-covered" title="0 out of 12 forms covered"> 190 (run world (inc (or (:date world) 0)))) </span><br/> <span class="not-tracked" title="0 out of 0 forms covered"> diff --git a/docs/codox/Baking-the-world.html b/docs/codox/Baking-the-world.html index 62eb476..bd493e8 100644 --- a/docs/codox/Baking-the-world.html +++ b/docs/codox/Baking-the-world.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Baking the world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 current"><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#baking-the-world" name="baking-the-world"></a>Baking the world</h1> +<html><head><meta charset="UTF-8" /><title>Baking the world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 current"><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#baking-the-world" name="baking-the-world"></a>Baking the world</h1> <h4><a href="#wednesday-8-may-2019" name="wednesday-8-may-2019"></a>Wednesday, 8 May 2019</h4> <p><img src="https://2.bp.blogspot.com/-qxkySlJNmtY/XNKvJksmSjI/AAAAAAAAnXU/z1Zv2LmjydMmi_1q2mWdwVALmdfi9OItwCLcBGAs/s1600/Devorgillas-Bridge.jpg" alt="Devogilla’s Bridge in Dumfries, early foourteenth century" /></p> <p>In previous posts, I’ve described algorithms for dynamically <a href="Populating-a-game-world.html">populating</a> and dynamically <a href="Settling-a-game-world.html">settling</a> a game world. But at kilometre scale (and I think we need a higher resolution than that - something closer to hectare scale), settling the British Isles using my existing algorithms takes about 24 hours of continuous compute on an eight core, 3GHz machine. You cannot do that every time you launch a new game.</p> diff --git a/docs/codox/Game_Play.html b/docs/codox/Game_Play.html index 2743a62..a1d8141 100644 --- a/docs/codox/Game_Play.html +++ b/docs/codox/Game_Play.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Game Play</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 current"><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#game-play" name="game-play"></a>Game Play</h1> +<html><head><meta charset="UTF-8" /><title>Game Play</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 current"><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#game-play" name="game-play"></a>Game Play</h1> <p>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:</p> <ol> <li> diff --git a/docs/codox/Gossip_scripted_plot_and_Johnny_Silverhand.html b/docs/codox/Gossip_scripted_plot_and_Johnny_Silverhand.html index 2061af4..33918d7 100644 --- a/docs/codox/Gossip_scripted_plot_and_Johnny_Silverhand.html +++ b/docs/codox/Gossip_scripted_plot_and_Johnny_Silverhand.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Gossip, scripted plot, and Johnny Silverhand</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 current"><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#gossip-scripted-plot-and-johnny-silverhand" name="gossip-scripted-plot-and-johnny-silverhand"></a>Gossip, scripted plot, and Johnny Silverhand</h1> +<html><head><meta charset="UTF-8" /><title>Gossip, scripted plot, and Johnny Silverhand</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 current"><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#gossip-scripted-plot-and-johnny-silverhand" name="gossip-scripted-plot-and-johnny-silverhand"></a>Gossip, scripted plot, and Johnny Silverhand</h1> <p>I’ve been writing literally for years – since <a href="null">Voice acting considered harmful</a> 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,</p> <ol> <li>Alexa/Siri style speech interpretation;</li> diff --git a/docs/codox/Organic_Quests.html b/docs/codox/Organic_Quests.html index 392187e..055e53e 100644 --- a/docs/codox/Organic_Quests.html +++ b/docs/codox/Organic_Quests.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Organic Quests</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 current"><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#organic-quests" name="organic-quests"></a>Organic Quests</h1> +<html><head><meta charset="UTF-8" /><title>Organic Quests</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 current"><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#organic-quests" name="organic-quests"></a>Organic Quests</h1> <p>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](<a href="https://en.wikipedia.org/wiki/Quest_(gaming)">https://en.wikipedia.org/wiki/Quest_(gaming)</a>) offers a typology of quests as follows:</p> <ol> <li>Kill quests</li> diff --git a/docs/codox/Populating-a-game-world.html b/docs/codox/Populating-a-game-world.html index e1886fc..c02a951 100644 --- a/docs/codox/Populating-a-game-world.html +++ b/docs/codox/Populating-a-game-world.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Populating a game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 current"><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#populating-a-game-world" name="populating-a-game-world"></a>Populating a game world</h1> +<html><head><meta charset="UTF-8" /><title>Populating a game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 current"><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#populating-a-game-world" name="populating-a-game-world"></a>Populating a game world</h1> <h4><a href="#saturday-6-july-2013" name="saturday-6-july-2013"></a>Saturday, 6 July 2013</h4> <p><em>(You might want to read this essay in conjunction with my older essay, <a href="../../2009/12/settling-game-world.html">Settling a game world</a>, which covers similar ground but which this hopefully advances on)</em></p> <p>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.</p> diff --git a/docs/codox/Settling-a-game-world.html b/docs/codox/Settling-a-game-world.html index 357ea68..cbf569e 100644 --- a/docs/codox/Settling-a-game-world.html +++ b/docs/codox/Settling-a-game-world.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Settling a game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 current"><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#settling-a-game-world" name="settling-a-game-world"></a>Settling a game world</h1> +<html><head><meta charset="UTF-8" /><title>Settling a game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 current"><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#settling-a-game-world" name="settling-a-game-world"></a>Settling a game world</h1> <h4><a href="#wednesday-30-december-2009" name="wednesday-30-december-2009"></a>Wednesday, 30 December 2009</h4> <p><em>This essay is part of a series with ‘<a href="Worlds-and-flats.html">Worlds and Flats</a>’ and ‘<a href="The-spread-of-knowledge-in-a-large-game-world.html">The spread of knowledge in a large game world</a>’; 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 ‘<a href="Populating-a-game-world.html">Populating a game world</a>’)</em></p> <h3><a href="#microworld" name="microworld"></a>Microworld</h3> diff --git a/docs/codox/Simulation-layers.html b/docs/codox/Simulation-layers.html index 24d074d..0e37f3a 100644 --- a/docs/codox/Simulation-layers.html +++ b/docs/codox/Simulation-layers.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Simulation layers</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 current"><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#simulation-layers" name="simulation-layers"></a>Simulation layers</h1> +<html><head><meta charset="UTF-8" /><title>Simulation layers</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 current"><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#simulation-layers" name="simulation-layers"></a>Simulation layers</h1> <p>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.</p> <p>That is to say there is</p> <h2><a href="#an-economy-simulation" name="an-economy-simulation"></a>An economy simulation</h2> 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 d20d166..eb95181 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,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>The spread of knowledge in a large game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 current"><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#the-spread-of-knowledge-in-a-large-game-world" name="the-spread-of-knowledge-in-a-large-game-world"></a>The spread of knowledge in a large game world</h1> +<html><head><meta charset="UTF-8" /><title>The spread of knowledge in a large game world</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 current"><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#the-spread-of-knowledge-in-a-large-game-world" name="the-spread-of-knowledge-in-a-large-game-world"></a>The spread of knowledge in a large game world</h1> <h4><a href="#saturday-26-april-2008" name="saturday-26-april-2008"></a>Saturday, 26 April 2008</h4> <p><img src="https://4.bp.blogspot.com/-F2gxx0dRM8o/UlfSsRe8ybI/AAAAAAAAYIA/I1I9D5Yk7to/s1600/Tw2_full_Dandelion.png" alt="part of the role of Dandelion, in The Witcher games, is to provide the player with news" /></p> <h3><a href="#note" name="note"></a>Note</h3> diff --git a/docs/codox/Uncanny_dialogue.html b/docs/codox/Uncanny_dialogue.html index 480c253..e3e619e 100644 --- a/docs/codox/Uncanny_dialogue.html +++ b/docs/codox/Uncanny_dialogue.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>The Uncanny Valley, and dynamically generated dialogue</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 current"><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#the-uncanny-valley-and-dynamically-generated-dialogue" name="the-uncanny-valley-and-dynamically-generated-dialogue"></a>The Uncanny Valley, and dynamically generated dialogue</h1> +<html><head><meta charset="UTF-8" /><title>The Uncanny Valley, and dynamically generated dialogue</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 current"><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#the-uncanny-valley-and-dynamically-generated-dialogue" name="the-uncanny-valley-and-dynamically-generated-dialogue"></a>The Uncanny Valley, and dynamically generated dialogue</h1> <p>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.</p> <p>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.</p> <p>These thoughts were prompted by a very interesting <a href="https://youtu.be/NmLPpcVQFJM">video</a> and <a href="https://twitter.com/GameAnim/status/844961601732018176">Twitter thread</a> about the perceived failings in the character animation system of Mass Effect Andromeda.</p> diff --git a/docs/codox/Voice-acting-considered-harmful.html b/docs/codox/Voice-acting-considered-harmful.html index b5fbd6c..17e9dec 100644 --- a/docs/codox/Voice-acting-considered-harmful.html +++ b/docs/codox/Voice-acting-considered-harmful.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Voice acting considered harmful</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 current"><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#voice-acting-considered-harmful" name="voice-acting-considered-harmful"></a>Voice acting considered harmful</h1> +<html><head><meta charset="UTF-8" /><title>Voice acting considered harmful</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 current"><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#voice-acting-considered-harmful" name="voice-acting-considered-harmful"></a>Voice acting considered harmful</h1> <h4><a href="#wednesday-25-february-2015" name="wednesday-25-february-2015"></a>Wednesday, 25 February 2015</h4> <p><img src="https://3.bp.blogspot.com/-ZI90HLjEcuo/VO4f-yXP3sI/AAAAAAAAZt4/C0hQ7hScWyM/s1600/witcher_conversation.jpg" alt="The Witcher: Conversation with Kalkstein" /></p> <p>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 Create a new room north of here called dungeon-3 the player was playing the game Pick up the rusty sword and go north or the player was talking to a non-player character Say to the wizard ‘can you tell me the way to the castle’ Of course, the parser didn’t ‘understand’ English. It worked on trees of words, in which terminal nodes were actions and branching nodes were key words, and it had the property that any word it didn’t recognise at that point in sentence was a noise word and could be ignored. A few special hacks (such as ‘the’, ‘a’, or ‘an’ was an indicator that what came next was probably a noun phrase, and thus that if there was more than one sword in the player’s immediate environment the one that was wanted was the one tagged with the adjective ‘rusty’), and you ended up with a parser that most of the time convincingly interpreted most of what the player threw at it.</p> diff --git a/docs/codox/economy.html b/docs/codox/economy.html index c8264d5..8e93312 100644 --- a/docs/codox/economy.html +++ b/docs/codox/economy.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Game world economy</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 current"><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#game-world-economy" name="game-world-economy"></a>Game world economy</h1> +<html><head><meta charset="UTF-8" /><title>Game world economy</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 current"><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#game-world-economy" name="game-world-economy"></a>Game world economy</h1> <p>Broadly this essay extends ideas presented in <a href="Populating-a-game-world.html">Populating a game world</a>, q.v.</p> <h2><a href="#primary-producers" name="primary-producers"></a>Primary producers</h2> <h3><a href="#herdsfolk" name="herdsfolk"></a>Herdsfolk</h3> diff --git a/docs/codox/index.html b/docs/codox/index.html index 05dd2bc..095c01b 100644 --- a/docs/codox/index.html +++ b/docs/codox/index.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>The-great-game 0.1.1-SNAPSHOT</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 current"><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="namespace-index" id="content"><h1><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></h1><h5 class="license">Released under the <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GNU General Public License,version 2.0 or (at your option) any later version</a></h5><div class="doc"><p>Prototype code towards the great game I've been writing about for ten years, and know I will never finish.</p></div><h2>Installation</h2><p>To install, add the following dependency to your project or build file:</p><pre class="deps">[the-great-game "0.1.1-SNAPSHOT"]</pre><h2>Topics</h2><ul class="topics"><li><a href="Baking-the-world.html">Baking the world</a></li><li><a href="Game_Play.html">Game Play</a></li><li><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html">Gossip, scripted plot, and Johnny Silverhand</a></li><li><a href="Organic_Quests.html">Organic Quests</a></li><li><a href="Populating-a-game-world.html">Populating a game world</a></li><li><a href="Settling-a-game-world.html">Settling a game world</a></li><li><a href="Simulation-layers.html">Simulation layers</a></li><li><a href="The-spread-of-knowledge-in-a-large-game-world.html">The spread of knowledge in a large game world</a></li><li><a href="Uncanny_dialogue.html">The Uncanny Valley, and dynamically generated dialogue</a></li><li><a href="Voice-acting-considered-harmful.html">Voice acting considered harmful</a></li><li><a href="economy.html">Game world economy</a></li><li><a href="intro.html">Introduction to the-great-game</a></li><li><a href="modelling_trading_cost_and_risk.html">Modelling trading cost and risk</a></li><li><a href="naming-of-characters.html">Naming of Characters</a></li><li><a href="on-dying.html">On Dying</a></li><li><a href="sandbox.html">Sandbox</a></li><li><a href="sexual-dimorphism.html">Sexual dimorphism</a></li></ul><h2>Namespaces</h2><div class="namespace"><h3><a href="the-great-game.agent.agent.html">the-great-game.agent.agent</a></h3><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div><div class="index"><p>Public variables and functions:</p><ul></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.gossip.html">the-great-game.gossip.gossip</a></h3><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.gossip.html#var-dialogue">dialogue</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-gather-news">gather-news</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-move-gossip">move-gossip</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.news-items.html">the-great-game.gossip.news-items</a></h3><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.news-items.html#var-degrade-character">degrade-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-degrade-location">degrade-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-infer">infer</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-character">interest-in-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-location">interest-in-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-character.3F">interesting-character?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-item.3F">interesting-item?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-location.3F">interesting-location?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-object.3F">interesting-object?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F">interesting-topic?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-learn-news-item">learn-news-item</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-make-all-inferences">make-all-inferences</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-news-topics">news-topics</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.markets.html">the-great-game.merchants.markets</a></h3><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price">adjust-quantity-and-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-new-price">new-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-run">run</a> </li><li> <a href="the-great-game.merchants.markets.html#var-update-markets">update-markets</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchant-utils.html">the-great-game.merchants.merchant-utils</a></h3><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices">add-known-prices</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-stock">add-stock</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-burden">burden</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-afford">can-afford</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-carry">can-carry</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-expected-price">expected-price</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchants.html">the-great-game.merchants.merchants</a></h3><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchants.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.planning.html">the-great-game.merchants.planning</a></h3><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.planning.html#var-augment-plan">augment-plan</a> </li><li> <a href="the-great-game.merchants.planning.html#var-generate-trade-plans">generate-trade-plans</a> </li><li> <a href="the-great-game.merchants.planning.html#var-nearest-with-targets">nearest-with-targets</a> </li><li> <a href="the-great-game.merchants.planning.html#var-plan-trade">plan-trade</a> </li><li> <a href="the-great-game.merchants.planning.html#var-select-cargo">select-cargo</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.strategies.simple.html">the-great-game.merchants.strategies.simple</a></h3><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.strategies.simple.html#var-move-merchant">move-merchant</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy">plan-and-buy</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-re-plan">re-plan</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy">sell-and-buy</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.time.html">the-great-game.time</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.time.html#var-canonical-ordering-of-houses">canonical-ordering-of-houses</a> </li><li> <a href="the-great-game.time.html#var-date-string">date-string</a> </li><li> <a href="the-great-game.time.html#var-day">day</a> </li><li> <a href="the-great-game.time.html#var-day-of-year">day-of-year</a> </li><li> <a href="the-great-game.time.html#var-days-in-season">days-in-season</a> </li><li> <a href="the-great-game.time.html#var-days-in-week">days-in-week</a> </li><li> <a href="the-great-game.time.html#var-days-of-week">days-of-week</a> </li><li> <a href="the-great-game.time.html#var-game-day-length">game-day-length</a> </li><li> <a href="the-great-game.time.html#var-game-start-time">game-start-time</a> </li><li> <a href="the-great-game.time.html#var-game-time">game-time</a> </li><li> <a href="the-great-game.time.html#var-now">now</a> </li><li> <a href="the-great-game.time.html#var-season">season</a> </li><li> <a href="the-great-game.time.html#var-seasons-in-year">seasons-in-year</a> </li><li> <a href="the-great-game.time.html#var-seasons-of-year">seasons-of-year</a> </li><li> <a href="the-great-game.time.html#var-waiting-day.3F">waiting-day?</a> </li><li> <a href="the-great-game.time.html#var-week">week</a> </li><li> <a href="the-great-game.time.html#var-weeks-in-season">weeks-in-season</a> </li><li> <a href="the-great-game.time.html#var-weeks-of-season">weeks-of-season</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.utils.html">the-great-game.utils</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.utils.html#var-cyclic.3F">cyclic?</a> </li><li> <a href="the-great-game.utils.html#var-deep-merge">deep-merge</a> </li><li> <a href="the-great-game.utils.html#var-make-target-filter">make-target-filter</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.location.html">the-great-game.world.location</a></h3><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.location.html#var-distance-between">distance-between</a> </li><li> <a href="the-great-game.world.location.html#var-get-coords">get-coords</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.routes.html">the-great-game.world.routes</a></h3><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.routes.html#var-find-route">find-route</a> </li><li> <a href="the-great-game.world.routes.html#var-find-routes">find-routes</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.run.html">the-great-game.world.run</a></h3><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.run.html#var-init">init</a> </li><li> <a href="the-great-game.world.run.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.world.html">the-great-game.world.world</a></h3><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.world.html#var-actual-price">actual-price</a> </li><li> <a href="the-great-game.world.world.html#var-default-world">default-world</a> </li><li> <a href="the-great-game.world.world.html#var-run">run</a> </li></ul></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>The-great-game 0.1.1</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 current"><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="namespace-index" id="content"><h1><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></h1><h5 class="license">Released under the <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GNU General Public License,version 2.0 or (at your option) any later version</a></h5><div class="doc"><p>Prototype code towards the great game I've been writing about for ten years, and know I will never finish.</p></div><h2>Installation</h2><p>To install, add the following dependency to your project or build file:</p><pre class="deps">[the-great-game "0.1.1"]</pre><h2>Topics</h2><ul class="topics"><li><a href="Baking-the-world.html">Baking the world</a></li><li><a href="Game_Play.html">Game Play</a></li><li><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html">Gossip, scripted plot, and Johnny Silverhand</a></li><li><a href="Organic_Quests.html">Organic Quests</a></li><li><a href="Populating-a-game-world.html">Populating a game world</a></li><li><a href="Settling-a-game-world.html">Settling a game world</a></li><li><a href="Simulation-layers.html">Simulation layers</a></li><li><a href="The-spread-of-knowledge-in-a-large-game-world.html">The spread of knowledge in a large game world</a></li><li><a href="Uncanny_dialogue.html">The Uncanny Valley, and dynamically generated dialogue</a></li><li><a href="Voice-acting-considered-harmful.html">Voice acting considered harmful</a></li><li><a href="economy.html">Game world economy</a></li><li><a href="intro.html">Introduction to the-great-game</a></li><li><a href="modelling_trading_cost_and_risk.html">Modelling trading cost and risk</a></li><li><a href="naming-of-characters.html">Naming of Characters</a></li><li><a href="on-dying.html">On Dying</a></li><li><a href="sandbox.html">Sandbox</a></li><li><a href="sexual-dimorphism.html">Sexual dimorphism</a></li></ul><h2>Namespaces</h2><div class="namespace"><h3><a href="the-great-game.agent.agent.html">the-great-game.agent.agent</a></h3><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div><div class="index"><p>Public variables and functions:</p><ul></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.gossip.html">the-great-game.gossip.gossip</a></h3><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.gossip.html#var-dialogue">dialogue</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-gather-news">gather-news</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-move-gossip">move-gossip</a> </li><li> <a href="the-great-game.gossip.gossip.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.gossip.news-items.html">the-great-game.gossip.news-items</a></h3><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.gossip.news-items.html#var-degrade-character">degrade-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-degrade-location">degrade-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-infer">infer</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-character">interest-in-character</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interest-in-location">interest-in-location</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-character.3F">interesting-character?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-item.3F">interesting-item?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-location.3F">interesting-location?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-object.3F">interesting-object?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F">interesting-topic?</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-learn-news-item">learn-news-item</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-make-all-inferences">make-all-inferences</a> </li><li> <a href="the-great-game.gossip.news-items.html#var-news-topics">news-topics</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.markets.html">the-great-game.merchants.markets</a></h3><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price">adjust-quantity-and-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-new-price">new-price</a> </li><li> <a href="the-great-game.merchants.markets.html#var-run">run</a> </li><li> <a href="the-great-game.merchants.markets.html#var-update-markets">update-markets</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchant-utils.html">the-great-game.merchants.merchant-utils</a></h3><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices">add-known-prices</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-add-stock">add-stock</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-burden">burden</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-afford">can-afford</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-can-carry">can-carry</a> </li><li> <a href="the-great-game.merchants.merchant-utils.html#var-expected-price">expected-price</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.merchants.html">the-great-game.merchants.merchants</a></h3><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.merchants.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.planning.html">the-great-game.merchants.planning</a></h3><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.planning.html#var-augment-plan">augment-plan</a> </li><li> <a href="the-great-game.merchants.planning.html#var-generate-trade-plans">generate-trade-plans</a> </li><li> <a href="the-great-game.merchants.planning.html#var-nearest-with-targets">nearest-with-targets</a> </li><li> <a href="the-great-game.merchants.planning.html#var-plan-trade">plan-trade</a> </li><li> <a href="the-great-game.merchants.planning.html#var-select-cargo">select-cargo</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.merchants.strategies.simple.html">the-great-game.merchants.strategies.simple</a></h3><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.merchants.strategies.simple.html#var-move-merchant">move-merchant</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy">plan-and-buy</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-re-plan">re-plan</a> </li><li> <a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy">sell-and-buy</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.time.html">the-great-game.time</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.time.html#var-canonical-ordering-of-houses">canonical-ordering-of-houses</a> </li><li> <a href="the-great-game.time.html#var-date-string">date-string</a> </li><li> <a href="the-great-game.time.html#var-day">day</a> </li><li> <a href="the-great-game.time.html#var-day-of-year">day-of-year</a> </li><li> <a href="the-great-game.time.html#var-days-in-season">days-in-season</a> </li><li> <a href="the-great-game.time.html#var-days-in-week">days-in-week</a> </li><li> <a href="the-great-game.time.html#var-days-of-week">days-of-week</a> </li><li> <a href="the-great-game.time.html#var-game-day-length">game-day-length</a> </li><li> <a href="the-great-game.time.html#var-game-start-time">game-start-time</a> </li><li> <a href="the-great-game.time.html#var-game-time">game-time</a> </li><li> <a href="the-great-game.time.html#var-now">now</a> </li><li> <a href="the-great-game.time.html#var-season">season</a> </li><li> <a href="the-great-game.time.html#var-seasons-in-year">seasons-in-year</a> </li><li> <a href="the-great-game.time.html#var-seasons-of-year">seasons-of-year</a> </li><li> <a href="the-great-game.time.html#var-waiting-day.3F">waiting-day?</a> </li><li> <a href="the-great-game.time.html#var-week">week</a> </li><li> <a href="the-great-game.time.html#var-weeks-in-season">weeks-in-season</a> </li><li> <a href="the-great-game.time.html#var-weeks-of-season">weeks-of-season</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.utils.html">the-great-game.utils</a></h3><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.utils.html#var-cyclic.3F">cyclic?</a> </li><li> <a href="the-great-game.utils.html#var-deep-merge">deep-merge</a> </li><li> <a href="the-great-game.utils.html#var-make-target-filter">make-target-filter</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.location.html">the-great-game.world.location</a></h3><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.location.html#var-distance-between">distance-between</a> </li><li> <a href="the-great-game.world.location.html#var-get-coords">get-coords</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.routes.html">the-great-game.world.routes</a></h3><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.routes.html#var-find-route">find-route</a> </li><li> <a href="the-great-game.world.routes.html#var-find-routes">find-routes</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.run.html">the-great-game.world.run</a></h3><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.run.html#var-init">init</a> </li><li> <a href="the-great-game.world.run.html#var-run">run</a> </li></ul></div></div><div class="namespace"><h3><a href="the-great-game.world.world.html">the-great-game.world.world</a></h3><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="index"><p>Public variables and functions:</p><ul><li> <a href="the-great-game.world.world.html#var-actual-price">actual-price</a> </li><li> <a href="the-great-game.world.world.html#var-default-world">default-world</a> </li><li> <a href="the-great-game.world.world.html#var-run">run</a> </li></ul></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/intro.html b/docs/codox/intro.html index 59c29c7..f7de5af 100644 --- a/docs/codox/intro.html +++ b/docs/codox/intro.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Introduction to the-great-game</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 current"><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#introduction-to-the-great-game" name="introduction-to-the-great-game"></a>Introduction to the-great-game</h1> +<html><head><meta charset="UTF-8" /><title>Introduction to the-great-game</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 current"><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#introduction-to-the-great-game" name="introduction-to-the-great-game"></a>Introduction to the-great-game</h1> <h1><a href="#the-great-game" name="the-great-game"></a>The Great Game</h1> <p>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.</p> <p>So, firstly, how does one characterise this game?</p> diff --git a/docs/codox/modelling_trading_cost_and_risk.html b/docs/codox/modelling_trading_cost_and_risk.html index b568591..867badf 100644 --- a/docs/codox/modelling_trading_cost_and_risk.html +++ b/docs/codox/modelling_trading_cost_and_risk.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Modelling trading cost and risk</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 current"><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#modelling-trading-cost-and-risk" name="modelling-trading-cost-and-risk"></a>Modelling trading cost and risk</h1> +<html><head><meta charset="UTF-8" /><title>Modelling trading cost and risk</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 current"><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#modelling-trading-cost-and-risk" name="modelling-trading-cost-and-risk"></a>Modelling trading cost and risk</h1> <p>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.</p> <p>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 <a href="the-great-game.gossip.gossip.html">gossip</a> 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.</p> <p>So: to what extent is it worth modelling the spread of knowledge of trade cost and risk?</p> diff --git a/docs/codox/naming-of-characters.html b/docs/codox/naming-of-characters.html index 42d633a..0fb4044 100644 --- a/docs/codox/naming-of-characters.html +++ b/docs/codox/naming-of-characters.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Naming of Characters</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 current"><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#naming-of-characters" name="naming-of-characters"></a>Naming of Characters</h1> +<html><head><meta charset="UTF-8" /><title>Naming of Characters</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 current"><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#naming-of-characters" name="naming-of-characters"></a>Naming of Characters</h1> <p>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.</p> <p>The full name of each character will be made up as follows:</p> <p>[epithet] [clan] [personal-name] the [trade-or-rank] of [location], son/daughter of [parent]</p> diff --git a/docs/codox/on-dying.html b/docs/codox/on-dying.html index 3120d3a..2f3206e 100644 --- a/docs/codox/on-dying.html +++ b/docs/codox/on-dying.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>On Dying</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 current"><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#on-dying" name="on-dying"></a>On Dying</h1> +<html><head><meta charset="UTF-8" /><title>On Dying</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 current"><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#on-dying" name="on-dying"></a>On Dying</h1> <p>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.</p> <p>So how could this be better handled?</p> <p>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.</p> diff --git a/docs/codox/sandbox.html b/docs/codox/sandbox.html index f3a2a72..6b51109 100644 --- a/docs/codox/sandbox.html +++ b/docs/codox/sandbox.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Sandbox</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 current"><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sandbox" name="sandbox"></a>Sandbox</h1> +<html><head><meta charset="UTF-8" /><title>Sandbox</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 current"><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sandbox" name="sandbox"></a>Sandbox</h1> <p>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.</p> <p>Why?</p> <p>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</p> diff --git a/docs/codox/sexual-dimorphism.html b/docs/codox/sexual-dimorphism.html index 25ce9d2..901ec84 100644 --- a/docs/codox/sexual-dimorphism.html +++ b/docs/codox/sexual-dimorphism.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>Sexual dimorphism</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 current"><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sexual-dimorphism" name="sexual-dimorphism"></a>Sexual dimorphism</h1> +<html><head><meta charset="UTF-8" /><title>Sexual dimorphism</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 current"><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#sexual-dimorphism" name="sexual-dimorphism"></a>Sexual dimorphism</h1> <p>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.</p> <p>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.</p> <p>OK? Let’s start.</p> diff --git a/docs/codox/the-great-game.agent.agent.html b/docs/codox/the-great-game.agent.agent.html index 90c31c3..bab56e9 100644 --- a/docs/codox/the-great-game.agent.agent.html +++ b/docs/codox/the-great-game.agent.agent.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.agent.agent documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3 current"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.agent.agent</h1><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.agent.agent documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3 current"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.agent.agent</h1><div class="doc"><div class="markdown"><p>Anything in the game world with agency</p></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.gossip.gossip.html b/docs/codox/the-great-game.gossip.gossip.html index aa503f5..e731d5e 100644 --- a/docs/codox/the-great-game.gossip.gossip.html +++ b/docs/codox/the-great-game.gossip.gossip.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.gossip documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-dialogue"><div class="inner"><span>dialogue</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-gather-news"><div class="inner"><span>gather-news</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-move-gossip"><div class="inner"><span>move-gossip</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.gossip</h1><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="public anchor" id="var-dialogue"><h3>dialogue</h3><div class="usage"><code>(dialogue enquirer respondent world)</code></div><div class="doc"><div class="markdown"><p>Dialogue between an <code>enquirer</code> and an <code>agent</code> in this <code>world</code>; returns a map identical to <code>enquirer</code> except that its <code>:gossip</code> collection may have additional entries.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L10">view source</a></div></div><div class="public anchor" id="var-gather-news"><h3>gather-news</h3><div class="usage"><code>(gather-news world)</code><code>(gather-news world gossip)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L18">view source</a></div></div><div class="public anchor" id="var-move-gossip"><h3>move-gossip</h3><div class="usage"><code>(move-gossip gossip world new-location)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> but with this <code>gossip</code> moved to this <code>new-location</code>. Many gossips are essentially shadow-records of agents of other types, and the movement of the gossip should be controlled by the run function of the type of the record they shadow. The <a href="null">#run</a> function below does NOT call this function.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L44">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with news items exchanged between gossip agents.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L62">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.gossip documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-dialogue"><div class="inner"><span>dialogue</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-gather-news"><div class="inner"><span>gather-news</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-move-gossip"><div class="inner"><span>move-gossip</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.gossip.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.gossip</h1><div class="doc"><div class="markdown"><p>Interchange of news events between gossip agents</p></div></div><div class="public anchor" id="var-dialogue"><h3>dialogue</h3><div class="usage"><code>(dialogue enquirer respondent world)</code></div><div class="doc"><div class="markdown"><p>Dialogue between an <code>enquirer</code> and an <code>agent</code> in this <code>world</code>; returns a map identical to <code>enquirer</code> except that its <code>:gossip</code> collection may have additional entries.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L10">view source</a></div></div><div class="public anchor" id="var-gather-news"><h3>gather-news</h3><div class="usage"><code>(gather-news world)</code><code>(gather-news world gossip)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L18">view source</a></div></div><div class="public anchor" id="var-move-gossip"><h3>move-gossip</h3><div class="usage"><code>(move-gossip gossip world new-location)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> but with this <code>gossip</code> moved to this <code>new-location</code>. Many gossips are essentially shadow-records of agents of other types, and the movement of the gossip should be controlled by the run function of the type of the record they shadow. The <a href="null">#run</a> function below does NOT call this function.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L44">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with news items exchanged between gossip agents.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/gossip.clj#L62">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.gossip.news-items.html b/docs/codox/the-great-game.gossip.news-items.html index 425c54d..acb2ade 100644 --- a/docs/codox/the-great-game.gossip.news-items.html +++ b/docs/codox/the-great-game.gossip.news-items.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.news-items documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3 current"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-character"><div class="inner"><span>degrade-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-location"><div class="inner"><span>degrade-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-infer"><div class="inner"><span>infer</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-character"><div class="inner"><span>interest-in-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-location"><div class="inner"><span>interest-in-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-character.3F"><div class="inner"><span>interesting-character?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-item.3F"><div class="inner"><span>interesting-item?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-location.3F"><div class="inner"><span>interesting-location?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-object.3F"><div class="inner"><span>interesting-object?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F"><div class="inner"><span>interesting-topic?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-learn-news-item"><div class="inner"><span>learn-news-item</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-make-all-inferences"><div class="inner"><span>make-all-inferences</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-news-topics"><div class="inner"><span>news-topics</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.news-items</h1><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="public anchor" id="var-degrade-character"><h3>degrade-character</h3><div class="usage"><code>(degrade-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Return a character specification like this <code>character</code>, but comprising only those properties this <code>gossip</code> is interested in.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L198">view source</a></div></div><div class="public anchor" id="var-degrade-location"><h3>degrade-location</h3><div class="usage"><code>(degrade-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Return a location specification like this <code>location</code>, but comprising only those elements this <code>gossip</code> is interested in. If none, return <code>nil</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L205">view source</a></div></div><div class="public anchor" id="var-infer"><h3>infer</h3><div class="usage"><code>(infer item rule)</code></div><div class="doc"><div class="markdown"><p>Infer a new knowledge item from this <code>item</code>, following this <code>rule</code></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L173">view source</a></div></div><div class="public anchor" id="var-interest-in-character"><h3>interest-in-character</h3><div class="usage"><code>(interest-in-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>character</code> is to this <code>gossip</code>. <em>TODO:</em> this assumes that characters are passed as keywords, but, as documented above, they probably have to be maps, to allow for degradation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L104">view source</a></div></div><div class="public anchor" id="var-interest-in-location"><h3>interest-in-location</h3><div class="usage"><code>(interest-in-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>location</code> is to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L121">view source</a></div></div><div class="public anchor" id="var-interesting-character.3F"><h3>interesting-character?</h3><div class="usage"><code>(interesting-character? gossip character)</code></div><div class="doc"><div class="markdown"><p>Boolean representation of whether this <code>character</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L115">view source</a></div></div><div class="public anchor" id="var-interesting-item.3F"><h3>interesting-item?</h3><div class="usage"><code>(interesting-item? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if anything about this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L163">view source</a></div></div><div class="public anchor" id="var-interesting-location.3F"><h3>interesting-location?</h3><div class="usage"><code>(interesting-location? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if the location of this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L148">view source</a></div></div><div class="public anchor" id="var-interesting-object.3F"><h3>interesting-object?</h3><div class="usage"><code>(interesting-object? gossip object)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L153">view source</a></div></div><div class="public anchor" id="var-interesting-topic.3F"><h3>interesting-topic?</h3><div class="usage"><code>(interesting-topic? gossip topic)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L158">view source</a></div></div><div class="public anchor" id="var-learn-news-item"><h3>learn-news-item</h3><div class="usage"><code>(learn-news-item gossip item)</code><code>(learn-news-item gossip item follow-inferences?)</code></div><div class="doc"><div class="markdown"><p>Return a gossip like this <code>gossip</code>, which has learned this news <code>item</code> if it is of interest to them.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L217">view source</a></div></div><div class="public anchor" id="var-make-all-inferences"><h3>make-all-inferences</h3><div class="usage"><code>(make-all-inferences item)</code></div><div class="doc"><div class="markdown"><p>Return a list of knowledge entries that can be inferred from this news <code>item</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L187">view source</a></div></div><div class="public anchor" id="var-news-topics"><h3>news-topics</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Topics of interest to gossip agents. Topics are keyed in this map by their <code>verbs</code>. The <code>keys</code> associated with each topic are the extra pieces of information required to give context to a gossip item. Generally:</p> +<html><head><meta charset="UTF-8" /><title>the-great-game.gossip.news-items documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3 current"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-character"><div class="inner"><span>degrade-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-degrade-location"><div class="inner"><span>degrade-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-infer"><div class="inner"><span>infer</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-character"><div class="inner"><span>interest-in-character</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interest-in-location"><div class="inner"><span>interest-in-location</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-character.3F"><div class="inner"><span>interesting-character?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-item.3F"><div class="inner"><span>interesting-item?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-location.3F"><div class="inner"><span>interesting-location?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-object.3F"><div class="inner"><span>interesting-object?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-interesting-topic.3F"><div class="inner"><span>interesting-topic?</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-learn-news-item"><div class="inner"><span>learn-news-item</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-make-all-inferences"><div class="inner"><span>make-all-inferences</span></div></a></li><li class="depth-1"><a href="the-great-game.gossip.news-items.html#var-news-topics"><div class="inner"><span>news-topics</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.gossip.news-items</h1><div class="doc"><div class="markdown"><p>Categories of news events interesting to gossip agents</p></div></div><div class="public anchor" id="var-degrade-character"><h3>degrade-character</h3><div class="usage"><code>(degrade-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Return a character specification like this <code>character</code>, but comprising only those properties this <code>gossip</code> is interested in.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L198">view source</a></div></div><div class="public anchor" id="var-degrade-location"><h3>degrade-location</h3><div class="usage"><code>(degrade-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Return a location specification like this <code>location</code>, but comprising only those elements this <code>gossip</code> is interested in. If none, return <code>nil</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L205">view source</a></div></div><div class="public anchor" id="var-infer"><h3>infer</h3><div class="usage"><code>(infer item rule)</code></div><div class="doc"><div class="markdown"><p>Infer a new knowledge item from this <code>item</code>, following this <code>rule</code></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L173">view source</a></div></div><div class="public anchor" id="var-interest-in-character"><h3>interest-in-character</h3><div class="usage"><code>(interest-in-character gossip character)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>character</code> is to this <code>gossip</code>. <em>TODO:</em> this assumes that characters are passed as keywords, but, as documented above, they probably have to be maps, to allow for degradation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L104">view source</a></div></div><div class="public anchor" id="var-interest-in-location"><h3>interest-in-location</h3><div class="usage"><code>(interest-in-location gossip location)</code></div><div class="doc"><div class="markdown"><p>Integer representation of how interesting this <code>location</code> is to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L121">view source</a></div></div><div class="public anchor" id="var-interesting-character.3F"><h3>interesting-character?</h3><div class="usage"><code>(interesting-character? gossip character)</code></div><div class="doc"><div class="markdown"><p>Boolean representation of whether this <code>character</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L115">view source</a></div></div><div class="public anchor" id="var-interesting-item.3F"><h3>interesting-item?</h3><div class="usage"><code>(interesting-item? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if anything about this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L163">view source</a></div></div><div class="public anchor" id="var-interesting-location.3F"><h3>interesting-location?</h3><div class="usage"><code>(interesting-location? gossip item)</code></div><div class="doc"><div class="markdown"><p>True if the location of this news <code>item</code> is interesting to this <code>gossip</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L148">view source</a></div></div><div class="public anchor" id="var-interesting-object.3F"><h3>interesting-object?</h3><div class="usage"><code>(interesting-object? gossip object)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L153">view source</a></div></div><div class="public anchor" id="var-interesting-topic.3F"><h3>interesting-topic?</h3><div class="usage"><code>(interesting-topic? gossip topic)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L158">view source</a></div></div><div class="public anchor" id="var-learn-news-item"><h3>learn-news-item</h3><div class="usage"><code>(learn-news-item gossip item)</code><code>(learn-news-item gossip item follow-inferences?)</code></div><div class="doc"><div class="markdown"><p>Return a gossip like this <code>gossip</code>, which has learned this news <code>item</code> if it is of interest to them.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L217">view source</a></div></div><div class="public anchor" id="var-make-all-inferences"><h3>make-all-inferences</h3><div class="usage"><code>(make-all-inferences item)</code></div><div class="doc"><div class="markdown"><p>Return a list of knowledge entries that can be inferred from this news <code>item</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/gossip/news_items.clj#L187">view source</a></div></div><div class="public anchor" id="var-news-topics"><h3>news-topics</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Topics of interest to gossip agents. Topics are keyed in this map by their <code>verbs</code>. The <code>keys</code> associated with each topic are the extra pieces of information required to give context to a gossip item. Generally:</p> <ul> <li><code>actor</code> is the id of the character who it is reported performed the action;</li> <li><code>other</code> is the id of the character on whom it is reported the action was performed;</li> diff --git a/docs/codox/the-great-game.merchants.markets.html b/docs/codox/the-great-game.merchants.markets.html index 5c3f0f8..09b56a9 100644 --- a/docs/codox/the-great-game.merchants.markets.html +++ b/docs/codox/the-great-game.merchants.markets.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.markets documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price"><div class="inner"><span>adjust-quantity-and-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-new-price"><div class="inner"><span>new-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-run"><div class="inner"><span>run</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-update-markets"><div class="inner"><span>update-markets</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.markets</h1><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="public anchor" id="var-adjust-quantity-and-price"><h3>adjust-quantity-and-price</h3><div class="usage"><code>(adjust-quantity-and-price world city commodity)</code></div><div class="doc"><div class="markdown"><p>Adjust the quantity of this <code>commodity</code> currently in stock in this <code>city</code> of this <code>world</code>. Return a fragmentary world which can be deep-merged into this world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L17">view source</a></div></div><div class="public anchor" id="var-new-price"><h3>new-price</h3><div class="usage"><code>(new-price old stock supply demand)</code></div><div class="doc"><div class="markdown"><p>If <code>stock</code> is greater than the maximum of <code>supply</code> and <code>demand</code>, then there is surplus and <code>old</code> price is too high, so shold be reduced. If lower, then it is too low and should be increased.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L6">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L79">view source</a></div></div><div class="public anchor" id="var-update-markets"><h3>update-markets</h3><div class="usage"><code>(update-markets world)</code><code>(update-markets world city)</code><code>(update-markets world city commodity)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand. If <code>city</code> or <code>city</code> and <code>commodity</code> are specified, return a fragmentary world with only the changes for that <code>city</code> (and <code>commodity</code> if specified) populated.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L57">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.markets documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-adjust-quantity-and-price"><div class="inner"><span>adjust-quantity-and-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-new-price"><div class="inner"><span>new-price</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-run"><div class="inner"><span>run</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.markets.html#var-update-markets"><div class="inner"><span>update-markets</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.markets</h1><div class="doc"><div class="markdown"><p>Adjusting quantities and prices in markets.</p></div></div><div class="public anchor" id="var-adjust-quantity-and-price"><h3>adjust-quantity-and-price</h3><div class="usage"><code>(adjust-quantity-and-price world city commodity)</code></div><div class="doc"><div class="markdown"><p>Adjust the quantity of this <code>commodity</code> currently in stock in this <code>city</code> of this <code>world</code>. Return a fragmentary world which can be deep-merged into this world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L17">view source</a></div></div><div class="public anchor" id="var-new-price"><h3>new-price</h3><div class="usage"><code>(new-price old stock supply demand)</code></div><div class="doc"><div class="markdown"><p>If <code>stock</code> is greater than the maximum of <code>supply</code> and <code>demand</code>, then there is surplus and <code>old</code> price is too high, so shold be reduced. If lower, then it is too low and should be increased.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L6">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L79">view source</a></div></div><div class="public anchor" id="var-update-markets"><h3>update-markets</h3><div class="usage"><code>(update-markets world)</code><code>(update-markets world city)</code><code>(update-markets world city commodity)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, with quantities and prices in markets updated to reflect supply and demand. If <code>city</code> or <code>city</code> and <code>commodity</code> are specified, return a fragmentary world with only the changes for that <code>city</code> (and <code>commodity</code> if specified) populated.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/markets.clj#L57">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.merchants.merchant-utils.html b/docs/codox/the-great-game.merchants.merchant-utils.html index a9df75a..1e09ec0 100644 --- a/docs/codox/the-great-game.merchants.merchant-utils.html +++ b/docs/codox/the-great-game.merchants.merchant-utils.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchant-utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices"><div class="inner"><span>add-known-prices</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-stock"><div class="inner"><span>add-stock</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-burden"><div class="inner"><span>burden</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-afford"><div class="inner"><span>can-afford</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-carry"><div class="inner"><span>can-carry</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-expected-price"><div class="inner"><span>expected-price</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchant-utils</h1><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="public anchor" id="var-add-known-prices"><h3>add-known-prices</h3><div class="usage"><code>(add-known-prices merchant world)</code></div><div class="doc"><div class="markdown"><p>Add the current prices at this <code>merchant</code>’s location in the <code>world</code> to a new cache of known prices, and return it.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L82">view source</a></div></div><div class="public anchor" id="var-add-stock"><h3>add-stock</h3><div class="usage"><code>(add-stock a b)</code></div><div class="doc"><div class="markdown"><p>Where <code>a</code> and <code>b</code> are both maps all of whose values are numbers, return a map whose keys are a union of the keys of <code>a</code> and <code>b</code> and whose values are the sums of their respective values.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L70">view source</a></div></div><div class="public anchor" id="var-burden"><h3>burden</h3><div class="usage"><code>(burden merchant world)</code></div><div class="doc"><div class="markdown"><p>The total weight of the current cargo carried by this <code>merchant</code> in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L17">view source</a></div></div><div class="public anchor" id="var-can-afford"><h3>can-afford</h3><div class="usage"><code>(can-afford merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can afford to buy in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L50">view source</a></div></div><div class="public anchor" id="var-can-carry"><h3>can-carry</h3><div class="usage"><code>(can-carry merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can carry in this <code>world</code>, given their current burden.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L35">view source</a></div></div><div class="public anchor" id="var-expected-price"><h3>expected-price</h3><div class="usage"><code>(expected-price merchant commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the price anticipated, given this <code>world</code>, by this <code>merchant</code> for this <code>commodity</code> in this <code>city</code>. If no information, assume 1. <code>merchant</code> should be passed as a map, <code>commodity</code> and <code>city</code> should be passed as keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L4">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchant-utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-known-prices"><div class="inner"><span>add-known-prices</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-add-stock"><div class="inner"><span>add-stock</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-burden"><div class="inner"><span>burden</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-afford"><div class="inner"><span>can-afford</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-can-carry"><div class="inner"><span>can-carry</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.merchant-utils.html#var-expected-price"><div class="inner"><span>expected-price</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchant-utils</h1><div class="doc"><div class="markdown"><p>Useful functions for doing low-level things with merchants.</p></div></div><div class="public anchor" id="var-add-known-prices"><h3>add-known-prices</h3><div class="usage"><code>(add-known-prices merchant world)</code></div><div class="doc"><div class="markdown"><p>Add the current prices at this <code>merchant</code>’s location in the <code>world</code> to a new cache of known prices, and return it.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L82">view source</a></div></div><div class="public anchor" id="var-add-stock"><h3>add-stock</h3><div class="usage"><code>(add-stock a b)</code></div><div class="doc"><div class="markdown"><p>Where <code>a</code> and <code>b</code> are both maps all of whose values are numbers, return a map whose keys are a union of the keys of <code>a</code> and <code>b</code> and whose values are the sums of their respective values.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L70">view source</a></div></div><div class="public anchor" id="var-burden"><h3>burden</h3><div class="usage"><code>(burden merchant world)</code></div><div class="doc"><div class="markdown"><p>The total weight of the current cargo carried by this <code>merchant</code> in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L17">view source</a></div></div><div class="public anchor" id="var-can-afford"><h3>can-afford</h3><div class="usage"><code>(can-afford merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can afford to buy in this <code>world</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L50">view source</a></div></div><div class="public anchor" id="var-can-carry"><h3>can-carry</h3><div class="usage"><code>(can-carry merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Return the number of units of this <code>commodity</code> which this <code>merchant</code> can carry in this <code>world</code>, given their current burden.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L35">view source</a></div></div><div class="public anchor" id="var-expected-price"><h3>expected-price</h3><div class="usage"><code>(expected-price merchant commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the price anticipated, given this <code>world</code>, by this <code>merchant</code> for this <code>commodity</code> in this <code>city</code>. If no information, assume 1. <code>merchant</code> should be passed as a map, <code>commodity</code> and <code>city</code> should be passed as keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchant_utils.clj#L4">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.merchants.merchants.html b/docs/codox/the-great-game.merchants.merchants.html index 6677b8b..8000bba 100644 --- a/docs/codox/the-great-game.merchants.merchants.html +++ b/docs/codox/the-great-game.merchants.merchants.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchants documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchants.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchants</h1><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a partial world based on this <code>world</code>, but with each merchant moved.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchants.clj#L8">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.merchants documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.merchants.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.merchants</h1><div class="doc"><div class="markdown"><p>Trade planning for merchants, primarily.</p></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code></div><div class="doc"><div class="markdown"><p>Return a partial world based on this <code>world</code>, but with each merchant moved.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/merchants.clj#L8">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.merchants.planning.html b/docs/codox/the-great-game.merchants.planning.html index a13ff3b..56eaf6a 100644 --- a/docs/codox/the-great-game.merchants.planning.html +++ b/docs/codox/the-great-game.merchants.planning.html @@ -1,6 +1,6 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.planning documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-augment-plan"><div class="inner"><span>augment-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-generate-trade-plans"><div class="inner"><span>generate-trade-plans</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-nearest-with-targets"><div class="inner"><span>nearest-with-targets</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-plan-trade"><div class="inner"><span>plan-trade</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-select-cargo"><div class="inner"><span>select-cargo</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.planning</h1><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="public anchor" id="var-augment-plan"><h3>augment-plan</h3><div class="usage"><code>(augment-plan merchant world plan)</code></div><div class="doc"><div class="markdown"><p>Augment this <code>plan</code> constructed in this <code>world</code> for this <code>merchant</code> with the <code>:quantity</code> of goods which should be bought and the <code>:expected-profit</code> of the trade.</p> +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.planning documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-augment-plan"><div class="inner"><span>augment-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-generate-trade-plans"><div class="inner"><span>generate-trade-plans</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-nearest-with-targets"><div class="inner"><span>nearest-with-targets</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-plan-trade"><div class="inner"><span>plan-trade</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.planning.html#var-select-cargo"><div class="inner"><span>select-cargo</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.planning</h1><div class="doc"><div class="markdown"><p>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.</p></div></div><div class="public anchor" id="var-augment-plan"><h3>augment-plan</h3><div class="usage"><code>(augment-plan merchant world plan)</code></div><div class="doc"><div class="markdown"><p>Augment this <code>plan</code> constructed in this <code>world</code> for this <code>merchant</code> with the <code>:quantity</code> of goods which should be bought and the <code>:expected-profit</code> of the trade.</p> <p>Returns the augmented plan.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/planning.clj#L110">view source</a></div></div><div class="public anchor" id="var-generate-trade-plans"><h3>generate-trade-plans</h3><div class="usage"><code>(generate-trade-plans merchant world commodity)</code></div><div class="doc"><div class="markdown"><p>Generate all possible trade plans for this <code>merchant</code> and this <code>commodity</code> in this <code>world</code>.</p> <p>Returned plans are maps with keys:</p> <ul> diff --git a/docs/codox/the-great-game.merchants.strategies.simple.html b/docs/codox/the-great-game.merchants.strategies.simple.html index f4d298e..af365bd 100644 --- a/docs/codox/the-great-game.merchants.strategies.simple.html +++ b/docs/codox/the-great-game.merchants.strategies.simple.html @@ -1,4 +1,4 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.strategies.simple documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4 current"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-move-merchant"><div class="inner"><span>move-merchant</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy"><div class="inner"><span>plan-and-buy</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-re-plan"><div class="inner"><span>re-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy"><div class="inner"><span>sell-and-buy</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.strategies.simple</h1><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p> +<html><head><meta charset="UTF-8" /><title>the-great-game.merchants.strategies.simple documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4 current"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-move-merchant"><div class="inner"><span>move-merchant</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-plan-and-buy"><div class="inner"><span>plan-and-buy</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-re-plan"><div class="inner"><span>re-plan</span></div></a></li><li class="depth-1"><a href="the-great-game.merchants.strategies.simple.html#var-sell-and-buy"><div class="inner"><span>sell-and-buy</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.merchants.strategies.simple</h1><div class="doc"><div class="markdown"><p>Default trading strategy for merchants.</p> <p>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.</p></div></div><div class="public anchor" id="var-move-merchant"><h3>move-merchant</h3><div class="usage"><code>(move-merchant merchant world)</code></div><div class="doc"><div class="markdown"><p>Handle general en route movement of this <code>merchant</code> in this <code>world</code>; return a (partial or full) world like this <code>world</code> but in which the merchant may have been moved ot updated.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L126">view source</a></div></div><div class="public anchor" id="var-plan-and-buy"><h3>plan-and-buy</h3><div class="usage"><code>(plan-and-buy merchant world)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code>, in which this <code>merchant</code> 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.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L17">view source</a></div></div><div class="public anchor" id="var-re-plan"><h3>re-plan</h3><div class="usage"><code>(re-plan merchant world)</code></div><div class="doc"><div class="markdown"><p>Having failed to sell a cargo at current location, re-plan a route to sell the current cargo. Returns a revised world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L65">view source</a></div></div><div class="public anchor" id="var-sell-and-buy"><h3>sell-and-buy</h3><div class="usage"><code>(sell-and-buy merchant world)</code></div><div class="doc"><div class="markdown"><p>Return a new world like this <code>world</code>, in which this <code>merchant</code> has sold their current stock in their current location, and planned a new trade, and bought appropriate stock for it.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/merchants/strategies/simple.clj#L84">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.time.html b/docs/codox/the-great-game.time.html index f8e3c46..f9aaae2 100644 --- a/docs/codox/the-great-game.time.html +++ b/docs/codox/the-great-game.time.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.time documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.time.html#var-canonical-ordering-of-houses"><div class="inner"><span>canonical-ordering-of-houses</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-date-string"><div class="inner"><span>date-string</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day"><div class="inner"><span>day</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day-of-year"><div class="inner"><span>day-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-season"><div class="inner"><span>days-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-week"><div class="inner"><span>days-in-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-of-week"><div class="inner"><span>days-of-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-day-length"><div class="inner"><span>game-day-length</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-start-time"><div class="inner"><span>game-start-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-time"><div class="inner"><span>game-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-now"><div class="inner"><span>now</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-season"><div class="inner"><span>season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-in-year"><div class="inner"><span>seasons-in-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-of-year"><div class="inner"><span>seasons-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-waiting-day.3F"><div class="inner"><span>waiting-day?</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-week"><div class="inner"><span>week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-in-season"><div class="inner"><span>weeks-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-of-season"><div class="inner"><span>weeks-of-season</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.time</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-canonical-ordering-of-houses"><h3>canonical-ordering-of-houses</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The canonical ordering of religious houses.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L26">view source</a></div></div><div class="public anchor" id="var-date-string"><h3>date-string</h3><div class="usage"><code>(date-string game-time)</code></div><div class="doc"><div class="markdown"><p>Return a correctly formatted date for this <code>game-time</code> in the calendar of the Great Place.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L124">view source</a></div></div><div class="public anchor" id="var-day"><h3>day</h3><div class="usage"><code>(day game-time)</code></div><div class="doc"><div class="markdown"><p>Day of the eight-day week represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L100">view source</a></div></div><div class="public anchor" id="var-day-of-year"><h3>day-of-year</h3><h4 class="type">macro</h4><div class="usage"><code>(day-of-year game-time)</code></div><div class="doc"><div class="markdown"><p>The day of the year represented by this <code>game-time</code>, ignoring leap years.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L85">view source</a></div></div><div class="public anchor" id="var-days-in-season"><h3>days-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L75">view source</a></div></div><div class="public anchor" id="var-days-in-week"><h3>days-in-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>This world has an eight day week.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L43">view source</a></div></div><div class="public anchor" id="var-days-of-week"><h3>days-of-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The eight-day week of the game world. This differs from the canonical ordering of houses in that it omits the eye.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L38">view source</a></div></div><div class="public anchor" id="var-game-day-length"><h3>game-day-length</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The Java clock advances in milliseconds, which is fine. But we need game-days to be shorter than real world days. A Witcher 3 game day is 1 hour 36 minutes, or 96 minutes, which is presumably researched. Round it up to 100 minutes for easier calculation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L8">view source</a></div></div><div class="public anchor" id="var-game-start-time"><h3>game-start-time</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The start time of this run.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L4">view source</a></div></div><div class="public anchor" id="var-game-time"><h3>game-time</h3><div class="usage"><code>(game-time)</code><code>(game-time timestamp)</code></div><div class="doc"><div class="markdown"><p>With no arguments, the current game time. If a Java <code>timestamp</code> value is passed (as a <code>long</code>), the game time represented by that value.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L78">view source</a></div></div><div class="public anchor" id="var-now"><h3>now</h3><div class="usage"><code>(now)</code></div><div class="doc"><div class="markdown"><p>For now, we’ll use Java timestamp for time; ultimately, we need a concept of game-time which allows us to drive day/night cycle, seasons, et cetera, but what matters about time is that it is a value which increases.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L18">view source</a></div></div><div class="public anchor" id="var-season"><h3>season</h3><div class="usage"><code>(season game-time)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L117">view source</a></div></div><div class="public anchor" id="var-seasons-in-year"><h3>seasons-in-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Nine seasons in a year, one for each house (although the order is different.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L60">view source</a></div></div><div class="public anchor" id="var-seasons-of-year"><h3>seasons-of-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The ordering of seasons in the year is different from the canonical ordering of the houses, for reasons of the agricultural cycle.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L47">view source</a></div></div><div class="public anchor" id="var-waiting-day.3F"><h3>waiting-day?</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Does this <code>game-time</code> represent a waiting day?</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L90">view source</a></div></div><div class="public anchor" id="var-week"><h3>week</h3><div class="usage"><code>(week game-time)</code></div><div class="doc"><div class="markdown"><p>Week of season represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L108">view source</a></div></div><div class="public anchor" id="var-weeks-in-season"><h3>weeks-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L70">view source</a></div></div><div class="public anchor" id="var-weeks-of-season"><h3>weeks-of-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L65">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.time documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.time.html#var-canonical-ordering-of-houses"><div class="inner"><span>canonical-ordering-of-houses</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-date-string"><div class="inner"><span>date-string</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day"><div class="inner"><span>day</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-day-of-year"><div class="inner"><span>day-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-season"><div class="inner"><span>days-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-in-week"><div class="inner"><span>days-in-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-days-of-week"><div class="inner"><span>days-of-week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-day-length"><div class="inner"><span>game-day-length</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-start-time"><div class="inner"><span>game-start-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-game-time"><div class="inner"><span>game-time</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-now"><div class="inner"><span>now</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-season"><div class="inner"><span>season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-in-year"><div class="inner"><span>seasons-in-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-seasons-of-year"><div class="inner"><span>seasons-of-year</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-waiting-day.3F"><div class="inner"><span>waiting-day?</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-week"><div class="inner"><span>week</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-in-season"><div class="inner"><span>weeks-in-season</span></div></a></li><li class="depth-1"><a href="the-great-game.time.html#var-weeks-of-season"><div class="inner"><span>weeks-of-season</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.time</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-canonical-ordering-of-houses"><h3>canonical-ordering-of-houses</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The canonical ordering of religious houses.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L26">view source</a></div></div><div class="public anchor" id="var-date-string"><h3>date-string</h3><div class="usage"><code>(date-string game-time)</code></div><div class="doc"><div class="markdown"><p>Return a correctly formatted date for this <code>game-time</code> in the calendar of the Great Place.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L124">view source</a></div></div><div class="public anchor" id="var-day"><h3>day</h3><div class="usage"><code>(day game-time)</code></div><div class="doc"><div class="markdown"><p>Day of the eight-day week represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L100">view source</a></div></div><div class="public anchor" id="var-day-of-year"><h3>day-of-year</h3><h4 class="type">macro</h4><div class="usage"><code>(day-of-year game-time)</code></div><div class="doc"><div class="markdown"><p>The day of the year represented by this <code>game-time</code>, ignoring leap years.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L85">view source</a></div></div><div class="public anchor" id="var-days-in-season"><h3>days-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L75">view source</a></div></div><div class="public anchor" id="var-days-in-week"><h3>days-in-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>This world has an eight day week.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L43">view source</a></div></div><div class="public anchor" id="var-days-of-week"><h3>days-of-week</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The eight-day week of the game world. This differs from the canonical ordering of houses in that it omits the eye.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L38">view source</a></div></div><div class="public anchor" id="var-game-day-length"><h3>game-day-length</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The Java clock advances in milliseconds, which is fine. But we need game-days to be shorter than real world days. A Witcher 3 game day is 1 hour 36 minutes, or 96 minutes, which is presumably researched. Round it up to 100 minutes for easier calculation.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L8">view source</a></div></div><div class="public anchor" id="var-game-start-time"><h3>game-start-time</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The start time of this run.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L4">view source</a></div></div><div class="public anchor" id="var-game-time"><h3>game-time</h3><div class="usage"><code>(game-time)</code><code>(game-time timestamp)</code></div><div class="doc"><div class="markdown"><p>With no arguments, the current game time. If a Java <code>timestamp</code> value is passed (as a <code>long</code>), the game time represented by that value.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L78">view source</a></div></div><div class="public anchor" id="var-now"><h3>now</h3><div class="usage"><code>(now)</code></div><div class="doc"><div class="markdown"><p>For now, we’ll use Java timestamp for time; ultimately, we need a concept of game-time which allows us to drive day/night cycle, seasons, et cetera, but what matters about time is that it is a value which increases.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L18">view source</a></div></div><div class="public anchor" id="var-season"><h3>season</h3><div class="usage"><code>(season game-time)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L117">view source</a></div></div><div class="public anchor" id="var-seasons-in-year"><h3>seasons-in-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Nine seasons in a year, one for each house (although the order is different.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L60">view source</a></div></div><div class="public anchor" id="var-seasons-of-year"><h3>seasons-of-year</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>The ordering of seasons in the year is different from the canonical ordering of the houses, for reasons of the agricultural cycle.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L47">view source</a></div></div><div class="public anchor" id="var-waiting-day.3F"><h3>waiting-day?</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>Does this <code>game-time</code> represent a waiting day?</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L90">view source</a></div></div><div class="public anchor" id="var-week"><h3>week</h3><div class="usage"><code>(week game-time)</code></div><div class="doc"><div class="markdown"><p>Week of season represented by this <code>game-time</code>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L108">view source</a></div></div><div class="public anchor" id="var-weeks-in-season"><h3>weeks-in-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L70">view source</a></div></div><div class="public anchor" id="var-weeks-of-season"><h3>weeks-of-season</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>To fit nine seasons of eight day weeks into 365 days, each must be of five weeks.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/time.clj#L65">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.utils.html b/docs/codox/the-great-game.utils.html index c8684dc..7a4708e 100644 --- a/docs/codox/the-great-game.utils.html +++ b/docs/codox/the-great-game.utils.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.utils.html#var-cyclic.3F"><div class="inner"><span>cyclic?</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-deep-merge"><div class="inner"><span>deep-merge</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-make-target-filter"><div class="inner"><span>make-target-filter</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.utils</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-cyclic.3F"><h3>cyclic?</h3><div class="usage"><code>(cyclic? route)</code></div><div class="doc"><div class="markdown"><p>True if two or more elements of <code>route</code> are identical</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L3">view source</a></div></div><div class="public anchor" id="var-deep-merge"><h3>deep-merge</h3><div class="usage"><code>(deep-merge & maps)</code></div><div class="doc"><div class="markdown"><p>Recursively merges maps. Stolen from <a href="https://dnaeon.github.io/recursively-merging-maps-in-clojure/">https://dnaeon.github.io/recursively-merging-maps-in-clojure/</a></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L8">view source</a></div></div><div class="public anchor" id="var-make-target-filter"><h3>make-target-filter</h3><div class="usage"><code>(make-target-filter targets)</code></div><div class="doc"><div class="markdown"><p>Construct a filter which, when applied to a list of maps, will pass those which match these <code>targets</code>, where each target is a tuple [key value].</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L18">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.utils documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch current"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.utils.html#var-cyclic.3F"><div class="inner"><span>cyclic?</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-deep-merge"><div class="inner"><span>deep-merge</span></div></a></li><li class="depth-1"><a href="the-great-game.utils.html#var-make-target-filter"><div class="inner"><span>make-target-filter</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.utils</h1><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="public anchor" id="var-cyclic.3F"><h3>cyclic?</h3><div class="usage"><code>(cyclic? route)</code></div><div class="doc"><div class="markdown"><p>True if two or more elements of <code>route</code> are identical</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L3">view source</a></div></div><div class="public anchor" id="var-deep-merge"><h3>deep-merge</h3><div class="usage"><code>(deep-merge & maps)</code></div><div class="doc"><div class="markdown"><p>Recursively merges maps. Stolen from <a href="https://dnaeon.github.io/recursively-merging-maps-in-clojure/">https://dnaeon.github.io/recursively-merging-maps-in-clojure/</a></p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L8">view source</a></div></div><div class="public anchor" id="var-make-target-filter"><h3>make-target-filter</h3><div class="usage"><code>(make-target-filter targets)</code></div><div class="doc"><div class="markdown"><p>Construct a filter which, when applied to a list of maps, will pass those which match these <code>targets</code>, where each target is a tuple [key value].</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/utils.clj#L18">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.location.html b/docs/codox/the-great-game.world.location.html index 17995a4..b0418e4 100644 --- a/docs/codox/the-great-game.world.location.html +++ b/docs/codox/the-great-game.world.location.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.location documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.location.html#var-distance-between"><div class="inner"><span>distance-between</span></div></a></li><li class="depth-1"><a href="the-great-game.world.location.html#var-get-coords"><div class="inner"><span>get-coords</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.location</h1><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="public anchor" id="var-distance-between"><h3>distance-between</h3><div class="usage"><code>(distance-between location-1 location-2)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L31">view source</a></div></div><div class="public anchor" id="var-get-coords"><h3>get-coords</h3><div class="usage"><code>(get-coords location)</code></div><div class="doc"><div class="markdown"><p>Return the coordinates in the game world of <code>location</code>, 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 <code>:location</code> property whose value is one of the above.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L13">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.location documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch current"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.location.html#var-distance-between"><div class="inner"><span>distance-between</span></div></a></li><li class="depth-1"><a href="the-great-game.world.location.html#var-get-coords"><div class="inner"><span>get-coords</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.location</h1><div class="doc"><div class="markdown"><p>Functions dealing with location in the world.</p></div></div><div class="public anchor" id="var-distance-between"><h3>distance-between</h3><div class="usage"><code>(distance-between location-1 location-2)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L31">view source</a></div></div><div class="public anchor" id="var-get-coords"><h3>get-coords</h3><div class="usage"><code>(get-coords location)</code></div><div class="doc"><div class="markdown"><p>Return the coordinates in the game world of <code>location</code>, 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 <code>:location</code> property whose value is one of the above.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/location.clj#L13">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.routes.html b/docs/codox/the-great-game.world.routes.html index db9aca6..0839bd6 100644 --- a/docs/codox/the-great-game.world.routes.html +++ b/docs/codox/the-great-game.world.routes.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.routes documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-route"><div class="inner"><span>find-route</span></div></a></li><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-routes"><div class="inner"><span>find-routes</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.routes</h1><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="public anchor" id="var-find-route"><h3>find-route</h3><div class="usage"><code>(find-route world-or-routes from to)</code></div><div class="doc"><div class="markdown"><p>Find a single route from <code>from</code> to <code>to</code> in this <code>world-or-routes</code>, which may be either a world as defined in <a href="the-great-game.world.world.html">the-great-game.world.world</a> or else a sequence of tuples of keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L46">view source</a></div></div><div class="public anchor" id="var-find-routes"><h3>find-routes</h3><div class="usage"><code>(find-routes routes from)</code><code>(find-routes routes from to)</code><code>(find-routes routes from to steps)</code></div><div class="doc"><div class="markdown"><p>Find routes from among these <code>routes</code> from <code>from</code>; if <code>to</code> is supplied, to <code>to</code>, by breadth-first search.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L5">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.routes documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-route"><div class="inner"><span>find-route</span></div></a></li><li class="depth-1"><a href="the-great-game.world.routes.html#var-find-routes"><div class="inner"><span>find-routes</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.routes</h1><div class="doc"><div class="markdown"><p>Conceptual (plan level) routes, represented as tuples of location ids.</p></div></div><div class="public anchor" id="var-find-route"><h3>find-route</h3><div class="usage"><code>(find-route world-or-routes from to)</code></div><div class="doc"><div class="markdown"><p>Find a single route from <code>from</code> to <code>to</code> in this <code>world-or-routes</code>, which may be either a world as defined in <a href="the-great-game.world.world.html">the-great-game.world.world</a> or else a sequence of tuples of keywords.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L46">view source</a></div></div><div class="public anchor" id="var-find-routes"><h3>find-routes</h3><div class="usage"><code>(find-routes routes from)</code><code>(find-routes routes from to)</code><code>(find-routes routes from to steps)</code></div><div class="doc"><div class="markdown"><p>Find routes from among these <code>routes</code> from <code>from</code>; if <code>to</code> is supplied, to <code>to</code>, by breadth-first search.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/routes.clj#L5">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.run.html b/docs/codox/the-great-game.world.run.html index 30a7964..6588175 100644 --- a/docs/codox/the-great-game.world.run.html +++ b/docs/codox/the-great-game.world.run.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.run documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.run.html#var-init"><div class="inner"><span>init</span></div></a></li><li class="depth-1"><a href="the-great-game.world.run.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.run</h1><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="public anchor" id="var-init"><h3>init</h3><div class="usage"><code>(init)</code><code>(init config)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L11">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>The pipeline to run the simulation each game day. Returns a world like this world, with all the various active elements updated. The optional <code>date</code> argument, if supplied, is set as the <code>:date</code> of the returned world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L26">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.run documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch current"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.run.html#var-init"><div class="inner"><span>init</span></div></a></li><li class="depth-1"><a href="the-great-game.world.run.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.run</h1><div class="doc"><div class="markdown"><p>Run the whole simulation</p></div></div><div class="public anchor" id="var-init"><h3>init</h3><div class="usage"><code>(init)</code><code>(init config)</code></div><div class="doc"><div class="markdown"><p><strong>TODO</strong>: write docs</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L11">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>The pipeline to run the simulation each game day. Returns a world like this world, with all the various active elements updated. The optional <code>date</code> argument, if supplied, is set as the <code>:date</code> of the returned world.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/run.clj#L26">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/docs/codox/the-great-game.world.world.html b/docs/codox/the-great-game.world.world.html index b093291..e4071ae 100644 --- a/docs/codox/the-great-game.world.world.html +++ b/docs/codox/the-great-game.world.world.html @@ -1,3 +1,3 @@ <!DOCTYPE html PUBLIC "" ""> -<html><head><meta charset="UTF-8" /><title>the-great-game.world.world documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1-SNAPSHOT</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3 current"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.world.html#var-actual-price"><div class="inner"><span>actual-price</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-default-world"><div class="inner"><span>default-world</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.world</h1><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="public anchor" id="var-actual-price"><h3>actual-price</h3><div class="usage"><code>(actual-price world commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the actual current price of this <code>commodity</code> in this <code>city</code> given this <code>world</code>. <strong>NOTE</strong> that merchants can only know the actual prices in the city in which they are currently located.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L178">view source</a></div></div><div class="public anchor" id="var-default-world"><h3>default-world</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>A basic world for testing concepts</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L10">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> with only the <code>:date</code> to this <code>date</code> (or id <code>date</code> not supplied, the current value incremented by one). For running other aspects of the simulation, see <a href="the-great-game.world.run.html">the-great-game.world.run</a>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L185">view source</a></div></div></div></body></html> \ No newline at end of file +<html><head><meta charset="UTF-8" /><title>the-great-game.world.world documentation</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name">The-great-game</span> <span class="project-version">0.1.1</span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="Baking-the-world.html"><div class="inner"><span>Baking the world</span></div></a></li><li class="depth-1 "><a href="Game_Play.html"><div class="inner"><span>Game Play</span></div></a></li><li class="depth-1 "><a href="Gossip_scripted_plot_and_Johnny_Silverhand.html"><div class="inner"><span>Gossip, scripted plot, and Johnny Silverhand</span></div></a></li><li class="depth-1 "><a href="Organic_Quests.html"><div class="inner"><span>Organic Quests</span></div></a></li><li class="depth-1 "><a href="Populating-a-game-world.html"><div class="inner"><span>Populating a game world</span></div></a></li><li class="depth-1 "><a href="Settling-a-game-world.html"><div class="inner"><span>Settling a game world</span></div></a></li><li class="depth-1 "><a href="Simulation-layers.html"><div class="inner"><span>Simulation layers</span></div></a></li><li class="depth-1 "><a href="The-spread-of-knowledge-in-a-large-game-world.html"><div class="inner"><span>The spread of knowledge in a large game world</span></div></a></li><li class="depth-1 "><a href="Uncanny_dialogue.html"><div class="inner"><span>The Uncanny Valley, and dynamically generated dialogue</span></div></a></li><li class="depth-1 "><a href="Voice-acting-considered-harmful.html"><div class="inner"><span>Voice acting considered harmful</span></div></a></li><li class="depth-1 "><a href="economy.html"><div class="inner"><span>Game world economy</span></div></a></li><li class="depth-1 "><a href="intro.html"><div class="inner"><span>Introduction to the-great-game</span></div></a></li><li class="depth-1 "><a href="modelling_trading_cost_and_risk.html"><div class="inner"><span>Modelling trading cost and risk</span></div></a></li><li class="depth-1 "><a href="naming-of-characters.html"><div class="inner"><span>Naming of Characters</span></div></a></li><li class="depth-1 "><a href="on-dying.html"><div class="inner"><span>On Dying</span></div></a></li><li class="depth-1 "><a href="sandbox.html"><div class="inner"><span>Sandbox</span></div></a></li><li class="depth-1 "><a href="sexual-dimorphism.html"><div class="inner"><span>Sexual dimorphism</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>the-great-game</span></div></div></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></div></li><li class="depth-3"><a href="the-great-game.agent.agent.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>agent</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -52px;"><span class="top" style="height: 61px;"></span><span class="bottom"></span></span><span>gossip</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.gossip.gossip.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>gossip</span></div></a></li><li class="depth-3"><a href="the-great-game.gossip.news-items.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>news-items</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>merchants</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.merchants.markets.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>markets</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchant-utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchant-utils</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.merchants.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>merchants</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.merchants.planning.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>planning</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>strategies</span></div></div></li><li class="depth-4"><a href="the-great-game.merchants.strategies.simple.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>simple</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.time.html"><div class="inner"><span class="tree" style="top: -207px;"><span class="top" style="height: 216px;"></span><span class="bottom"></span></span><span>time</span></div></a></li><li class="depth-2 branch"><a href="the-great-game.utils.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>utils</span></div></a></li><li class="depth-2"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></div></li><li class="depth-3 branch"><a href="the-great-game.world.location.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>location</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.routes.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>routes</span></div></a></li><li class="depth-3 branch"><a href="the-great-game.world.run.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>run</span></div></a></li><li class="depth-3 current"><a href="the-great-game.world.world.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>world</span></div></a></li></ul></div><div class="sidebar secondary"><h3><a href="#top"><span class="inner">Public Vars</span></a></h3><ul><li class="depth-1"><a href="the-great-game.world.world.html#var-actual-price"><div class="inner"><span>actual-price</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-default-world"><div class="inner"><span>default-world</span></div></a></li><li class="depth-1"><a href="the-great-game.world.world.html#var-run"><div class="inner"><span>run</span></div></a></li></ul></div><div class="namespace-docs" id="content"><h1 class="anchor" id="top">the-great-game.world.world</h1><div class="doc"><div class="markdown"><p>Access to data about the world</p></div></div><div class="public anchor" id="var-actual-price"><h3>actual-price</h3><div class="usage"><code>(actual-price world commodity city)</code></div><div class="doc"><div class="markdown"><p>Find the actual current price of this <code>commodity</code> in this <code>city</code> given this <code>world</code>. <strong>NOTE</strong> that merchants can only know the actual prices in the city in which they are currently located.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L178">view source</a></div></div><div class="public anchor" id="var-default-world"><h3>default-world</h3><div class="usage"></div><div class="doc"><div class="markdown"><p>A basic world for testing concepts</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L10">view source</a></div></div><div class="public anchor" id="var-run"><h3>run</h3><div class="usage"><code>(run world)</code><code>(run world date)</code></div><div class="doc"><div class="markdown"><p>Return a world like this <code>world</code> with only the <code>:date</code> to this <code>date</code> (or id <code>date</code> not supplied, the current value incremented by one). For running other aspects of the simulation, see <a href="the-great-game.world.run.html">the-great-game.world.run</a>.</p></div></div><div class="src-link"><a href="https://github.com/simon-brooke/the-great-game/blob/master/src/the_great_game/world/world.clj#L185">view source</a></div></div></div></body></html> \ No newline at end of file diff --git a/project.clj b/project.clj index d212e21..cb2ca83 100644 --- a/project.clj +++ b/project.clj @@ -1,4 +1,4 @@ -(defproject the-great-game "0.1.1-SNAPSHOT" +(defproject the-great-game "0.1.1" :cloverage {:output "docs/cloverage"} :codox {:metadata {:doc "**TODO**: write docs" :doc/format :markdown}