PabloQuest 3

I wrote this game in 2012-2013 (updated in 2016). Its written in Python using pygame and libtcod (a library for roguelikes).

My motivation to write this game was to make my first 2D game (before this I had only written ASCII games). I experimented with SDL and Allegro and some C/C++ Engines and I decided to use Pygame since I had previously worked with Python.

The game components are Randomly generated. The players initial equipment, the dungeon layout, enemy positions, loot… Every time you play it, the game changes, so the player cannot anticipate what is going to happen.

Most of the enemies have unique abilities. For example the Giant Slug will divide itself in 2 slugs if slashed with a weapon. The Acid Beast will corrode your weapon if used against him. The sexy Sorceress will use her powers to seduce the player and make him remove his armor and weapons. The Thief will steal an item from the character’s inventory and run away… The player must learn all the enemies abilities by trial-error and successfully counter them in order to win.

Inspired by nethack I wanted the items to be able to be used in more than a different way. In most games, if you find a dagger you can only use as a melee weapon, or a potion can only be drunk. I decided to add a “throw-at” feature. Any item in the game can be thrown at an enemy. Thanks to this feature, weak weapons like daggers or heavy weapons like spears can still be useful as throwable items.

Potions deserve a special mention in this sections. The normal use of a potion would be to drink it. Then its effect will be applied to the character who drank it. (A healing potion will heal some HP, or a teleport potion will teleport the player away), but by adding the Throwing feature, now the player can throw potions as projectiles and its effects will be applied to the targeted monster and any characters in 1-tile radious. This gives the player more freedom and can use his own strategies (in some cases its better to teleport away a big monster and fight his minions instead of teleport himself away – you never know where you are gonna end up).

Potions can be thrown at enemies
Potions can be thrown at enemies

I am proud of how the game is balanced. Its hard from the beginning to the end. In most of games like this (roguelikes), experienced players can become so powerful than the monsters (in mid-late game) are not a challenge anymore. In PabloQuest 3 this doesnt happen (or at least very rarely), the random item generator prevents that. The game is designed so the player is frequently struggling to survive and each stage is a true challenge.