Jump to content
Site Stability Read more... ×
  • Advertisement
  • entries
    48
  • comments
    57
  • views
    43862

About this blog

Development of a 3D maze game

Entries in this blog

 

Deepfall Dungeon early demo now available

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

http://underground.indiecity.com/game/deepfalldungeondemo

Please give feedback and bug reports!

http://www.facebook.com/DeepfallDungeon

r1ckparker

r1ckparker

 

Promotions

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 -
http://www.deepfall.moonfruit.com

Facebook -
http://www.facebook.com/DeepfallDungeon

Announcement page -
https://www.gamedev.net/topic/627832-deepfall-dungeon/

r1ckparker

r1ckparker

 

Deepfall Dungeon - 3d models

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.

r1ckparker

r1ckparker

 

Deepfall Dungeon - Normal Mapping

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.


r1ckparker

r1ckparker

 

Dungeon Update

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!

[media] [/media]

r1ckparker

r1ckparker

 

Website

New website is up, hopefully will add more information later, at the moment there's just some basic info and screen shots

http://deepfall.moonfruit.com/

Another job crossed off my list!

r1ckparker

r1ckparker

 

3D test

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?!







r1ckparker

r1ckparker

 

More updates...

I decided to make a 'to do' list of what is still left, and I was kind of depressed to discover that I could list 18 items just off the top of my head.

So I'm making a start on some of these, which includes a title screen, logo and proper name. Up until now it has just been '3d dungeon' or 'my game' but now it's

DEEPFALL DUNGEON

Hope you like the logo. A nice, generic, inoffensive name I hope you agree. A quick Google search reveals no other games with that name, that's about as much in depth as I can go without a legal department.

r1ckparker

r1ckparker

 

Dungeon Update

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.




Rick

r1ckparker

r1ckparker

 

Progress

I've not updated for a while, but I've been hard at work. I've added character stats and a character sheet, I've added keys and locked doors, icons for items, I've made a start on the combat and put some monsters in, it's coming along great now and starting to look like a proper game.

Screenshots and videos incoming!



r1ckparker

r1ckparker

 

Wizardry

Damn! DAMNDAMNDAMNDAMN!!!!

http://www.youtube.c...h?v=G5xKt_M8zGQ

r1ckparker

r1ckparker

 

Monster graphics

Now I know how many and what type of graphics I need, and I can start replacing my scratch graphics with finals. I downloaded a royalty free model and wrote a quick display program which shows the model and exports it to a bitmap. I then loaded these into Photoshop, tweaked them slightly, added shadows etc. I am going to have 16 frames of animation for each monster -
1 standing still
3 walking towards the player
3 walking left (flipped for walking right)
3 walking away
3 attacking
3 dying

I could, of course, have loaded the model straight into the game but there's a couple of reasons why I'm sticking to the flat 2d graphics. One is aesthetic, the game is a throwback to the old dungeon crawlers so I want it to have a semi-retro feel (even though it's in full 3d). The second reason is the target devices, the main goal is to be able to play this on a netbook which aren't the most powerful machines. If it gets ported to mobile devices there may be even less processing power.

r1ckparker

r1ckparker

 

Bugfixing

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.

http://www.gamasutra.com/view/feature/6406/the_designers_notebook_eight_.php

r1ckparker

r1ckparker

 

Title music

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

r1ckparker

r1ckparker

 

The importance of backups

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.

r1ckparker

r1ckparker

 

Starting the game from the beginning

Last week I did a bit of work on lighting and applying normals to my walls. This gives the impression that they are made up of more than just a flat polygon. However because the viewpoint is so fixed (at 90 degrees and no vertical movement) it's really difficult to tell that the normals are even there! I might take them out at some point in the future, or put in a switch so I can turn them off if necessary.

So with the pathfinding in place, my engine is just about complete. I've implemented -

Procedural level generation
Mapped level generation
Movement with collision detection
Item management, with equipment/inventory screen
Interactive objects (doors etc)
Wandering monsters
Combat
Heat management
Automapping

wow, there's a lot of work gone into that lot! My next step is to start putting in the game elements and making it fun. The first step is to design a 'tutorial' level which introduces the elements of the game, tells you how to play, what are the goals etc. When I was playtesting other dungeon games, I found this was a big let down for some of them, there was no help at all so you didn't know how to play the game, what keys to press, what the goals were etc. I'm a big fan of in-built help systems and I think they are especially useful in an RPG game.

So I have started programming the first level, it is mapped rather than generated so it will be the same every time. I have a portrait graphic and a script which runs and gives you the basics from your Mission Controller, 'Theora'.

By the way I found this wonderful site, really useful if you are struggling for art assets.

http://opengameart.org/blog

r1ckparker

r1ckparker

 

Pathfinding

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.

http://www.policyalmanac.org/games/aStarTutorial.htm

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...

r1ckparker

r1ckparker

 

Monsters!

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!


r1ckparker

r1ckparker

 

Combat

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..............

r1ckparker

r1ckparker

 

FPS update

Wow a whole 14fps quicker! But I still need to do some work to get it up to 60fps. Perhaps that is too high for a netbook, perhaps it only needs to be 30fps?

r1ckparker

r1ckparker

 

Optimisation

The plan is that eventually the game will be ported to iPhone/android but currently the target is a netbook. These devices have quite low graphics capability and are slower than regular desktop machines.

I've been testing my game on my netbook and as I've been adding stuff its been gradually getting slower and slower. Today I've done some optimisation to hopefully make it run a bit quicker.

The maze is made up of a series of textured cubes. Where there is a wall, there is a cube of 6 sides and 12 polygons. This is wasteful because you never see the top and bottom of the cube, and if you are in a corridor, chances are you will never see the sides either.

So I have replaced the cubes with flat polygons, and I'm only drawing what I need. I'll do some comparisons on the netbook later to work out if this is faster. (it runs at a smooth 60 fps on my desktop regardless of which method I use)

Also, the entire maze is being built before the player starts and I'm just moving the camera around. I could just draw the maze as I get to it, instead of generating it all at once. However this is a big change and I will probably leave it for the moment and come back to this topic later.

r1ckparker

r1ckparker

 

Inventory Screen

I've been working on the inventory screen today, have added -

Tooltips - when you hover the mouse over an item it will show you the details
Icons - each item is represented by a unique icon. This icon is displayed on the Inventory screen
Drag and Drop - You can click an item and drag it to another 'slot'. The item's icon follows the mouse as you hold down the button and when you let go, the item is moved to that slot. If the inventory slot is not empty, the items are swapped.
The number of Inventory and Heatsink slots change depending on the chassis you have installed. Bigger chassis mean more inventory space and more heatsink space.

It's still untidy because i'm using scratch graphics but the inventory background and the tooltips backgrounds are bitmaps so they can be redrawn at a later date with nice fonts, borders etc. I'm also displaying a bitmap of the chassis in the centre of the screen. I will add some animations and stuff later to make it a bit nicer to look at. I'm hoping it will look a bit like the inventory screen from this mech game I googled. Not exactly the same but the same style.

UI work is so boring!

r1ckparker

r1ckparker

 

Maze Game

This is my 3D maze game. It is designed to feel like an old-school RPG such as Dungeon Master, Eye of the Beholder, Dungeon Hack etc. I am posting this blog mainly to force myself to actually finish it, otherwise it will probably disappear into the ether like so many other projects I've started!

I have set myself milestone targets which I hope to hit regularly and will be updating this journal with screenshots, updates, problems etc.

Hope you enjoy!

r1ckparker

r1ckparker

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!