Skip to content

Commit

Permalink
merge
Browse files Browse the repository at this point in the history
  • Loading branch information
fabio-t committed Nov 14, 2017
2 parents 36555d3 + 5c273f5 commit a60d417
Show file tree
Hide file tree
Showing 35 changed files with 954 additions and 385 deletions.
48 changes: 27 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,58 +1,59 @@
# Alone

Single-player ASCII roguelike/roguelite focused on surviving, alone, on an island inhabited by animals.
[![Latest Github release](https://img.shields.io/github/release/fabioticconi/alone-rl.svg)](https://github.com/fabioticconi/alone-rl/releases/latest)

Single-player ASCII roguelike focused on surviving, alone, on an island inhabited by animals.
The main inspiration is from [Unreal World](http://unrealworld.fi) and [Wayward](http://www.waywardgame.com),
with a much simpler gameplay.

It's a real-time game but it defaults to a turn-based modality where the world only advances during player actions,
for as long as the player action runs. Pure real-time gameplay can be toggled.

**NB: this is not even in alpha state.** Lurk freely if you like the concept, but *know* this is not playable,
by far.
Keep an eye on the [release](https://github.com/fabioticconi/alone-the-roguelite/releases) area, for the future.
**NB: this is not ready yet.** Keep an eye on the [releases page](https://github.com/fabioticconi/alone-the-roguelite/releases)
for a stable release.

## Controls

* **`directional arrows` to move** (hold two together for diagonal movement, eg UP+RIGHT to go north-east)

Move into creatures to attack them (message/combat log coming soon), trees to cut them, boulders to crush them.
For the last two you need proper tools (a cutting weapon for cutting three, not craftable yet, and a blunt weapon
for crushing boulders: you can use a stone for that)

* **`g` to get the first item** on the ground you are currently positioned on (stones, sticks, corpses, tree trunks..
there's no inventory limit for now).
Move into creatures to attack them, trees to cut them, boulders to crush them.
For the last two you need proper tools (a cutting weapon for cutting three and a blunt weapon
for crushing boulders).

* **`g` to get an item**. You must move onto it first. There is no inventory limit.

* **`d` to open the Drop screen**. You will be able to choose which item to drop.

* **`e` to open the Eat screen**. You can only eat corpses that you have taken from the ground, for now.

* **`w` to wear or wield an object** via the Equip screen. Stones and branches will do nicely for now.

* **`l` to open the Look screen**. Move around to choose a target (if you have Line of Sight) and press **`t`** to throw
an equipped weapon in that direction.

* **`c` to open the Craft screen**. A list of recipes is loaded anew from a yaml file and displayed. See
[Crafting](https://github.com/fabioticconi/alone-rl#crafting) for details.

There are also some special commands:

* **`Ctrl+SPACE`** to toggle real-time/turn-based behaviour

* **`SPACE`** to pause/unpause if you are on real-time mode; if you are on turn-based mode, keep `SPACE`
pressed to temporarily run the game in real-time (needed, for example, to recover stamina when you finish it,
or regenerate health).

* **`F1`** removes the speed delay of the player. Useful to test the game without having to suffer the movement delays.
Will be removed in the final version.

* **`F2`** restores the correct player speed.
Will be removed in the final version.

## Screenshots

This is how the game looks when run (**very** preliminary GUI):

![](screenshots/gameplay.gif)

A few wolves are chasing rabbits, while pumas manage to bring a buffalo down.

### Map

![](screenshots/orig_map.png)
Expand All @@ -74,6 +75,8 @@ Later the terrain will be configurable by the user.

You can also see some rivers (still in-progress, not in the game yet) flowing from high to low places.

Note: this is only temporary. In the final game the terrain will be randomised.

## Features

### Field of view
Expand All @@ -85,14 +88,14 @@ Pathfinding is both precise and efficient thanks to an AStar implementation that
to plan a course to a target position.

What this means for the end user is that the game doesn't cheat. It doesn't magically make creatures see you
if they shouldn't. The other creatures can only do what *you* also can.
if they shouldn't. The other creatures can only do what *you* can also do.

### Simple Ecology Simulation
### Simple Ecology

Creatures don't "pop" or "spawn", they don't just appear when needed but they keep going even when the
Creatures don't "pop" or "spawn", they don't just appear when needed but they *exist*; and they keep going even when the
player is not looking.

This is the main difference between Alone and most roguelikes/roguelites. It makes it a simulation game, to an extent.
This is the main difference between `AloneRL` and most roguelikes/roguelites. It makes it a simulation game, to an extent.

Different creatures have different set of behaviours:

Expand All @@ -116,5 +119,8 @@ Escape predators, steal their carcasses if you can, or kill any walking thing an

### Crafting

**Not implemented yet**. It will cover the basic primitive technology of a Neolithic hunter, eg stone knives, spears and axes,
It will cover the basic primitive technology of a Neolithic hunter, eg stone knives, spears and axes,
simple bark protection, a shelter, maybe rudimentary pit traps and extraction of parts from dead animals.

All currently implemented recipes can be seen (and modified, added or removed) in the file
[crafting.yml](data/crafting.yml).
7 changes: 4 additions & 3 deletions alone-rl.iml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,11 @@
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.1" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.18" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.1" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.3.1" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.3.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.0" level="project" />
</component>
</module>
51 changes: 15 additions & 36 deletions data/crafting.yml
Original file line number Diff line number Diff line change
@@ -1,41 +1,20 @@

branch:
name: a branch
#source:
# external: tree
sharp-stone:
sources: stone
tools: stone

tree-trunk:
name: a tree trunk
#source:
# external: tree
tool: axe
small-sharp-stone:
sources: sharp-stone
tools: stone

stone:
name: a stone
#source:
# external: boulder
tool: stone
n: 3
stone-hammer:
sources: [stone, branch, vine]
tools: stone

sharp-stone:
name: a sharp stone
source: stone
tool: stone
stone-axe:
sources: [sharp-stone, branch, vine]
tools: stone

#small-sharp-stone:
# name: a small, sharp stone
# source: [sharp-stone]
# tool: stone
# n: 2
#
#stone-hammer:
# name: a stone hammer
# source: [stone, branch]
#
#stone-axe:
# name: a stone axe
# source: [sharp-stone, branch]
#
#stone-spear:
# name: a stone spear
# source: [small-sharp-stone, tree-trunk]
stone-spear:
sources: [small-sharp-stone, trunk, vine]
tools: stone
136 changes: 132 additions & 4 deletions data/items.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,140 @@

stone:
name: a stone
name: a round stone
wearable:
where: HANDS
weapon:
damageType: BLUNT
damage: 2
sprite:
c: 7
col:
red: 88
green: 88
blue: 88

branch:
name: a branch
name: a sturdy branch
wearable:
where: HANDS
weapon:
damageType: BLUNT
damage: 1
sprite:
c: '/'
col:
red: 141
green: 104
blue: 21

vine:
name: a thin, flexible branch
sprite:
c: 239
col:
red: 36
green: 122
blue: 7

trunk:
name: a tree trunk
name: a fallen tree
sprite:
c: 22
col:
red: 141
green: 104
blue: 21

boulder:
name: a boulder
name: a big boulder
sprite:
c: '#'
col:
red: 88
green: 88
blue: 88
shadowView: true
obstacle: {}
crushable: {}

tree:
name: a mature tree
sprite:
c: T
col:
red: 0
green: 205
blue: 113
shadowView: true
obstacle: {}
cuttable: {}

sharp-stone:
name: a sharp stone
wearable:
where: HANDS
weapon:
damageType: SLASH
damage: 2
sprite:
c: 4
col:
red: 88
green: 88
blue: 88

small-sharp-stone:
name: a small, sharp stone
wearable:
where: HANDS
weapon:
damageType: POINT
damage: 2
sprite:
c: 17
col:
red: 88
green: 88
blue: 88

stone-hammer:
name: a stone hammer
wearable:
where: HANDS
weapon:
damageType: BLUNT
damage: 4
sprite:
c: 209
col:
red: 141
green: 104
blue: 21

stone-axe:
name: a stone axe
wearable:
where: HANDS
weapon:
damageType: SLASH
damage: 4
sprite:
c: 184
col:
red: 141
green: 104
blue: 21

stone-spear:
name: a stone spear
wearable:
where: HANDS
weapon:
damageType: POINT
damage: 4
sprite:
c: 244
col:
red: 141
green: 104
blue: 21
21 changes: 19 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

<groupId>com.github.fabioticconi</groupId>
<artifactId>alone-rl</artifactId>
<version>0.1.1</version>
<version>0.2.0</version>
<packaging>jar</packaging>

<name>AloneRL</name>
Expand Down Expand Up @@ -74,14 +74,31 @@
<version>4.12</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.3.1</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-parameter-names</artifactId>
</dependency>

</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>2.9.0</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>

<build>
<plugins>
<plugin>
Expand Down
Binary file modified screenshots/gameplay.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit a60d417

Please sign in to comment.