Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - SomeGuy

Pages: [1]
Classic Roguelikes / Wondering how to play "Hack" on Linux?
« on: October 26, 2017, 06:30:46 PM »

So far, I didnt have luck trying to do so.
I am under a debian-based distro. There is no "Hack" in the repo at all.
Also I found this:

But the sources there wont compile.
It says that BSD systems have builds for modern architectures, but I could find anything so far.

Anyone tried or knows how to do play it?

I could go with a DOS version, but I am lazy to install Dosbox just to play this game  ::)

Design / I need opinion on this map design
« on: October 18, 2017, 10:32:14 AM »
Randomly generated using small chunks of map.
Maps end up looking like this:

It is for a sci-fi rl that takes place inside a spaceship.
The colours in the screenshot are NOT the ones in the real game. It only shows the map layout itself. It is missing (on purpose for topic) all the map features, fov, enemies, etc... Also walls ASCII character could be changed to "#" instead.

What do you think about the map layout? Does it look too much labyrinthic? Too many corridors? Too many rooms? Does it look "too random" or some defined structures can be clearly defined by the player? Does it look interesting to explore in general terms? Could it look like a spaceship or it looks too generalist? Would it look better with more wider corridors? Would it look better with more bigger rooms? Should it have more or less "walkable" space? Would it look better if it looked more symmetric? Would it look better if it had less variety of room styles?

Any constructive thought will be welcome.
Thanks beforehand : )

Design / Approaching "enemy sees player"
« on: October 17, 2017, 11:26:39 AM »

I am stuck with this problem
I need opinions on how would you implement the way enemies detect/see players.
Lets say, at first, enemies are inactive. They didnt see the player and they dont move.

How would you make enemies to detect the player, when he (the player) is seen/detected?

I thought about three different ways:

1) Enemies have their own LOS. When the player enters the LOS of the enemy, then the enemy awakes and starts chasing the player. This way uses a LOS algorithm for each monster, each turn. I think it is the most realistic and flexible, since the enemies can have their our "see distance", and enemies can awake from outside players LOS (i.e. the enemy has a bigger LOS than the player). But the downside is, we have to recalculate a LOS all the time.

2) Simple squared, static LOS. Enemies have a simple square/circle of sight around them that covers both floor and walls. Whenever the player enters this squared LOS, the enemy awakes. The goodness about this is that you can justify it going over walls as "the enemy can hear someone around". Also it should be faster than the true and real LOS. In this case is just checking some map cells around the enemy. The downside is, it is less realistic, and could awake enemies that are in a room/corridor completely unconnected from the player's location

3) Enemies awake when player sees them. In this case, the enemies only awake when they are seen by the player. It is quite ok for a simple roguelike, but I need to implement enemies with different LOS size, so this wont work. Anyway, the goodness about this is, only calculate LOS once per turn, and check if any enemy is within player's LOS. Downside, it wont work if you need to implement enemies with different LOS size.

4) The pathfinding way. I thought about running a pathfinding algorithm every turn for each monster, starting in moster x,y position, and finishing in player x,y position. Then, for each "step" in the path, we check whether the player is in such step or not. We repeat this "player check" for a certain amount of times, that are basically the enemy see distance. This is good and quite realistic since you can simulate not only a LOS, but also "enemy hears the player around the corner, even when there is not direct "eye contact" (because pathfinding will turn over corners and etc). The bad is, heavy on calculations, it is basically a pathfinding algorithm every turn for each monster.

Do you have any other idea or thought?

Please share with us.


Design / What makes a roguelike easy or hard?
« on: September 08, 2016, 02:52:17 PM »
Trying to develop a roguelike-like game.

But I came up with a serious problem: what makes a roguelike game hard or easy?
I mean with that, which *fair* factor should increase or decrease a roguelike game difficulty.

