Challenging A Player

How to challenge a Player Without extensive Reinforcement Learning, the AIs in the simulation cannot rival the long-term planning and strategic thinking of a thoughtful human. Most AI’s will be simple heuristic agents that respond to their environment in an attempt to maximize their particular objectives (reward function). These agents will be incapable of strategic thinking. So how can the player be challenged in such an environment? Here are a few avenues: [Read More]

Designing the Population System

Population Design Document How people are represented determines the flexibility, level of detail and performance of the above societal model. A vast number of attributes apply to people including: health, age, sex occupation, skills culture, religion, race ideas/mindsets/attitudes, (imperfect) information relationships, membership of groups location For influential people (ie. actors), all these factors can be modelled on an individual basis, however this approach clearly can’t work for the nameless masses. Therefore an important design decision is how to balance the trade-offs between detail, implementation flexibility + complexity and runtime performance. [Read More]

Architecture

Architecture High level overview of each module’s purpose and function. Modules Terrain Generation World Building / State Initialization Server 3. Simulation 4. Networking Client UI Graphical Map Terrain Generation Constructs semi-random continents, islands, heightmap, biomes, raw resources (metal deposits etc.). Equivalent of Comp Geom final project, but bigger and better! Should use plate tectonics for world level, probably external library Then ‘up-sample’ using existing techniques to gain higher detail Separate process Either CLI or GUI Probably long-running Choose from several candidates before proceeding to World Building Export data in common format for re-use (protobuf, json, …) World Building / State Initialization Take terrain & climate and produce initial state of world before day0 [Read More]

Terrain Generator Module

Terrain Generator Module This module will produce the base maps that the rest of the world is built on top of. This module should be standalone and therefore easily runnable and configurable without the rest of the project. This has several advantages: Faster compilation times => faster iteration feedback loop Ability to generate many candidate maps and select the most interesting ones to build a full world with. Loading a world from disk is, generally, much faster than having to recompute it each time from a seed => faster simulation load times. [Read More]

World Building Module

World Building Module Purpose This module should take a series of map files produced by the Terrain Generator as input and construct a full initial state that the Simulation Engine can process. The map files should contain spatial data on terrain, geology, water systems and biomes. While some of these factors may eventually be simulated on the game’s timescale, most don’t change rapidly enough to justify the initial complexity and will likely initially be static. [Read More]

Map Generation

Part 2 in Historical Simulation series Societies and peoples cannot exist without a world… so let’s build one! When starting this project, we could either use Earth as the source of geography and climate, or attempt to create plausible alternatives. Using Earth brings with it all the expectations from history about what should happen where and when, even if much of history was based not on inexorable drives, but chance. Instead we will create a fresh set of terrain for each simulation, along with climate, biomes and basic geology. [Read More]

Map Generation Project

Map Generation Project By Joe Howarth Purpose This project seeks to procedurally create plausible geography and display it as a map. The generator will be used for creating the starting conditions in a historical population dynamics simulation. How to Run npm i npm run serve Methodology Unlike many map and terrain generators, this project does not use noise as the fundamental building block. Instead, it uses a Delaunay triangulation over semi-random points, then combines elevations from several hill, mountain, basin and slope functions. [Read More]

Dynamic Grand Strategy

Grand strategy games like Europa Universalis, Crusader Kings, Civilization, Victoria and even Total War each immerse the player in a simulated world. Which aspects of reality they focus on while abstracting (or ignoring) the rest, defines the experience and the game. Crusader Kings stands out as the only game attempting to model leaders’ intricasy and humanity. Victoria, through representing and tying populations’ plight or prosperity to events in the world abroad. [Read More]