Everlasting Dungeons
--------------------------------------------------------------------------
What is Everlasting Dungeons?
In short:
Everlasting Dungeons is a first person roguelike with universal crafting and a split screen multiplayer mode. Also I tried to make the game easy to mod.
I will try to keep the game interesting by adding new things. I only just started. I still have very long list of things a want to add to Everlasting Dungeons. See the plans for the future section for some of the more obvious planed additions.
Please keep in mind, I am a single guy, I do this in my free time,
this is an early alpha version far from being complete.
Added Updated Launcher.exe, now finds Matlab or Octave more reliable.
Now works under Linux, tested only under Ubuntu 13.04 64bit, but 12.04 will most likely work to. Needs OpenGL Driver that support OpenGL 3.2.
If you try this under Linux please give me some feedback if it works or not (everlasting.dungeons@gmail.com) thanks.
The same .zip files works for both Windows and Linux.
Longer answer:
Everlasting Dungeons is a classic dungeon crawler inspired by classic games like Dungeon Master from FTL or the Eye of Beholder Series but with some twist on it:
1. "crafting":
Everything in the game it made with a simple ASCII like 3D editor that can be used to create voxel like graphics. It's like pixel art graphics but in 3D. But this is more than just a graphics style, all game play properties of an object or a creature are completely determent by the way the voxels are placed and the materials the voxels are made from:
For example if a weapons is long and pointy with sharp edges it is good to stab monsters with. A heavy weapon with a high center of gravity is good for whacking thinks on the head. If it is really big it may be good to block corridors and so on.
But this is not just for item but creatures to:
If a creature is huge and made out of iron, it has large amount of HP but it's slow and has powerful attacks. On the other hand if a creature is small and made out of fur it will have little HP but be very fast.
With Everlasting Dungeons you can take a sword out of the "item" folder, put it into the "creatures" folder and generate a new dungeons where you will be attacks by sword creatures (these are fast and dangerous critters). Or you can take the elephant from the creatures folder and put it into the item folder and try to fight monster with a giant elephant weapon (not so good idea).
Or you can use crafting to make any strange item or creature you can think of and see how it's works as a weapon or creature.
2. "generated dungeons":
The dungeons are completely generated, so there are unlimited dungeons of various styles and sizes to explore. The basic idea is to take typical dungeon elements like doors and keys and buttons and use a semi intelligent random generator to put then together to a unlimited number of dungeons.
I hope to reach a point, where the generator takes the elements give to it and makes something new out of it, that can even surprise me. I am definitely not there jet, but I think with more time I can reach that point.
3. "split screen mode":
I love couch coop multiplayer, I think it's just a cool feature to have. Also the game has quite usable joypad support, otherwise multiplayer would be difficult to realize.
Also: 9 player split screen mode, (on fast gaming rigs) than may be some record and it's definitely a nightmare to setup all the joypads.
Warning: Multiplayer is currently experimental and may nor work very good.
4. "easy to mod":
I try to make the games relative easy to mod. Making new items is practically part of the game, creating new creatures is simple as moving files around and textures and images are easy replaceable.
Background
--------------------------------------------------------------------------
Nobody knows where they came from or who build them or if they were build by someone at all. For as long as anyone can remember, they where just everywhere. These giant towers all over the country. Most people avoid them because they are know to be places of evil and danger. Only few reckless adventures dare to enter them and even fewer of these are every seen again. But those who enter such a tower and life to tell about it came out of the experience changed. They seemed to have grown: More focused, stronger, more able that before. And they always leave the tower loaded with riches be hound measure.
This is the story of some of these adventures.
System Requirements
--------------------------------------------------------------------------
Everlasting Dungeons currently needs Windows XP, Vista, 7 or 8. And OpenGL 3.2 (that is about DirectX 10 hardware compatibility).
The system requirements depends on if either you using Matlab or GNU Octave to run Everlasting Dungeons.
Matlab:
I have a notebook with and 1.6 GHz AMD E-350 APU, with reduced details (see: EverlastingDungeons/m/setings.m) Everlasting Dungeons is slow but playable. While the E-350 APU is slow it still has a very solid GPU and good OpenGL Drivers, I don't think Everlasting Dungeons will work on any current generation Atom CPU.
Octave:
A 2.5 GHz Core 2 CPU should be about the minimum. 2 GB RAM are required. An DirectX 10 compatible GPU is needed, at least of mid range, most low end GPU will not work very well. GPU requirements can be reduced a little by using the less demanding "light" or "neon" dungeons.
My main development platform is and 3.3 GHz Core 2 Duo with an Radeon 5800. On a machine like this you get relative solid 60fps on Matlab and a little under 30fps on GNU Octave (1920x1080 full screen) .
Other Operation System:
Everlasting Dungeons is written entirely with SDL and OpenGL, OpenAL it uses about no windows code at all so other OS should be easy. In theory.
Linux:
Yes there will be a Linux Version, sooner or later.
I have two Computers that dual boot to Ubuntu, but on neither I get the required OpenGL Version to work, so I have not even started to try a Linux version. Ubuntu 13.04 will bring some improvements for games under Linux so I will try again sometime in the near future.
Mac OS X:
I already look a little into a Mac OS port, but while I have a Mac Mini that supports OpenGL 3.2 it does so only with a "core" profile, but Everlasting Dungeons requires an OpenGL "compatibility" profile to run. This can be changed, but it requires a lot of changes in the rendering engine, so it probably will not happen in the near future. If you happens to be an MacOS / OpenGL Guru and know a way around this, without rewriting the engine for core profile, please contact me.
Installation
--------------------------------------------------------------------------
See "install.txt"
How To Play
--------------------------------------------------------------------------
During the start of the game you must choose what dungeon you want to play and the number of the dungeon you want to play. There are theoretically an infinite number dungeons of every type.
To enter numbers click on the Octave / Matlab text window and enter the number you want via keyboard and press enter afterward.
You can press F1 during the games to see the currently active control scheme.
Default controls are wasd:
WASD to move
mouse to look around
left / right button, attack with the left / right hand.
"Q" and "E" select the attack for the left / right hand.
Space pick up item and use (for buttons doors etc.)
F drop item
R throw item
Ctrl Left inventory
Tab crafting
Use 1 to 8 to select attacks and items.
You can change the current input scheme via "select input" on the main menu. Also you can change the "/m/input/player.m" file to make this change permanent.
The "joyAnalog" controls are also easy to pick up for anyone who has ever player a first person game with a joypad.
The "keyb" controls use the numpad for moveing around (Dungon Master style) and the left side of the keyboard for attack, pickup, drop use etc.
The "notebook" controls are the same, but the numpad part is moved to the main keyboard with the '4' located on the 'j' key.
The first item you pick up goes into you right hand, the second item goes into you left hand, more items just go into you inventory.
Currently there is no way to manage you inventory other than dropping items and picking them up in different order. I recommend to only pick up the weapons and stuff you really need. If you stick to 2 to 4 items you will get along quite well.
There is a left hand attack for the weapon in you left hand and a right hand attack for the weapon in you right hand. Also there is a left/right hand menu to choose which kind of attack you are using. This is important especially for the higher difficulty levels.
About the dungeons
--------------------------------------------------------------------------
The dungeons are divided in four quadrant around a central staircase. If you open all doors to this central staircase you can easily get to any part of the dungeon you already visited. Each quadrant can be solved on it's own, but there are doors between the quadrants (the white doors with roman numerals on them). The Idea is, that is you get stuck in one quadrant. That can totally happen with generated dungeons. Than you can just go and solve the other quadrant for a while, and after solve enough of the other quadrants, the white door can be open and you can try the quadrant you got stuck in again from an other start point.
Still there might be dungeons that are just unsolvable.
Some dungeon numbers trigger bugs in the generator and the Everlasting Dungeons will stop with an error. On some numbers the dungeon will be marked as BAD, that means the dungeon generator noted that something is wrong with the dungeon. On BAD dungeons the probability of the dungeon being not solvable is much higher.
On the top level of every quadrant is a special item. If all four special items are brought to the central staircase the dungeon exit "opens".
The dungeon types (generation templates) I added are build in a way, that the bigger dungeons have more creatures and are generally more difficult.
For starters I recommend a small or med dungeon on "easy".
The 'light' type dungeons are the same as the standard dungeons but with some of the more polygon intensive models left out, so they are more slow GPU friendly.
The 'neon' dungeon is for the people who think the standard dungeons are just to clearly laid out and are looking for a challenge for their eyes and orientation. Also I think the neon look is quite cool.
Crafting
--------------------------------------------------------------------------
Crafting is quite complex, so here just the very basics:
keyb:
Move cursor around: Numpad 5123
Move cursor 'in' and 'out': 'F' and 'V'
Draw: 'D'
Erase: 'C'
switch current draw material: 'S' and 'X'
change material: 'A'
joypad:
Move cursor around: dpad
Move cursor 'in' and 'out': left trigger /left bumper [ L2/L1 ]
Draw: A
Erase: B
switch current draw material: X/Y
change material: push right analog stick [ R3 ]
Use the "Tab" key to quickly switch between crafting and the game.
If you make a new item use "file" ? "save as" to change the name of the file, otherwise the old file may be overwritten.
If you are feeling creative and don't want to play the game at all, you can use the "crafting only" mode from the launcher and then Everlastings Dungeons starts much faster and crafting is faster too. You can save you creations from "crafting only" mode and later use them in the game.
You can display the controls in game by pressing F1 multiple times until the control scheme for crafting is displayed.
Remarks / FAQ
--------------------------------------------------------------------------
Everlastings Dungeons may feel a little unbalanced at times, I try to keep it balanced, but it's a complex game and with generated dungeons balance is difficult to achieve. You may have to balance a little bit yourself, by choosing less complex dungeons with fewer monsters or by reducing the difficulty.
I found a method to kill every monster quite easy.
How about this: Use this method for a while to have fun, and when it's get boring, stop using that method and try to find a new one. Everlastings Dungeons is quite complex and I am sure there is more than one exploit to be found. Probably much more in future versions.
Why writing a game in "m"?
Well 'm' isn't really ideal for computer games, first of all it's a scripting language that is interpreted and so it's not really fast and it is created primary for number crunching and scientific tasks and not to write games.
Well first of all I think 'm' is quite elegant. A lot of complex stuff can be written much shorter and more elegant in 'm' than in C++. With it's vectorized approach a lot of things can be written without any loop and that make the code look much clearer (I you are used to it).
An other reason is I just wanted to see if it can be done.
And probably the most important one: Contrary to C++ I enjoy writing code in 'm'. Well if it's something cool like a game and it's working good, anyway.
So if you programming language of choice is not suitable for games, well don't bother about it, do write the game of your dreams anyway.
Credits and Stuff I used
--------------------------------------------------------------------------
I have written Everlastings Dungeons and it's graphics engine from scratch in "m" and C++ / glsl for the renderings engine. The libraries I used are: OpenGL for Graphics, SDL for basic system stuff, input and font rendering and OpenAL for Sound.
The textures I used are mostly from http://www.openfootage.net/
Everlasting Dungeon uses the MOGL OpenGL "m" wrapper from Prof. Richard F. Murray, University of York, Canada, and some parts of the psychtoolbox (psychtoolbox.org).
One function I use is based upon the "findmat.m" code from Justin Griffiths, my version is basically a 3D version of this code with some changes I needed.
Some images are from opengameart.org:
The spark from: scorcher24
The explosion from: cuzco
The blood splatters I used are from: dennytang.deviantart.com
The sound FX are from the original Dungeon Master from FTL.
If I happened to use some of your artwork and I have not mentioned you, it's not I purpose, I probably just forget about it. Please contact me.
All the voxel art I use in the current version is still by me. I hope that will change I the future, I am excited to see what people with more talent than me can do with the 3D crafting tool.
Licence
--------------------------------------------------------------------------
Everlasting Dungeon is released under GPL v3, see "licence.txt"
Know Bugs an Issues
--------------------------------------------------------------------------
Please keep in mind, I am a single guy, I do this in my free time,
this is an early alpha version far from being complete.
In order to get somewhere with this game I have decided to accept a certain level of bugs,
especially if they are not game breaking but just graphical glitches or strange.
The Everlasting Dungeons window/fullscreen mode is not selected when opened,
you have to click on it for Everlasting Dungeons to register any inputs.
On bigger dungeons the saving of the dungeon on some computers breaks with some strange file io or gzip error. To my knowledge this is not a memory problem but a problem of the complexity of the save file. This may go away with newer version of Matlab or GNU Octave. Work around: Use smaller dungeons or in " EverlastingDungeons/m/setings.m" change the "P.forceGenerate" option to 1. This ways no dungeon is saved at all. But this is much slower since a new dungeon has to be generated every time the game is started.
The Dungeon Generator does not scale very well with huge dungeons, use more than 80x80x10 blocks and it's gets very slow. I will fix this in the future. Work around: Don't generate dungeons that big.
If the games is started multiple times from the same Matlab or Octave Session, the sound sometimes get corrupted. Work around: Restart Matlab or Octave.
If the games is started multiple times from the same Matlab or Octave Session, there may be an OpenGL Error. Work around: Restart Matlab or Octave.
Plans for the Future:
--------------------------------------------------------------------------
For the near future:
less bugs
For the future:
different, more interesting monster behaviors, different attacks, more like players
some kind of monster chimera generator to make make new and interesting to fight enemies
better character stats and leveling for player and Monsters
Base character classes: Fighter, wizard, ninja and priest/healer with a Dungeon Master like level system
An ability/skill system for players
probably: Limit certain crafting techniques to need equipment and /or skills
Have skills that influence the outcome of crafting
More interesting dungeon layouts (think of castle with towers)
More interesting stuff for the dungeons more complex riddle like room generated
big open areas (multiple levels) for boss fights
hide the fact that the dungeon is tile based, at least a little
Magic: Dungeon Master like rune based magic system, wand that depending on their composition enhance the power of certain spells
the 4D portals are supposed to be real render portals not just red walls
skybox to look outside of the dungeon
nice outdoor dungeon, think of tree and the like
For the more distant future:
better animations for player and monsters
have monsters use weapons
coop play work over network
interesting multiplayer versus mode
stuff special for multiplayer
games of other genres with a similar crafting system (already have more than enough ideas)
The far distant future:
Have a world map that connects different dungeons, with real landscape, villages, NPC, quests etc.
So basically make it a full open world RPG with very cool (user created) generated dungeons in it
Please keep in mind, I am a single guy, I do this in my free time,
this is an early alpha version far from being complete.
Have fun.
(c) Aug 2013
Dennis Trenner