About this blog
Development of a 3D maze game
Entries in this blog
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.
A departure from my usual ramblings, I'm going to share with you some of my favorite games which will never receive a sequel. Some games roll on and on, and have been with us since the dawn of gaming. And then you have the modern yearly updates which just roll on and on - Call of Duty, Need for Speed, Fifa. And of course, there are millions of obscure games which can only be considered a one-off. The following games, to my mind, could have easily become huge franchises, with more innovative features in each sequel.
Kingdoms of Amalur
A fantastic and under appreciated RPG, Kingdoms of Amalur was developed by Big Huge games, developed with help from fantasy writer R A Salvatore and Todd McFarlane. Big Huge was closed by their parent company just after Kingdoms was released.
Ico/Shadow of the Colossus
Team Ico produced the original Playstation 2 games and it seems they like to develop only original games. The Last Guardian has been in development for many years, and it may even see a release one day, so it looks like Ico 2 or Shadow 2 will be the last thing the company wants to concentrate on.
Second Sight featured innovative gameplay, you can use psychic powers to unravel a very interesting story. Developer Free Radical was also responsible for the Time Splitters series of games, and was wound down after the dreadful Haze.
Honorary mention - Psi-Ops
Blur was a fantastic game which managed to combine the shiny cars of Need for Speed with the multiplayer and power ups of Mario Kart. Activision closed the developer, Bizarre Creations, after they produced a poorly selling Bond game, Blood Stone.
Honorary mention - Split/Second
Games really struggle with facial animation, the subtleties of human movement mean it is really difficult to render a realistically moving face. Team Bondi wanted to remedy this and developed what they called MotionScan, which allowed them to render actors faces realistically in game. Throw in a huge open world, an incredible story and challenging puzzles and you have a huge and involving game. Unfortunately Team Bondi was badly run, with employees complaining of poor working conditions. Rockstar closed the studio in 2011.
This is an old demo I put together for a Retro Remake competition, never did anything else with it.
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 -
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.
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!
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.
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'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!
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.
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!
So now my game is complete, I'm ready to start another project. I've had a few ideas about game structure and what I want to do, but I haven't really settled on anything yet. I usually like to prototype my games, before I start them, this gives me an idea of how long the game will take to code, what the controls will be like, and I build it up from there.
For example, I wondered if I could do an 'outdoor' game so within a short while, I had a skybox up and running, with a terrain, some trees and a keyboard controlled camera.
I also had another idea of a 'bullet hell' style game, where instead of controlling a ship and dodging bullets, you would shoot bullets out and try to kill enemies. You would start off with a small amount of bullets and this would gradually increase until you were shooting hoards of bullets out.
I'd also like to have a go at writing a traditional horizontally scrolling shooter at some point.
My final thought was to create a 'retro' platform game, an 'homage' to the old ZX Spectrum games, but done in a modern style. To this end, I created a mapper and a scrolling, tiled 2d map and did some quick sprites on top.
I find this kind of prototyping really helps the development, it gives you a sense of what graphics and artwork you will need, helps with the control scheme and even highlights flaws in your game design - if something won't work or isn't fun then you can go back to the drawing board to fix it, without wasting a lot of time.
How do you guys go about deciding your next project? Am I alone in using this method? I'd love to know, drop some comments in below!
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 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!
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.
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.
Thought I'd try and convert my game to 3D, as it would lend itself quite well to that perspective. Turns out it was quite easy and it looks great! Maybe I'll write a Nintendo 3DS conversion?!
I wanted the game to have waves of enemies, where 4 or 5 of the same type will appear and move in a predictable pattern towards the player. I placed some enemies in the stage and it was getting a bit tiresome moving them around if I wanted to move a wave to a different part of the stage. So instead of placing every individual enemy, I created a 'lead' enemy of just 1 type. All the enemies are flagged as inactive until they are drawn on screen. As soon as this enemy is made active, it starts moving and animating. I also added a spawn code to the lead enemy where it created multiples of itself and sets a speed and direction. That way if I want to re-position an enemy on the stage, I only have to do it once and move the lead enemy.
I also started adding in a bit of collision detection, to test out the gameplay. Each bullet fired by the enemy has a 'bounced' flag. If it is bounced off the players shield, this flag is set. This way, enemies don't blow each other up with their own bullets. When a collision occurs, first I check to see if the bullet's bounced flag has been set. If not do nothing, if yes then create an explosion and destroy the enemy.
I also have some ideas for power-ups, one will make the player move slightly faster, another makes the shield stay active for a longer time. There's a red bar at the bottom of the screen which measures how long the shield will last. When I get around to doing some sounds I can put in some cues which alert the player when it is low or about to run out.
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???!!
New website is up, hopefully will add more information later, at the moment there's just some basic info and screen shots
Another job crossed off my list!
I've been on holiday this week, so not got much done. Last time I got monsters in and randomly walking around, but when they see the player they should walk towards him and this calls for pathfinding.
There's a fantastic page here which explains how it works.
I could have downloaded a library but I thought it would be better to do it myself. Also I couldn't drop it straight into the game, because it would be a nightmare to debug in first person! I therefore programmed it as a separate function and I can just drop it in now. It's my own version of the algorithm called 'A+' because you can't travel in diagonals, just on the x and y axis. This is because the game is grid based (like Dungeon Master or Eye of the Beholder for example).
Here is a demo video, the starting point is the green square and the finishing point is the red square. Purple squares are checked (on the open list) and the blue line is the final path.
So all I need to do is replace the green square with the monsters x,y and the red square with the players x,y and it should work...
You probably want a bit of randomness in your game, for example when enemies shoot a bullet or how long an explosion lasts. However sometimes you want it to be the same every game, so the player will know that an enemy will enter the stage and always shoot a bullet. You want some randomness, but consistent randomness so it is the same every time.
"When replaying levels, enemies always appear in the same location and follow the same behavioral patterns"
One way to do this is to have an array and load this with pre-calculated random numbers. When your game needs a number, call the next one off the stack and loop back to the top when you have run out.
One cool thing you can do with this is save a replay. If you capture the player's inputs each tick, then in theory everything in the game should play out the same way. You could use this for demo mode or as a save feature.