For example, having overpowered enemies is not a fair feature. That is something that the player cannot control or even participate in any decision.
But if we think about limited number of spells casts, or weapons durability or similar factors, they can make the roguelike easy or hard if the player doesn't make the correct decision.

Or anything similar to that, which is a feature of the game that the player has to take into consideration, since it is a necessary but limited resource/mechanics/<whatever>.

So then, which features do you think are worth considering when trying to establish a difficulty for a roguelike?

Design / Simple AI/Logic for chosing enemy skills?
« on: June 12, 2015, 11:05:47 AM »
In the current RL i'm developing, enemies will have two skills as follows:

Main Skill: this will be the long range damaging skill. It can be used when the enemy is far away from the player. Not necessarily the favourite skill.
Secondary Skill: this will be a shorter range skill. It will come either as a support skill (buff/healing/shielding, etc..), as a short range high-damage skill or as a debuffing skill.

But I'm not sure which logic should the enemies follow for choosing one skill or the other. Any idea?


Design / Roguelike mechanics idea
« on: June 08, 2015, 12:24:30 PM »

I'm starting to design a new roguelike, and I have been thinking about the game mechanics before starting coding anything.

The game will require some degree of strategy from the player to be successful. Losing the game will be due to the player commiting many smaller errors, so it is possible for the player to realize that something was done wrong, and mend the error.

Let me explain what I have planned so far, and give me your oppinion and which things would you change.

First, the game is about a mage which has been trapped in a dungeon/dymension/cave/castle/whatever. He must climb to the top floor and find the portal back to home.

At first sight, the game will be slightly based on Drakefire Chasm in what there are several elements (fire, ice, lightning, whatever) and each enemy is resistant or weak against a certain element, but the player won't know this information first hand, since the enemies' names will be "frenzied zombie" instead of "fire zombie". In this case, this will be a zombie made of fire, so it is resistant (or immune) to fire spells, then, the player will have to adapt to that type of enemies.

The player can only attack using magic attacks. There won't be close combat at all. And magic is organized in different schools of magic, and increasing your proficiency on a specific school will give you more spells (not necesarily more damaging spells), so, lets say, you increase your fire magic proficiency, you will get fireball, fireblast, but also utility and buffing spells.

The schools of magic are organized in such a way that increasing a certain school will decrease the opposite one.
For example, increasing Fire will decrease ice, and increasing death will decrease life, and the other way around.

This may look a bit counterproductive if you are full fire and you find a fire-immune enemy. Well, actually, the game will provide two methods to avoid this:

1.- The game will reward the player when creating an hybrid class. For example, increasing Fire could grant access to utility spells that increase ice damage, so even your low level ice spells may deal good damage. It is basically a synergy system, that may reward players that are 50% fire and 50% ice rather than 90% fire and 10% ice.
For example, lets say the maximun school proficiency is 10. It may be possible that fire level 5 will provide a utility spell that absorbs heat from enemies greatly reducing their resistance to ice. Or a level 5 Ice spell which may see its damage increased by 100% if the player has certain fire buff that is also a level 5 fire spell.

2.- After completing each level, the player will be able to redistribute or change the spells proficiency, so s/he can try different builds which can match his/her playing style. But changing proficiencies doesn't come for free: along the level the player will find mastery orbs/scrolls/jewels/... that will allow to change assigned points. One orb/scroll/jewel/... will be consumed when you reassign a mastery point. Of course, these orbs will rather easy to find, but won't be as easy as letting the player to completely rebuild the all of the proficiencies each level. The player must decide either to continue with the current build and save orbs for later, or keep doing small changes.

Now, when enemies attack, there won't be a random dice throw to check if they hit, or even for calculating damage.
Combat will be deterministic, and the way in which the player builds the character will have a lot of weight in combat.

First, the same as enemies, the player will have resistances to different schools of magic. These resistances change when the player increases the mastery of his/her magic proficiencies in each school.
For the player, resistances will be granted to the opposite school of magic that is mastered. For example, increasing Fire, will increase Cold resistance.

