Further work on documentation and thinking. Not all tests pass.
This commit is contained in:
parent
3fcf16e079
commit
bc7e0f44d3
13 changed files with 108 additions and 52 deletions
|
|
@ -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>
|
||||
<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>
|
||||
Loading…
Add table
Add a link
Reference in a new issue