About this blog
Development of a 3D maze game
Entries in this blog
This is just a reminder and some advice to all you developers, make sure you backup your data. Stop for a minute and think - what would happen if you lost your hard drive? If you were flooded? Shark attack:? OK maybe not but you get the idea. Something dramatic happens and your computer is trashed. Would you be able to start again? Would you have the motivation to start from scratch? It doesn't take much to protect yourself from the worst, and believe me, you will thank me one day.
1) buy a cheap 1gb memory stick and write on it 'Backup'. Don't use it for anything else.
2) Make sure you backup regularly. Once a week, once a month. Whenever. Just get into the routine of doing it.
3) Store your backup away from your computer. Put it in a different room in a safe place.
Thats it! You may be asking, why is he telling us this? Has something happened? Well no. But it could, and that's the point. You never know.
Originally I planned for all the walls to be flat 2d polygons, with a plain texture placed on top. This means I don't have to worry about making 3d objects, texturing them, placing them in the world etc.
However my artist is amazing and he has made 3d models before. He has made some units which lock together and look really cool. Basically instead of a 'cube' to represent a wall, he has created a model. These models are duplicated and it was really easy to replace my primatives with his models.
It makes such a difference to have proper 3d, I might even implement a 'look' control which lets you look around (currently the view is locked to 90 degree angles).
I've just about got the magic spells implemented, all I need now is a levelling-up screen (where the player can increase his skills) and a shop screen, which will allow you to sell items you don't need, buy upgrades, new weapons etc.
It was surprisingly easy to get the monsters in and animated, and facing the correct direction in relation to the player. Basically the player has one of 4 directions (0, 1, 2 and 3) and the monster has 1 of 4 directions (0, 1, 2 and 3) and you subtract the monsters direction from the players direction to give you which sprite to plot. If the result is less than 0 you add 4.
E.g. if player is facing East (1) and enemy facing South (2)
1-2 = -1
-1+4 = 3
Plot monster sprite 3. Repeat!
I've finished adding magic into the game, it's based on the character's current level, any character will be able to cast basic spells, but as you advance you can only cast higher spells if you invest in your 'magic' skill.
Magic spells are limited by points, so you can't go round the dungeon blasting monsters with fireballs! MP can be regained by drinking potions, eating certain foods or resting.
I'm not sure about how the player will select the spells yet, currently it's a menu where you can select from a list, but if the player knows 20 spells that might get a bit unwieldy! I will have to figure how the player can select their spells more efficiently. Note that everything is in real-time now, so more time spent navigating through menus is more time the monster has to hit you!
I've also been working on the title screen, there's a retro scrolly message down at the bottom for greetz! I'm happy with the way it looks and it fits the 'dungeon' aesthetic nicely.
I read about 5 essential tips from a guy called Reisuke Ishida who made a presentation at Game Developers Conference -
It's important to come up with a catchphrase that is 'easily recognisable', which in turn influences the game's direction.
Try to make elements like the menus reflect the core concept
Strive for controls that are as simple and as intuitive as possible.
Add a little quirkiness to the design.
Ask that developers consider basic questions like the player's environment thoughout development.
So I am hitting point 2 but failing on point 3! Back to the drawing board!
Deepfall Dungeon is a 3D first person fantasy role playing game. You have entered the dreaded Deepfall Dungeon and must find the exit! Along the way, you will fight monsters, find treasure, cast spells and build your character from a nobody to a legend! Will you make it out alive? Features - Hundreds of generated mazes - no two games are ever the same.. Ten different monster types, each requiring their own strategy to defeat. 3d graphics with a retro vibe. Download the demo from Mediafire, below.
Hi everyone, even though I haven't been blogging it, I have almost completed my latest game, Charge!
You play as a sorcerer on a tower who must defeat incoming enemies by throwing spells at them. The full game will have 20+ levels, story mode, 3 difficulty levels, extra weapons and spells.
You can download the 1 level demo from Gamejolt.
The requirement is to create a horizontally scrolling shooter game with no weapons. I thought that I could have the enemies shooting at you and you could use their own bullets against them. If you had a shield, you could reflect the bullets back.
I created a quick demo and generated some bullets. The first problem was how to work out which direction to bounce the bullets back. After a bit of tinkering I found the best way was this -
1) Get the direction between the playerx,y and the bulletx,y
2) Invert this (add 180 degrees)
I tested out and it works OK, I think. Note that in the video, the bullets don't just get bounced in the opposite direction they are travelling, with a bit of skill you can actually 'aim' the bullets towards different parts of the screen, depending on where they hit your shield. A nice demo, but can I turn it into a game???!!
I've been working on the combat, I've streamlined it to make it 1 character and 1 monster. It was getting too complicated, I had 4 characters and up to 4 monsters, trying to manage inventory and decide which character was attacking which monster was a headache.
I've put all the items into the game, all weapons, armour, misc items etc. Just need to finish off the combat and then I can start polishing and bug-fixing.
I've played Legend of Grimrock and it's exactly the same kind of game, it's very professional and mine won't be to that standard (unfortunately) but if I had the resources, that is the game I'd make. I highly recommend it, it's available on Steam now.
I wanted to have a bit of a break from programming, so I decided to start promoting my game. I've set a release date and made a Facebook page, updated the web site and added a link on the 'Announcements' forum.
Any other suggestions as to where I can post a link to my game?
I've been doing a lot of bug fixing, it seems that every time I play the game I add another thing to my list of things to fix. I'm quite organised and I have a 'to do' list which I cross off every item I've finished but the list still seems to be getting longer!
I've added a 'look' function, if you hold down the right mouse button, you can look around using the mouse, in a 1st person view. Usually the view is locked to 90 degrees. The player will never use it in-game, it's just there as an added feature.
web page -
Announcement page -
I'm on the verge of releasing my game, I've been playtesting, balancing and bug fixing and it's almost ready.
To celebrate I'm showing you guys some concept and unused artwork, I always enjoy this kind of thing from proper devs, so enjoy!
I'm going to have a go at the Dungeon Challenge, and I thought I could produce a game in the time scale required. I have a confession to make, I have made a dungeon game before. Deepfall Dungeon was a game I wrote a few years ago and it was a retro style 3d dungeon adventure game. There are some differences and I am writing this new game from scratch. I learned a lot from before and I hope to put some of that to use in this project.
I recently watched Bandersnatch on Netflix and was inspired by the 8-bit dungeon game featured in that movie. The game is designed for the ZX Spectrum, one of the first machines I owned. So I decided to re-create a portion of that game which should fall within the remit of the challenge. I realised that a full game of this type will take a lot of work and time, which because of the strict limits of the challenge, would be difficult to achieve. I therefore decided to limit my design in the following ways -
1) A 3d sprite based game, with the look of an 8-bit game.
2) Limited sound effects, music and animation.
3) Limited graphics, often 2-tone to match the aesthetic of 8-bit systems.
4) Gameplay consisting of the bare minimum to make the game playable and fit the challenge.
With this decided upon, I started drawing some wall graphics, again taking inspiration from the on-screen game. You will see from the screen shot that the maze is divided up into squares and each square can be a solid wall or a corridor. Therefore we need a wall sprite for each position in relation to the player. In fact this would be a lot easier to design and program in true 3d but I wanted to do the game in the same manner as the original would have been. The wall pieces are then displayed on top of each other, from furthest the player to nearest. Monsters and enemies are then placed on top of this scene.
You will notice the pipes at the top of the screen, again this is just an animated sprite which is over-laid on top.
As well as starting a new project, I am quite keen to keep supporting my existing games, to that end, I have updated Deepfall Dungeon with some new features -
New game mode - Game Plus
Various improvements and bug fixes
I have also produced a new video which shows off the game a bit better
You can download my game, for free, from my web site -
This is an old demo I put together for a Retro Remake competition, never did anything else with it.
Have made a start on the combat today, I have populated the maze with a random amount of monsters and when you bump into one, the combat routine is called.
Currently it's realtime and you have to manage your heat compared to how much damage you can do. I am going to add a 'block' function and I also still need to put some weapons in, but the basics are there. I will also need to add a 'run away' option, in case things are getting bad!
I am also going to have to source some proper monster graphics, I'm just using googled images at the moment (I think the zombie monster is from Left for Dead!)
Onwards and upwards..............
I've put in collision detection so you can't walk through walls and I added some skull monsters, which roam the maze. If a monster sees you, it will walk towards you, otherwise it will go in one direction, until it hits a wall. It will then choose a random new direction.
It's all coming together now, next I need to add in some items which can be collected.
Wow, making an RPG is hard. I mean you have to be a master of databases and spreadsheets, just to keep track of everything. I have a list of 250 items, all of which can be customised, lists of monsters, to hit tables, spells, abilities, status effects and all these things have to interact with each other behind the scenes.
How do you keep the game challenging? And fun? If you give the player a +5 sword, will it make him overpowered and the next few levels will be too easy? What about if you give him +5 armour? If you don't drop the right weapon will the player get frustrated and just give up? How do you scale the experience so that the monsters get tougher as the player gets better? Do you base it on the players skill or the players Characters skill? Whoa.
I'm currently playtesting and asking myself these questions, but I definitely know one thing - my next game won't be an RPG!
I think I've figured out a few things -
Monsters strength will be based on the players level when he enters the dungeon. A level 5 character entering the dungeon will encounter level 5 and level 6 monsters.
The player should (on average) gain 1 level per dungeon.
Items will be randomly awarded during the level.
At the end of the level there will be a shop where you can sell unwanted items, buy new items and upgrade existing items.
There will be an element of skill when defending during combat, a correct keypress at the correct time will half the damage.
Attacks during combat will be based on a dice roll + the characters skill with the currently wielded weapon.
I've spent this weekend updating the lighting and effects, I've added Normal Mapping to all the walls and it's looking good now. It took me a while to make it look right, either it was too dark or too bright but I think it's just about there now. These effects can be turned on and off by the player, in case they are playing on a slow laptop or something.
I've also noticed the dungeon is a bit 'static', there's not much movement. So I'm going to add some animated objects, things like torches, swinging chains, tapestries blowing in the wind etc. In the video you can see the 'torch' effect.
It's a flat polygon, which is rotated to the player, textured with a flame texture.
It's been a while so I thought I'd post an update, still working away on the game, today I have been playtesting and balancing. I don't want it to be too difficult and I want it to get harder as you progress. So I have been playing it from the start, making sure there are enough health potions, that monsters don't hit you too hard, and that you can actually finish each level!
I did find one strange thing, it is almost impossible to die on the first level. I wanted to check my game loop and make sure it dropped you to the Game Over screen then back to the Title Screen, so I found a monster and stood there while he tried to hit me - it took a good 10 minutes and I still had 1HP left!
I guess it might have been a fluke, I will try and replicate it. The monsters get tougher though after the first level so it shouldn't be a problem after that.
Everything else is finished all the monster graphics and sound effects are in, all the spells and skills are in, I just need to do a little work on my menus and help screens and I'm done!
About time too because I'm way behind schedule.
On another note, I have been playing around with Unity, it's very easy to code for multiple platforms, I'm sure I will be using it for my next project.
But I need a holiday first!
Bye for now.....
LOD Games - Deepfall Dungeon
You lucky people! Get early access to the demo, available now on Indie City, the release date is still 2 weeks away but I want to get some feedback and find out what features people would like to see in the final version.
Download from here
Please give feedback and bug reports!
Found a horrible bug which only affected people who downloaded the demo (everybody then!). Apparently Windows does not let you save files to the installed program folder, and unfortunately that's where I was saving a text file which holds the controls and the screen resolution information. The game didn't error when it tried to save the information, it just didn't save. So when you changed screen resolution, quit the game and restarted, it defaulted back to 1024x768.
This wasn't a problem when I was testing locally because I was the owner/administrator. Eventually figured out you can save it into the %appdata% folder, so I moved my ini files into this location. Hopefully this won't cause any problems for people with older OS's (eg XP, Vista etc.).
I also re-drew the inventory screen, looks much nicer now and fits in with the rest of the GUI.
Otherwise, feedback from the demo has been positive, thanks to everybody who has downloaded it and tried it!
As development continues, I've been forced to think about all the stuff as a gamer you don't usually think too much about, like UI graphics, icons, title screens, music, sound effects etc.
I've done some music for the title screen, which you can listen to below. I wanted to to be synth-y and slightly industrial. It's quite long and repetitive 'cos I figured that you would only hear the first few bars then you'd be pressing 'Start'. It gives a good indication as to the direction and feel of the game. Hope you like!
My title music
Sin and Cos are a programmers best friend! I was looking at other games for inspiration and I saw this image from r-type
A circle of aliens spins around the player and you have to shoot them from the inside.
To calculate the points of a circle is quite easy, the calculation is -
Therefore I have an array of 10 objects which is calculated as follows -
230 pixels from the 'origin' and I have 10 objects - 360/10=36. I is incremented by 1 each step.
I now have a nice circle of aliens, I can increase the number by reducing the number 36. I can make the circle smaller or larger by increasing the radius.
The first level is more or less complete, with boss monster at the end. On to the second level!
Had a horrible bug which destroyed my maze, took me a while to hunt it down and fix it. Turns out it was just 1 character in my code which was in the wrong place. I also took this opportunity to tidy things up a bit, do some more optimisation etc.
I stumbled across this interesting article about tutorials, my first level is a tutorial which explains how the game works and I am definitely going to pick up some pointers from this article. I had actually made some of the mistakes mentioned in the article without realising it so it was definitely worth a read.
I have designed a simple map which is stored in an array, 0's represent corridors (empty space) and 1 is a wall. The player can face 4 directions, North, East, South and West. I am checking the player's X and Y position and their direction and drawing wall sprites from furthest away to nearest. Pressing left arrow and right arrow on the keyboard rotates the player 90 degrees and up moves forward. I have also put collision detection in, so you can't walk through walls.
I downloaded an Android app called Spectrum Eyes which takes photos and produces an 8-bit render of the image. This will be useful for monsters and items however I don't think I will be able to use it for all items. But I like the output, especially the skulls so maybe these will be one of the monsters.
Not long to go now! Today I spent a couple of hours on the game, and added a few new features. Monsters now drop loot, either gold, spell scrolls or health potions. I added treasure chests which can be collected and give you gold.
I also added a title screen and instruction screen, did some graphics for the logo and the inventory screens. Also added a door which can be unlocked with keys. The goal of the game is to find the key then unlock the door to exit the maze, you can fight or avoid the monsters.
I still need to add keys into the game but then it's pretty much done. There will probably be bugs due to the time scale of creating a game in such a short period, but it's pretty playable right now. I also need to expand the map and make the maze bigger and more interesting.