A downloadable game for Windows, macOS, and Linux

reign

Control the fates of a fantasy country by programming the behavior of your subjects.

reign is still in an early development stage and has very limited gameplay options. As it uses a homemade game engine, you might miss some features you are used to from other games in this development stage and find other features you did not expect.

The game prototype has had a bumpy launch in April 2017 with a lot of experimentation and little visible progress. Since November 2017 there exists now a viable concept and I hope to produce a game which is actually fun to play albeit far from complete within the first quartal of 2018.

Consider everything written from here on as a statement of intention and not a list of features. The currently downloadable versions of the game are not engaging or interesting from a gameplay perspective. They exist to motivate me as developer and for you to see how a game is taking shape.

gameplay

reign is a fantasy country simulation, which allows you to write the AI for your subjects. The game is designed to be accessible for players with little programming experience. It is a (hopefully) fun way to get better, but it will not teach you how to program.

play as one of four races
Survive as hunter-gatherer pack of goblins in the rainforests. Build castles and cities as monuments to human greatness under your iron rule. Follow the flow of magic as family of elves. Or forge intricate magitek machinery as clan of cyborg-dwarfs.

your subjects have their own minds
Your subjects will follow your orders only as long as they feel somewhat content. If you abuse them too much, they will start doing what they want. While mostly annoying, this should also prevent them from dying instantly, if you happen to make a mistake in your programming.

play it your way
reign focuses on providing a physical, unopinionated world. What you do will be your decision. For example: The game has no concept of war and peace. Your subjects will be able to fight. And they will be able to communicate. It will be in your hands to forge non-aggression pacts or tributaries - and to betray them.

character centric programming
Each of your subjects has just a limited radius of perception. They have a memory. And they can communicate with each other. This design should be more intuitive, than traditional, centralized AIs and give you a set of interesting challenges, how to coordinate and relay information to your subjects.

to be extended :-)

technicalities

use any programming language of your choosing
reign provides libraries for Scala and Java as well as JavaScript. You have a different favorite language? Simply create a WebSocket connection to the game and communicate via Protocol Buffers or JSON.

beginner friendly, visual scripting language
knit is a custom and fully extensible visual scripting language. As beginner you won't have to write a single line of code to create simple programs. As your knowledge advances and you start to experience knit's limitations, you can extend it with your own code and continue using it to structure you programs.

multi monitor support
reign's UI runs in any modern web browser. Having it opened on several windows across several screens is no problem. The screens don't even need to be connected to the same computer.

compete against the AIs of other players
You will be able to publish your AIs and download AIs from other players. Hopefully this will keep games more interesting in the long term as the behavior of your computer opponents is much less predictable.

multiplayer
When I like a game without multiplayer, I feel always a little sad that I can't share it with my friends. So multiplayer is high on the priority list for reign.

You will even be able to host multiplayer games having the game installed only on a single computer thanks to the web interface. I would also love to support stable sessions with a few hundred players. Whether I can achieve this, I am not sure. But I'm doing a lot to give it a good chance:

true multi threaded game logic
Most games run their game logic on a single thread, because everything else causes a small headache. For complex simulations, this can lead to performance problems especially in the late game. reign's game architecture is designed scale to as many threads as your computer can offer.

For huge maps or very large multiplayer games, a single computer might be too slow. reign's game logic will be able to run distributed over multiple computers.

features that are unlikely to come

audio and music
Creating a good music and sound design is beyond my skills. I am lacking the money to employ good people and the social skills to work effectively together with them. As I can't do it right, I think it is better to not have any music or sound.

official libraries for other programming languages
I can offer Java and JavaScript libraries with little effort due to the nature of Scala in which the game is being programmed in. My time is better spent improving the actual game, than making other languages first class citizens.

If you want libraries in an other language, make them by yourself and share them.

modding
reign's engine is split in several, mostly independent parts. Writing mods would be considerably harder than for other games, even if I would do my best to support mods. Currently I'm leaning more towards a very limited support of mods, likely translations and maybe customizations of the UI.

Install instructions

  • You need Java 8 installed on your machine.
  • Unzip, then launch reign.bat for Windows or reign.sh for other operating systems.
  • The user interface runs in a normal browser by calling http://127.0.0.1:8888/. In theory any modern browser will work. In practice only Firefox is currently tested.

Download

Download
reign 48 MB
Version 2017.01.02 Jan 02, 2018

Development log

View all posts