Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joehowarth/population-simulation
https://github.com/joehowarth/population-simulation
babylonjs historical javascript map-generation procedural-generation rust simulation specs vue vuejs vuex
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/joehowarth/population-simulation
- Owner: JoeHowarth
- License: gpl-3.0
- Created: 2018-10-26T00:32:37.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-02-28T11:34:14.000Z (almost 2 years ago)
- Last Synced: 2024-10-12T01:42:49.875Z (4 months ago)
- Topics: babylonjs, historical, javascript, map-generation, procedural-generation, rust, simulation, specs, vue, vuejs, vuex
- Language: Jupyter Notebook
- Size: 3.23 MB
- Stars: 15
- Watchers: 3
- Forks: 2
- Open Issues: 39
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![](https://tokei.rs/b1/github/JoeHowarth/Population-Simulation?category=code&exclude=*.json)](http://github.com/JoeHowarth/Population-Simulation)
## Update
This repo is not being actively developed, but the larger project idea is still active. This setup is user-focussed with significant considerations for parallezation, scalable archetecture etc., but I found that many components still need to be designed and this setup doesn't allow for fast enough iteration. In that spirit I've focussed on smaller projects that tackle an aspect of this in the hope that down the line I can take what I've learned and build the project I outlined in the design docs here. Right now I'm mostly focussed on a market based econonic engine and building out developer tooling to make the simulations more interpretable and debuggable while I'm writing them.
**2022 update**: A fresh take on this architecture with a much smaller scope lives in https://github.com/JoeHowarth/trade-sim
-----------
See
- [Architecture](design_docs/Architecture.md) for technical details
- [Map Generation](design_docs/MapGen_README.md) for Computational Geometry Final Project
- [Population Design Discussion](design_docs/PopulationDesign.md)
- [How to Challenge the Player](design_docs/ChallengingThePlayer.md) for lamenting about traditional AI's limitation### How to Run
Requires Rust nightly [here](https://www.rust-lang.org/tools/install)
rustup install nightly
git clone [email protected]:JoeHowarth/Population-Simulation.git
cd Population-Simulation
rustup override set nightly
cargo build
In new terminalcd vue-client
npm install
npm run serve- open localhost:8080 in chrome
- Click on Map Debugger -> Generate Map
- In other terminal```
cargo run
```- now refresh client in browser
In future, won't have to generate map file separately.
---
**Below is outdated**### 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' intricacy and humanity.
Victoria, through representing and tying populations' plight or prosperity to events
in the world abroad.
Each bring a different perspective, yet all feel somewhat static in how they model
their world.
None besides Victoria even allow for private economy, shifting populations,
founding new cities, changing provincial areas, shifting national ideas etc. etc.Inspired by the Europa Universalis 4 mod Meiou and Taxes and specifically Demian Sky,
here I will explore creating a truly dynamic historical simulator and the
technical challenges that come with it.The world should feel *alive*.
Critical Elements
--------- Population
- Wealth and Trade
- Ideology, Religion and Culture
- Food
- Settlements
- Knowledge and Technology
- Leaders
- Government Structure
- Diplomacy and Politics
- Geography and ClimateEventually, all these elements should be linked together.
Of course, doing any of these areas justice requires a monumental amount of work,
so it's necessary to start with a smaller scope and focus.Initial Roadmap
-----------------Here's roughly how I envision this project progressing
1. Workable proceducal map generator
2. Technical infrastructure MVP
3. Initial settlement placement
4. Population dynamics
5. Trade and economic systems
6. Re-evaluationNext we'll take a closer look at map generation and then the infrastructure behind the
simulation