This is really well done! And I particularly like the combat. Filling the field with your attacks and enemy attacks really forces you to decide if you want to risk getting more of your attacks or be forced to take a really big hit yourself. I love the strategy and risk-reward that you provide with this setup.
Its like bejeweled\candy crush. You select two or more adjacent colors to perform an "attack".
The "attack" will be one of four choices: You attack, you attack with magic, the enemy attacks you, the enemy attacks you with magic.
So the optimal solution is: Maximize the attacks that benefit you while also picking attacks that either lessen the damage you take OR choose damage against you that set you up for bigger patterns on the next turns.
edit: looks like is can get deeper too. For example, bats have no mana and cannot attack with magic so it is a nice way to move some blocks without taking damage if you dont have any moves.
Also, you can focus your enemies' attacks in their weak spots-- for instance, I try to spend my enemy magic attacks when I'm fighting a rat, or something with little-to-no mana.
At first glance, seems similar to the combat system used by Legend of Bumbo[1] (upcoming game from the Super Meat Boy dev). Have other games used this "match-three" mechanic as a combat system as well?
Also, was pleasantly surprised to see the roguelike is played in the browser. Rot.js looks awesome.
But a solid strategy seems to be to pick the enemies attacks when they are just two blocks, and wait for your own to align up to more than 4. That combined with a strategy of exploring the entire level (and thereby healing) makes the game almost too easy.
That said, it was more low stress fun than I've had in a while. I find myself playing games for stress relief, and I have a tendency to play on the harder levels so it stops being "fun" after a while. I was playing metro 2033 recently, and while a nice game/story I don't really enjoy it that much because the sudden appearance of fast moving monsters that are hard to kill with limited ammo is just to much. I guess I should drop the difficulty but that seems like cheating. Games like that should have a better sliding scale for how well your playing and adjust so the player doesn't have to reload 10 times...
The first tower/game I started into had a room with no exit. At first I thought it was just a very nihilist game with no progress. I started a new game and that was better
It looks possible to have rooms generated that are impossible to exit. For example, I'm up to L3, and can't get out of the room with the stairwell. And on L2 part of the map is cut off from a similar map defect. Is that intentional?
I agree, the yellow/green/red is rather difficult to distinguish. Aside from altering the colors, it could also use different symbols. In general, it's good to have multiple distinguishing qualities (e.g. color, shape, texture). This helps make things more distinct for all users, not just those who might be colorblind.
Agreed. The overal design direction (have those glyphs "#" as it resembles thorns for a Game of Thorns inside a tower filled with brambles) won over usability in certain cases.
If this was a full-blown game (and not a 7-day proof of concept), I would try to make the combat UI more robust.
Huh. I didn't see any relationship between the "#" characters and the game theme. The combat mini game stuck out to me anyway, as an abstract puzzle game in the middle of a hack-and-slash adventure game.
Still, if you are set on using #, you could try varying size, boldness, italic, rotation, font, etc.
FYI: A Seven-Day Roguelike (7DRL) is a roguelike created in seven days. That is, the author stopped writing code 168 hours after they started writing code. A 7DRL can be created at any time during the year. However, general agreement was reached that it would be fun to schedule a specific week for a 7DRL Challenge.
Mostly I'm just curious what the shape of the code looks like for a scheme roguelike. What's easy, what's awkward, how easy it is to extend the rules of the world.
I've always loved roguelikes, and I enjoy reading scheme code too. The elegance and organization of really good scheme code can be a revelation!
I've always enjoyed roguelikes and probably spent dozens of hours playing them. My current favourites include more modern takes on the genre like "Caves of Qud" and "FTL".
I sort of casually develop one in golang these days, progress is not quick since this is just a small side project I do for the fun of it:
As someone who's wanted to try making something like this for a while but just doesn't know where to begin, can anybody recommend useful resources or suggestions on how to get started?
If it helps, I work mainly in C# and so would prefer that if possible, but this could be a good way to get familiar with a new language.
I'd assume I'll throw the first one away, so no framework. Just use C# in a console. wasd+ is input. Game loop is update positions based on input, convert positions to an ascii 2d array, print ascii.
Just those could get you to step 7. Then take stock and decide whether you want to restart the project in a framework or push on.
Solid little game. I wish going through the bramble passages would be worth it (i.e. secrets?). Also I was hoping that at the end I could kiss the princess and the folks there would become hostile if I did.
It appears that there should be a way to move at an angle? I might have missed it. There are hallways that look like they lead somewhere, but can't move down them.
Never got around, right. Most of the levels/rooms are okay-ish with respect to doors. What would you expect of a ruined tower hundreds of years old, filled with brambles and fallen plaster...
I like it! One annoying thing I noticed is that if you kill something while it's in a doorway, you won't get any loot from it. Maybe things could stack on open doors?
100 comments
[ 1.7 ms ] story [ 135 ms ] threadThe "attack" will be one of four choices: You attack, you attack with magic, the enemy attacks you, the enemy attacks you with magic.
So the optimal solution is: Maximize the attacks that benefit you while also picking attacks that either lessen the damage you take OR choose damage against you that set you up for bigger patterns on the next turns.
edit: looks like is can get deeper too. For example, bats have no mana and cannot attack with magic so it is a nice way to move some blocks without taking damage if you dont have any moves.
Also, was pleasantly surprised to see the roguelike is played in the browser. Rot.js looks awesome.
[1] http://legendofbum-bo.com
That said, it was more low stress fun than I've had in a while. I find myself playing games for stress relief, and I have a tendency to play on the harder levels so it stops being "fun" after a while. I was playing metro 2033 recently, and while a nice game/story I don't really enjoy it that much because the sudden appearance of fast moving monsters that are hard to kill with limited ammo is just to much. I guess I should drop the difficulty but that seems like cheating. Games like that should have a better sliding scale for how well your playing and adjust so the player doesn't have to reload 10 times...
Outside of that, I'm digging this.
If this was a full-blown game (and not a 7-day proof of concept), I would try to make the combat UI more robust.
Still, if you are set on using #, you could try varying size, boldness, italic, rotation, font, etc.
http://ondras.github.io/star-wars/
Great work!
http://7drl.org/about/
P.S. I found Haxe by following some of the 7drl entries. But I think I would like to use Racket to make one one day.
That would be neat. Are there any roguelike engines for scheme? Or would you build it from scratch?
Just display/controls? Or do you want something that'll do the level generation too?
I've always loved roguelikes, and I enjoy reading scheme code too. The elegance and organization of really good scheme code can be a revelation!
So now I'm thinking about transpiling OCaml to Javascript and using one of the many Javascript rogue like libraries.
I mention this because Racket has a Javascript compiler (and tons of other languages these days like F#, Scala, etc also have to js compilers).
The browser is just such an easier platform to get people to play your game.
I sort of casually develop one in golang these days, progress is not quick since this is just a small side project I do for the fun of it:
https://gitlab.com/ibiscybernetics/go_roguelike
Feel free to mess around with my code if it helps anyone develop their own game.
As someone who's wanted to try making something like this for a while but just doesn't know where to begin, can anybody recommend useful resources or suggestions on how to get started?
If it helps, I work mainly in C# and so would prefer that if possible, but this could be a good way to get familiar with a new language.
That doesn't get me out of my language/framework paralysis, but otherwise it looks like a decent roadmap.
Thanks mate. Also your game is amazing; thanks for sharing it.
Just those could get you to step 7. Then take stock and decide whether you want to restart the project in a framework or push on.
I imagine I just need to dive in and figure it out rather than stalling and posturing. Thanks.
http://ondras.github.io/rot.js/hp/
http://i.imgur.com/gTx9oXe.png
That is, on Chrome/Mac. It'll navigate you back to the previous page.
Any hints about them?
Anyways, great game and well done. Shared with all my friends!
A staircase leading up is here.
And I press '<' but no go.
There probably needs to be a game clock (the usually implementation is hunger or enemies spawning).
Otherwise you can just go in a room and walk around till your back to full health.
I assume the author knows this.
HP regen was added as a fast&hacky way to make the game less difficult (non-regen versions were hard to beat).
(Also, you can F12 your JS console and hack the game's internals to your likings, adjusting your HP as necessary.)
For a non-PoC game, this would need to be more balanced.