So, in this aspect, the game is rewarding pure builds rather than hybrid. A full fire build will be immune to ice, but will receive full damage from fire attacks.
Of course, hybrid builds will have some benefit, such as buffs that slightly increase your resistance to a certain element.

Combat mechanics, as I mentioned before, will be deterministic.
Spells will deal a fixed amount of damage. Or maybe wil deal random damage in a set range, such as 10 - 20.
Spells from both, player and enemies, will always hit their target, but damage will be reduced according to resistances.

Now, how do you increase your proficiencies? I didn't thought too much about this but I have three possibilities: either give 1 proficiency point at the end of each level, OR allow the player to find "proficiency scrolls" that will increase proficiency in a certain school or magic, OR my prefered one, increase proficiency when you use spells of such school, making each time harder and harder to increase that school. Something like a experience but for each school of magic.

Now about the "mana system". There won't be "mana" as is, but rather, an "overcharge" system. Let me explain: we will have one "overcharge bar" per each school of magic. Casting spells of such school of magic will fill its corresponding bar for a certain amount (more powerfull spells will fill more). The more filled the bar is, the more powerful the spells of such school will become.
For example, fireball may deal 10 - 20 damage, but that damage will be increased by 1 per each point of "fire overcharge", so if "fire overcharge" equals 20, then fireball will deal 30 - 40. BUT, if the fire overcharge bar reaches its limit, the player won't be able to cast fire spells anymore.
After a set duration, the bar will fully empty.

About the overcharge system, if the bar is not full, you can decrease it a little bit by casting spells of the oposite school of magic.
Of course, the amount reduced will be small, so situations like "infinite mana" won't be possible. It is more like a delaying a filled bar, letting the player to develop a good strategy.

So far, that is what I have been thinking so far.
Any thoughts?

Other Announcements / Unknown Roguelike: Dungeons of Morabis
« on: March 27, 2013, 03:55:52 PM »
Found this while looking for some Dungeon Master clone:

Couldn't pass the first room: some kind of blinking ghost killed me.

You can download it from here:

Note that the game is real-time and turn based. You will understand if you try it. Basically, time is passing and computer gets its turns even when you are idle. But when you move or do some action, the computer will take its turns too.

For playing, you will need to use DosBox or Dosemu.
Next download an uncompress the .rar.
To actually play the game, you need to execute MORSETUP.EXE with DoSBox first.
Then you can play the game with MORABIS.EXE.

In fact, when you run MORSETUP.EXE a new character and dungeon will be created.

Some keybindings I managed to find:

ArrowKeys: move
I: inventory
L: look + direction
Q: quaff
E: enter a place. Probably to go downstairs
A: attack (in fact, using A+arrowkey is the only way to attack)
R: Read Scroll (R + inventory letter)
O: Open with key (actually it says 'you are short of keys', so it is supposed this will open something closed)
S: Search (probably traps & hidden doors)
D: drop (D + inventory letter)
G: get, pick up
Z: zap
C: rename object
V: turns on/off the sound
Shift+Q: save and quit
Shift+E: eat something (Shift+E plus inventory letter)
Shift+S: save game

Programming / AI for RPG chess-type game from scratch
« on: January 18, 2013, 11:11:42 AM »
Hi there.

It's a game I'm developing now, much more advanced than WitchavenRL in some aspects.
It is/will be something like Chaos: The battle of wizards but with some different game mechanics.

I know it's not a Roguelike Game, but some RL developers may have some ideas about AI development so I would want to discuss here some "homemade" methods for this game.

Right now, I'm implementing an AI based on threat level and character personality. Let me explain this:

