Reactor 3 is an action roguelike in the same vein as IVAN - A Violent Road to Death and S.T.A.L.K.E.R.: Shadow of Chernobyl.
Reactor 3 (R3) is a roguelike. You might be familiar with a few games in the genre, like Dwarf Fortress, NetHack, or DCSS, while also borrowing elements from Fallout and S.T.A.L.K.E.R..
R3 is a game about survival in a hostile, unforgiving environment. It takes place in the Chernobyl Exclusion Zone, where (in an alternate timeline) another disaster occurs, further corrupting the area. It is rumored that the items formed from the spike of radiation can be sold for high amounts of money on the black market.
At its core, R3 is less about combat and more about reputation. The NPCs maintain their own interpretation of the world based on randomly generated personality traits and stats, and can act independently or in groups to accomplish tasks based on this intepretation. Bandits will attack on sight, while others will ask deeper questions before confrontation begins (Am I in danger? What have I heard about this person? etc)
Combat is a last resort, but it is by no means neglected in terms of development. A full damage model is simulated, ranging from minor cuts and scrapes to full dismemberment depending on the type of injury. For example, a bullet fired towards someone wearing a backback will result in either the bullet tearing through it, or possibly colliding and causing damage to an item inside of it.
The game is developed in two parts: Engine and content. The engine still currently houses some content-specific features (for now), but forms most of its functionality by parsing external files that can be thought of as mods. Anything from controlling the body structure of an entity to its AI can be done outside of the game's code entirely.
- A dialog system.
- ALife maintain a list of needs. They will ask you and other ALife for food/drinks if none are around.
- ALife will invite you to join squads.
- ALife will explore the map somewhat intelligently (following roads, checking buildings, etc)
- ALife understand the concepts of: Trust, Danger, Willpower, Extroversion/Introversion, Leadership/Influence/Charisma.
- ALife are capable of forming groups and camps.
- ALife will fight in groups.
- Groups have and understand leaders, in addition to succession when the leader is lost
- ALife understand the world without needing "hints" (they react dynamically.)
- A work-in-progress world generator.
- Fully working "realistic" inventory system. You must wear a backpack/other clothing item in order to carry more than two items (Pants have pockets, for example.)
- All Life entities can (and will!) be damaged in realistic ways. Worn and carried items can be torn, dented, pierced, and ripped during combat. Limbs can also be injured or removed entirely.
- Weapons must be loaded as they would normally (Obtain ammo -> fill magazine/clip -> Load mag/clip.)
Reactor 3 requires Python 2.7, Cython, Numpy, and libtcod. The following instructions are aimed at Linux users:
git clone https://github.com/flags/Reactor-3.git
cd Reactor-3
python compile_cython_modules.py build_ext --inplace
Next, download the libtcod library and move the .so
files from the archive to the Reactor 3 directory.
Run python reactor-3.py
to play.
See the section flags
below for more info.
While these applications are stable, they are not as well-developed as Reactor 3.
- Terraform -
terraform.py
- Level editor. Very much in development. - ReactorWatch -
tools/ReactorWatch.py
- Web-based debugger. Connects to the currently running instance of Reactor 3 and displays debug information via a web interface. Requires Reactor 3 to be running with the--debug
argument.
Arrow keys
- Move (no 8-key movement yet)/Navigate menusEnter
- Selecte
- Equip/hold itemE (Shift-e)
- Unequip item,
- Pick up itemd
- Drop itemr
- Reload / fill mag or clipf
- Enter targeting mode (shoot)F (Shift-f)
- Set fire modev
- Enter targeting mode (talk)V (Shift-v)
- Use radiok
- Open crafting menuw
- Open medical menuC (Shift-c)
- Stand upc
- CrouchZ (Shift-z)
- ProneP (Shift-P)
- Pausel
- LookO (Shift-o)
- Options-
- Debug console
You can build relationships by asking people how they're doing. This will improve trust.
reactor-3.py
can be run with a few arguments:
--debug
- Allows ReactorWatch (tools/ReactorWatch.py
) to access debug data across the network while the game is running.--profile
- Dumps a profile toprofile.dat
.tools/show_profile.py
can be used to view the profile (use the argumenthighest
to show the most time consuming functions)
Reactor 3 is made possible by the libtcod
library. All other work was done by flags, a member of the ASCII Worlds Collective.