Giter Site home page Giter Site logo

townsim's Introduction

TownSim

NPC generator

Description:

Have you ever DMed a game of D&D, thinking that your player characters are grateful, polite, and respectful? You spend hours upon hours making nations, cities, clans, families, and individuals with the utmost care. You go through the tedium of making logically structured family trees, good enough to trace the heritage of any and every NPC.

A few hours later, you want to kick it up a notch. Complex relationships are a must for some great roleplaying. Does Odin Skullcrusher care if Petri de Meriachi's store is vandalized? Despite being the daughter of Maryanne Mightybush, shouldn't young Marta inherit the name of her new mother, Brodla Porkmesiter, due to the matrilineal nature of her society?

Wow! A fortnight has gone by and your society cannot be distinguished from a rich real-life culture! How your PCs will rejoice! Every action taken by the NPCs will make perfect sense and all events will deeply impact the artificial community! Surely, your hard work will make your PCs cry your name out in The Halls of Magnificent DMs.

The players burn the city down.

Everyone is dead.

Only parents who have lost their children know your pain.

Lament no more! TownSim will allow you to create the same interconnected societies with many levels of depth in mere seconds. It will give you the tools to simulate rumor propagation that takes into account each NPC's characteristics (better to commit heinous crimes in the presence of deafmute orphans, rather than in the constable's office).

Compilation:

Eclipse
  1. Download the project files.
  2. Import the project into Eclipse.
  3. Download JgraphT from http://jgrapht.org/
  4. Include the .Jar files you downloaded in your Eclipse project.
  5. Run!
Command Line

TBA

Usage:

The Main() function is in the Run.java file. The configuration files in the Configs folder will generate a population to your specifications:

Genetics.ini sample.

  • 'FAMILIES: 7 //Number of families to generate.'
  • 'POPULATION: 200 //Total number of people to generate.'
  • 'MAX_OFFSPRING: 5 //Maximum number of offspring each human can have.'
  • 'MIN_REPRODUCTIVE_AGE: 30 //Minimum age difference between a parent/child pair and the minimum age to be eligible to have a child.'
  • 'NAME_FILEPATH: SSQCH //Name modules to use. Can be 'Italy', 'NorthAfrica', 'SouthEast', 'US', and 'SSQCH'.'
  • 'MAX_AGE: 80 //Maximum age to create when generating the people.'

Depending on where you run this application, you may need to play around with the Name and Configs folder placements.

Features:

Planned Implemented

Phase I: Static NPC Generation - making a snapshot of a populace.

  • Part A: Biological Systems

    • Simple
      • Name.
      • Age.
      • Gender.
      • Family Lines. - 90%
    • Defined
      • Age Distributions.
      • Gender Distributions.
  • Part B: Social Systems

    • Social connections. - 50%
    • Lineage.
  • Part C: Extras

    • Database integration.

Phase II: Procedural Populations - make discrete changes to the populace. * Birth/Death. * Family cluster linking.

townsim's People

Contributors

swphantom avatar

Stargazers

Will Coster avatar Jesse Frankley avatar Graham Lipsman avatar

Watchers

Graham Lipsman avatar  avatar

Forkers

satish2195

townsim's Issues

Refactor FamilyTree into two classes.

FamilyTree has generational functionality along with implementations of rumorSpread and NthConnection. These two functions are USES of a FamilyTree, as opposed to being requirements of the data structure.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.