Skip to content

colinsongf/LiSE

 
 

Repository files navigation

LiSE is an application for developing life simulation games.

Development blog

Survey for prospective users

What is a life simulation game?

For the purposes of LiSE, it is any game where you are primarily concerned with "who you are" rather than "what you're doing". Nearly everything your character can do should be represented in the game somehow, but mostly in non-interactive form. This frees the player to attend to the high-level tasks of "living" in the game world--which, in concrete terms, boil down to time and resource management.

Existing games that LiSE seeks to imitate include:

  • The Sims
  • Redshirt
  • Princess Maker
  • Monster Rancher
  • Dwarf Fortress
  • Democracy
  • Crusader Kings
  • The King of Dragon Pass
  • Galimulator
  • Vilmonic

Why should I use LiSE for this purpose?

LiSE is a game engine in the sense of RPG Maker or Ren'Py. It assumes that there are certain problems any designer of life simulators will have, and provides powerful tools specialized to those problems. Though you will still need to write some Python code for your game, it should only be the code that describes how your game's world works. If you don't want to worry about the data structure that represents the world, LiSE gives you one that will work. If you don't want to write a user interface, you can play the game in the IDE. And then again, if your game is similar enough to one that's been freely released, you can import rules from that one, and not write that code yourself, after all.

Features

Core

  • Object relational mapper for graph based world models.
  • Journaling to allow world state changes to be rewound and replayed.
  • Integration with NetworkX for convenient access to various graph algorithms, particularly pathfinding.
  • Rules engine: define your game's behavior in terms of actions that are performed in response to triggers. Change the connection from trigger to action without effort. Copy triggers and actions between games easily.
  • Can be run as a web server, so that you can control LiSE and query its world state from any other game engine you please.

IDE

  • View and edit state graphs in a drag-and-drop interface.
  • Rewind time and the interface will show you the state of the world back then.
  • Code editor with syntax highlighting.
  • Rule constructor: Build rules out of functions represented as cards. Looks like deckbuilding in a card game like Magic.
  • Autosave. Actually, anything you do gets put in a transaction that gets committed when you quit. In any case you never need to save

Getting started

# install the Kivy app framework
sudo apt-get install cython3 python3-dev python3-pip \
libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev \
libsdl2-ttf-dev
# ELiDE doesn't play movies, so disable gstreamer
USE_GSTREAMER=0 pip3 install --user kivy
# install LiSE and the ELiDE frontend
git clone https://github.com/LogicalDash/LiSE.git
cd LiSE
git submodule init
git submodule update
pip3 install --user allegedb/ LiSE/ ELiDE/

Thereafter you may run the graphical frontend as python3 -m ELiDE. If you first run an example script, you can view the world it generated by running ELiDE in the same directory.

License Information

ELiDE uses third-party graphics sets:

The icons are Symbola, by George Douros, in the public domain.

networkx, which forms the basis of LiSE's data model, is available under BSD. My versions of the networkx graph classes are in the allegedb directory, and use the same license.

reify.py is derived from the Pyramid project and carries its BSD-like license.

collide.py is ported from Kivy's garden.collider module and carries the MIT license.

The rest of the LiSE source files are licensed under the terms of the GNU General Public License version 3

About

Rules-based engine for life sims

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.6%
  • Shell 0.4%