Skip to content

MovingBlocks/Kallisti

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kallisti

Kallisti is a library for embedding fantasy computer virtual machines inside other JVM-based systems, particularly JVM-based game engines.

Fantasy computers, in this meaning, refer to imaginary architectures designed for computer games, versus real-world technology. (However, it does not exclude support for the latter!)

Why?

  • Many sandbox-leaning games like to feature, or make available, an in-game computer system. Having a library which solves the most common problems and provides compatibility with existing "fantasy" in-game codebases greatly simplifies that.
  • Having a built-in simulator allows creators to test their in-game software without using the entire game engine, which can be a costly and CPU/GPU-intensive process.
  • Having a common interface makes it easier for you to create your own, compatible designs and peripherals which work across all games and architectures.

Key concepts

  • Separation of the APIs of the game engine and of the virtual machine.
    • "Components" can be provided by the engine, and via implementing generic interfaces and automatically being wrapped through a rule-based system, the computer VM can translate it into APIs it understands internally.

How to use

There are two main ways to use Kallisti:

  • Embed it in your own project (for example, KComputers for the Terasology game engine),
  • Run the simulator.

To run the simulator, simply compile the project with gradle, then run java -jar KallistiSimulator.jar simulator.json, where simulator.json is a valid .JSON simulator definition.

Supported architectures

  • (WIP) OpenComputers/JNLua, based on the OpenComputers mod project.

About

Library for embedding fantasy computer virtual machines in game engines.

Resources

Stars

10 stars

Watchers

10 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages