I've started yesterday to write a dungeon generator for Lands of
Elderlore, and it is shaping well, so I decided to try to use it in a
little 7drl roguelike. Here are the features I'll try to implement in
* levels will be permanent
* each level will have one way up, and zero, one or two ways down
* monsters will wander through dungeons, from M1 (monster level 1) to
M9 (monster level 9).
* you will get xp by killing monsters with equal or higher level than
* combats will only be melee type, with guaranty damage of attacker
* there will be gold and healing potions around levels for you to grab
* when you die, your score is your gold number
I'll post here my progress; wish me good luck !
At this rate nobody will actually be left for the challenge :)
Good luck altefcat!
good luck :)
Code is in Python, you need Numeric to launch it.
After 1 day, a dungeon floor is displayed, with corridors and rooms
made of walls ('##') and empty places ('..'). There are doors ('++')
at each room exit, and either down stairs ('<<'), up stairs ('>>') or
gold ('$$') in dead-ends.
The code is made so that one can change the floor size, the number of
rooms and the random seed. Comments and variable are in french right
now, I plan to translate them in english in the following days.
Now I need to use Curse to display the dungeon floor; I'll get help
from the fov piece of code in Python on Roguebasin. Then I'll add the
player, and see how I can move it around persistent dungeons. Then
I'll probably use Lands of Elderlore fov, add monsters and make them
move with another piece of code from LoE, or perhaps I'll use A* if
it's not too greedy on the CPU.
The dungeon code made me start this 7drl, but that's the persistent
feature that I really want to push to the end. The idea is simple :
- you start with the name of the dungeon, and use it as a random seed.
From each floor, you can descend to two other floors, and so on. When
you die, your score is attached to the dungeon name.
- There won't be randomness (except the one from the name seed), so it
will be possible to compare scores from a player to another, and
exchange stategies about how to pass nasty passages, etc.
Great idea!! Never tought about it [in 1 month of roguelike dev]
but may it's a great feature if you could include something like
"Do you prefer to play randomly or with a spcific seed?"
So people that want to play randomly can chose.
Yes, I'll use something like that. You'll have a random seed the first
time you play, and then after the first death, you'll start by default
on the same dungeon. In moe-day1.py, if you set "random" as the name
of the dungeon, it will create a different one each time.
Hmm, that looks very similar to The Sewer Massacre (except for branching levels
and wandering monsters).
|Don't believe this - you're not worthless ,gr---------.ru
|It's us against millions and we can't take them all... | ue il |
|But we can take them on! | @ma |
| (A Wilhelm Scream - The Rip) |______________|
Never heard of this roguelike, but I'll look at it *after* my 7drl is
I have added Python shadowcasting implementation from Roguebasin in
title=Python_shadowcasting_implementation), so now I have field of
view and Curse display. FOV is blocked by walls and doors, unless you
bump into a door, which open it and free the view. You cannot close
doors, I think I'll keep it like that to add some tactical challenge
(don't open too many doors if you don't want to be chased by a horde
Next I need to clean the code and manage the stairs.
I am having a hard time adding the fov system; I have finally used the
same one from Lands of Elderlore, but I'm still not very happy about
Anyway I am getting used to Curses, which I never used before (go
Pygame, go !). Right now you can move around, grab gold and go
downstairs. Tomorrow I hope I'll add upstairs (not so easy if I want
to keep persistence) and perhaps some monsters.
As a sidenote, I found that grabbing that gold in those dead ends is
pretty boring, I need some brilliant idea to enhance my gameplay...
Now the player can travel down and upstairs, and persistence is there
(and memory). I have reversed FOV to the one in Roguebasin article,
but this time it works as intended, so now I'll leave it like
Some monsters populate the rooms, and start chasing the player if the
player sees them. If at one cell from the player, they attack him and
instantly remove HPs. But no collision is made between two monsters.
So far so good, I've good hopes to finish this in time, but I am not
sure it will be fun at all. I need to keep a day or two at the end to
try to balance it...
I think one day is enought to get a 7DRL balanced, at least to get it
I've coded and tested [only essential thing] for 5 day. The 6-th day
balanced the game and the 7-th day bug-hunt [down the maze].
May be i'm wrong, but in 7 day you cannot balance the game very well,
you can only
make it playable and, more interesting, FUN!.
Am i wrong?
I might have an idea to enhance the fun of the game : replace gold
with magic mushrooms, so that awaken monsters gain a level each time
they eat one. If you pick the mushroom before the monster, you prevent
him to become overpowered.
Well, that's just an idea right now, the main challenge here would be
to add fov to monsters and make them choice between bashing the player
or going to the closest mushroom. I have two days left, that may be a
good challenge :-).
(code is at http://landsof.elderlore.com/files/moe/moe-day5.py)
Anyway now monsters chose (relatively) wisely between the player and
the closest mushroom, and when they eat one mushroom they gain a
Potions can be found on the floor, and drunk to recover full HP.
What I'd like to add before my time is up :
- saving and loading
- detect the term size to adjust the display size
- add a pseudo inventory and swords, axes and spears
- have something special at the bottom (9th floor)
It runs well under Ubuntu with Python, Numeric and Curses, but I don't
know how it will behave under another OS. When launched for the first
time (with 'python moe.py'), it will create an 'moe.ini' file
containing different parameters that you can change at will.
After the first play, an 'moe.sav' file is created to keep your
progress. Launch again the game and it will continue where you
A board of scores and ranks is keeped, and since every dungeon is the
same for everyone, it should be easy to compare performance each
other. If you want to explore another dungeon, just change the 'name'
value in 'moe.ini'.
You are a young hero and to prove your strength, you decide to clean
the mines nearby your native village. Only armed with your training
sword, you enter a maze of rooms and corridors.
## : walls
.. : floor you can see
++ : a door; bump into it to open it
M~ : monster sleeping; it will awake at your approach
Mn : monster level n
! : a health potion; (d)rink it to recover all your Health Points
* : a magic mushroom; when you (r)est, you can eat them to recover
HP. Don't let monsters eat them !
/n : a sword of level n
Pn : an axe of level n
|n : a spear of level n
Tn : a warhammer of level n
&/ : you ! (with a sword)
- keyboard arrows to move and attack North, South, East and West (no
- space : wait for a round
- d : drink a health potion
- r : rest to recover HP by eating mushroom
- 1 : equip your best sword
- 2 : equip your best axe
- 3 : equip your best spear
- 4 : equip your best warhammer
- i : list your weapons and their quality.
- esc : save and close the game.
Each weapon is different, you have to learn how to use them
efficiently. Be creative ! I hope you will enjoy this little game. And
remember, if you search deep enough, you may find your true nemesis.
Damn, I really need to rest. Now, where are my mushrooms ?
You can find release 0.8 (day 8) with windows binary there :
So, what do you think of it ?
Hey it's pretty cool! It was very easy to catch on especially because
of the double-character tiles -- monster and weapon levels are
immediately visible. The &/ symbol "it's you with the sword!" is
pretty funny, or maybe it's just my imagination :) Inventory
management is not overly complicated and over all I'd say you made
some pretty good design decisions, I like it!