The map or board is cell based. The player can summon creatures, and the enemy too (if you watch the video before you know what i'm talking about).
The player will be able to move his creatures, so the AI part will be only for enemy creatures and enemy mage.

When the enemy turn starts, the game calculates a "threat table", that is exactly like the game board, but each cell contains the threat level of such cell.
The threat of a cell is calculated by "running" through every player creature and adding to all his possible movement cells a threat amount based on the creature overall strength.
So, after checking all player creatures, the threat map is filled with numbers.

The second part of the AI is the movement itself. I'm using an efficiency method using personalities.
When the enemy mage wants to move to a cell, the game checks every possible cell where the enemy mage can move. For each of those cells, a cell efficiency is calculated. To do this, the game adds or deducts efficiency by having into account if the cell is closer to the player mage, if the cell has high or low threat, if the cell has or not a player monster, and some other parameters.
After running for all those cells, we obtain the most efficient one, so finally the enemy mage (or enemy creature) moves to that cell. Of course, the cell efficiency calculation has into account the enemy personalities such as aggressiveness and wariness (more personality aspects could be included).

That's basically the AI for choosing the best cell to move.
It doesn't have any possible future movements checking like in a true chess AI. This would be fairly easy to implement. But right now, I got the AI like described above.

What I would like is to know some opinions and tips on how to enhance this, or even other algorithms that are simple as this one.

Programming / Cursed items on item-based RLs?
« on: January 08, 2013, 11:28:16 AM »
I came to a situation where I need some opinions about cursed items.

I was modifying some things in WitchavenRL when I considered the idea of allowing Magic Shards (if you did not player WitchavenRL, they are used to enhance weapons) to be cursed or having negative random effects.

For example, actually the SOL (Shard of Life) changes the base weapons damage and damage modifier by random(-1, 2). This means that the weapon can get more damage or reduce it or just remain unchanged.

Since advancing in WitchavenRL  is heavily based on items found by the player, I'm not sure how negative effects applied by shards are balanced.

In addition, shards have a 20% chance to appear on map and 10% to be found from corpses, which is relatively small chance in either case.
So I concluded that making the shards to decrease weapons damage is not much balanced since they are quite precious and valuable items.

So... what's your opinion?
Should those kind of items be possibly cursed or apply negative effects?

Programming / When restart shoot target?
« on: December 25, 2012, 03:51:33 PM »
In most RLs, when you want to shoot at a target there appears a X or something, that lets you choose the target of your ranged attack.

It is expected that when you select a monster and shoot at him, if the monster is still alive, the X keeps in the previous aiming position so you don't have to move it all the way back to the new monster position.

The question I have is: when is this X expected to be restarted and show back over the player position?

So far, I restart it when the monster is killed, but I'm not sure if restarting it when the player moves is a good idea because in combat the player may move for any reason, but still he may want to keep the same target.

Also I thought about a "isInCombat" flag, that is true when in combat, and false when every monster is killed and/or inactive. So, moving the player while in combat, the crosshair keeps in the same previous position, and when out of combat, if the player moves the crosshair restarts.

The problem with this is that the player may want to target another target that is opposite of the previous target, and there will be no way to restart the crosshair while in combat.

So basically, what is, in your opinion, the expected or desired behavior here?

I know it may sound a stupid question, but when playing around with many ranged attacks, having to manually target over and over may be annoying, and I want the less annoying way to do this.

Also, BTW I'm not interested ina "autoselect nearest target" thing. That will come in later versions.

Programming / Press to move or press to single-step?
« on: December 21, 2012, 10:30:56 AM »
Sorry for the poll, I know it may annoy some people, but I got some feedback from people that says that "move your character while key is pressed" is not good , it could be dangerous, etc...

SO basically, I am interested in community opinion about this matter.

The options in the poll are, I think, quite self explanatory:

1: means that you like to move your character while you keep the key pressed, and he will always move or attack until blocked by something or killed, or key is released
2: means that you prefer one key press per step, so transversing a 5 squares corridor requires 5 key presses, and attacking an enemy requires you to press the key for each weapon blow.
3: means that you would find interesting that the game allows switching modes, so you can use whatever you want in different situations.
4: means you got some other method that you find interesting.

Thanks a lot.




Access download page with changelog, and news here:

Direct link to download files:

Please, let the bug reports and feature request to flow.
Remember that it is still a beta version and some features are still unimplemented, although the game is 100% playable, you can win the game... or die ^_^

Other Announcements / RL map ASCII symbols for uncommon objects
« on: December 19, 2012, 10:03:46 AM »
Hi there.

I would like to ask to the community about opinion for different ASCII symbols for uncommon objects in the map.
I will be using the typical symbols for common items in Nethack or Rogue:
# Walls
ยท floor (the high point, not the common point)
) weapons
! potions
[ armors
% food / corpses
? scrolls
! potions
= rings and jewelry
* gems
$ gold

Monsters use letters as usual.

But within my RL there are some items that there not appear in other RLs, so I would thank some ideas on good ASCII (preferably NOT unicode) symbol for it.

The items are:

- A Map-to-Map teleport : it is not a pickable item. When the player walks in, it gets teleported to another level. It is basically stairs down, with the only difference that once the player gets to the new level, there is no way back.

- A Cell-to-Cell teleport: the same as before, but it teleports to another place in the same map. I need this to use a different symbol to the previous one, so the player know what type of teleport is.

- Enchanting Shrine: it's a map cell, again, not pickable. When the player walks in it gets some magical effects. I think I could use here the Nethack's shrine symbol, but maybe there is another one that could be more exciting xD

- Arrows: the player can use a bow. Arrows are limited and they can be scarcely found. I'm not sure the symbol that is commonly used, or even if there is one. I think something like | or / or \ could be ok...

- Throwing axes: same as Arrows, but I would like it to have a different symbol that is easy to understand and not get confused with arrows. I would say that / for arrows and \ for axes would be ok?

- Shield: I think I saw a RL with shields but I'm not sure. Whatever, which symbol would fit it well? Actually I want shields to have different symbols than armor since shields work different than in other RLs and are not really equipped as in other RL's

- Other misc decorative items that are not that important: Fire brazier, Wooden Barrel, Medieval Torture table (something like you see in Braveheart)

I would prefer to use symbols instead of letters because monsters are already letters and it can lead to confusion.

Thanks a lot.

Programming / How to make monster pathfinding to work realistic?
« on: December 15, 2012, 10:11:10 AM »

I'm creating some roguelike but I have a little problem with monster pathfinding.

Actually, the algorithm I'm using works perfect and everything is ok.
The only problem I got is when the player is in a situation like this:

Here we have a thin corridor where the player and a Kobold are approaching, and in the other side, an Orc.

The Kobold can go straight and reach the player, but the straight path to the player is blocked for the Orc, so the pathfinding algo searches an alternative route.
This doesn't sound bad for this example since the 0rc can reach in little amount of turns the other side of the corridor, but I see here two problems:

- when the map is large and complicated the pathfinding algorithm searches a route that may require a lot of turns, which is quite dumb, and nobody will go for a long route if he can wait a couple of turns for the Kobold to die,
- If there is no alternate route, the Orc just stuck in place until the Kobold dies and the route is free.

So I want the Orc to move towards the player and just await behind the Kobold until this one dies rather than searching an alternate route if this alternate route if this route is too long, but also, use the alternate route if the distance to run is relatively short.

Any idea on how to do this?

Actually I'm using a Jump-Point pathfinding algorithm, so I'm not sure if there is some interesting tweak that it is recommended to do specifically for Roguelikes.
Also, I'm using a blockmap for the player and another for the enemies. (blockmap = array that contains the walkable tiles)
The enemies' blockmap has all walls and floors in the normal map, but also monsters here are represented by "#" too, so they are basically like walking walls, so the pathfinding is recalculated like if monsters were walls.

Thanks a lot.

Pages: [1]