Author Topic: Axis of X  (Read 4548 times)


  • Newcomer
  • Posts: 15
  • Karma: +0/-0
    • View Profile
Axis of X
« on: July 26, 2013, 09:22:58 AM »
My first roguelike game is coming along slowly/nicely. It is nowhere near done, but I think at this stage it is possible to get a feel for the gameplay with the included prototype.

The player is chased by the last boss, he knows at all times how many tiles said boss is behind him. The goal is to reach the end of the dungeon before it. Enemies can be skipped, but doing so feeds the boss - making it stronger. 

The player has two resources: Health and Energy. Energy is only restored by resting, but the player can do simple actions at 0 energy. Resting takes a significant amount of time.

(Planned) Core features:
The game is a one dimensional turn-based roguelike, levels and items are randomly generated. The combat mechanics are inspired by D&D's attack/damage/evade rolls, the player gains experience by killing monsters encountered.
Each turn the player may either do simple movement(move 1 tile, wait, rest, open door), simple melee combat (attack 1 enemy) or execute 1 to 4 skills (at an increasing cost).
Races, worn weapons and classes decide which skills the player may pick/use, on each levelup the player picks another skill. Skills are very powerful, but costly.
Monsters have some semblance of intelligence (a stack of prioritized behaviors unique for each monster type).

Implemented so far (%):
Procedural level generation. (40% simple prototype running, need to add monster levels, random items)
A working system for turn based actions. (60%, missing timed effects, delayed effects, the boss)
Combat, skill execution. (70%)
A halfway done model for races/classes/monstertypes. (40%, needs a revamp)
An ok model for monster behaviors. (80%)
A good beginning for skills and SkillEffectFunction factories. (30%)
Simple SDL 2D rendering, no animations. (100%, a tad ineffective but my computer don't seem to care.)
Game balance. (0.01%)
Content. (3%)

Glaring flaws:
The console output messages are bad, I need to rewrite them.
The game is not even slightly balanced (ogre fighters wtf).
Crossbowmen flee by default instead of seeking to maintain bow range.
Boss does not exist yet.
Some "GUI-boxes" are still misaligned, "speed penalty" is mislabeled.
A clock or some visual representation of time elapsed is sorely needed.

This how it looks:
Splash screen (oh my god it is ugly): link
Ingame: link

To play:
Build from source (multi platform): download zip -> extract, navigate to folder -> runhaskell Main or ghc --make Main
Linux binary:
I couldn't get haskell-platform to work under wine so I only have ready made linux 32bit binaries, sorry. I'll get hold of a windows PC and compile it, as I'm sure noone would want to install a development platform/compiler just to test a game.

Dependencies: libsdl, libsdl-image, libsdl-ttf.

A few specific things I am interested in hearing opinions of:
How does the skill queue interaction work for you? i.e. it always fills from left to right if you pick any unassigned skill queue number. Should skills be cleared when they are executed? (ENTER) right now they are not. That you can't cancel the skill choice menu is a weakness, you can only clear the choice or choose a skill. Is it important?

Is it okay to not be able to hold down A and D for repeated sideways movement? They aren't pressed for long distances.

Do I need to color code the combat log? Perhaps timestamp it + a visible clock. Right now it looks bad.

I'll think of more, but right now I'll boot up my old Pentium 4 windows machine.

« Last Edit: July 26, 2013, 12:32:00 PM by halvorg »


  • Rogueliker
  • ***
  • Posts: 370
  • Karma: +0/-0
    • View Profile
    • Fame
    • Email
Re: Axis of X
« Reply #1 on: July 26, 2013, 10:06:30 AM »
Error 404 for the "Ingame" screen...
Fame (Untitled) - my game. Everything is a roguelike.


  • Newcomer
  • Posts: 15
  • Karma: +0/-0
    • View Profile
Re: Axis of X
« Reply #2 on: July 26, 2013, 10:10:17 AM »
Error 404 for the "Ingame" screen... this should work, I had linked to the uploader's panel.