Treasures of the Deep Dwellers RPG

This Project is on PAUSE for a bit.
The next part I need to work on needs a big coding effort and I’m not 100% sure how to structure it. I Usually use 2.49b for my projects but I want to upgrade to the latest version. I think I’ve got rid of all the bugs I had with textures, animations and such, but I’m still a bit raw on programming. Most things are almost the same, but some things aren’t and they keep throwing up unexpected errors which I can’t get my head around.

I’m going to work on a simpler project for a while to get a feel for the latest blender, then come back to this one when I’m not feeling so frustrated. I will be coming back to this one, hopefully with it looking and feeling better than ever once it’s running on the newest Blender.

good luck dude!

The newest version has some pretty cool stuff.
Good luck, indeed

Ok, this project is back on.

I’ve spent some time working with 2.6 in order to get to grips with the changes to python and the API and I recently made a small turn based game which should help me to organize this one. I’ve also been looking at how to generate levels using tile sets and I’ve made some progress there, so I should be able to move forward again.

The last few days I’ve spent upgrading all the monsters and characters to GLSL, and I’m thinking of some more monsters to add.


this whole thing is so pimp. makes me feel like my little starter game is weak haha.

Right now I’m working on how to generate the random dungeon.
I’m going to keep track of my progrees here, hopefully anyone who’s interested can lend their brain power and maybe benefit from the design process in building their own games.

Right now I’ve got a script that can build an array (the tiles of the dungeon) and place them in the scene.

I’m working on how to layout the dungeon first, adding rooms and corridors using a room dictionary and Astar for the corridors.

So far I’ve managed to get it to add a room, but I have to find ways of getting the script to spread the rooms out at random (or special preset) locations. The rooms shouldn’t go off the edge of the map, and I think I’ve got that covered by adding a size parameter to each room dictionary entry.

For example the first room I’ve designed is the 3x3 cross:

cross_room = [[[0,1,0],[1,1,1],[0,1,0]],3]

It’s not very functional because it doesn’t have a door. :slight_smile: I’m currently trying to decide whenter to use a set of room dictionaries or generate the rooms entirely randomly, but I think the room dictionary give much more scope for an interesting dungeon.

I’m also going to have to add a second size parameter such as:

cross_room = [[[0,1,0],[1,1,1],[0,1,0]],3,3]

for rooms which are a different size on the X or Y axis.

For an idea of what I’m trying to get, check out this webbased dungeon generator:

And here’s my dungeon generating blend file at the first stage:
dungeon_builder_2013.blend (453 KB)

Well, don’t lose hope, it takes a long time to develop the skills needed to design your dream game. Organization is the key. :slight_smile: Anyway, this is far from being a Tripple A game, but I’m happy with how it’s going so far.

By the way, anyone got any idea how I can write a function to rotate/mirror that room array?
I don’t want to have to write dictionary entries for every roation/mirror variation of a room, so if I make a mirror/rotation fuction I can then just make a north facing room and use it for all variations.

if it’s a 3x3 matrix it should be easy, but it could be 2x2, or 6x6 or any size really.

Edit. I found that the zip function in python is really great for rotation while reversed() works really well to mirror.

the thing i love about this is it maintains originality while holding on to some of the “lost-attributes” of the old school epic RPG. just based on the current layout of the game, (though i know its far from complete) this is something i would buy if i saw it on the shelf. i lost interest in the gaming world when it started to seem like game developers couldn’t pack enough into a game. Games like morrowind (elder scrolls era) started to cross the line but i totally lost interest in games when you started having to work out or else your character would get fat. you listed your spell ideas earlier in the thread and it gave me the vibe i got from the original diablo in 1998 (i know youre likely not shooting for that) and then slightly so with diablo 2. im comfortable saying i played a demo of D3 and walked away shaking my head. i think people like you can keep the “real-world” out of the fantasy RPG and advance graphics and ideas without busting the seams. Plus you’re willing to help us little guys just starting out which is honorable all by itself! i can’t wait to see this advance!

That blue bird is on steroids!!

the thing i love about this is it maintains originality while holding on to some of the “lost-attributes” of the old school epic RPG.

Thanks, when I see games like diablo 3 and the new D&D game Neverwinter they look more like streetfighter than an RPG. I think the so-called “action RPG” has become so prevalent that the title “RPG” now only applies to that genre. Old RPG games are now classed as “Classic RPG”.

I want to go turn based (real time games focus to much on action and “twitch” gameplay and not enough on strategy) and make a whole new set of game mechanics which gives you something to do every turn instead of just:
>attack
>attack
>drink healing potion
>attack
>attack

Milestone 1:
I’ve designed the first stage of the dungeon generator. So far it can place rooms randomly.
Like so:



The magenta squares are door squares, the green squares are entry and exit stairs and all other squares relate to various types of rooms. Right now they are just placeholdres to show me how the code is working, check earlier posts for what the rooms will actually look like in game.

The next stage is to integrate the room rotation and mirror code I wrote, and link up the A-star code to draw corridors from each door and so join the rooms.

Each part of generating the dungeon can have many variables including room number and size, number of entrances and exits (later I’ll adjust the code to match entrance and exit locations from previous levels), ways of joining the corridors (some levels will have all rooms connected to the entrance, others will have them all linked to the exit, others will follow a path through each room until you reach the exit.) I also hope to add a tag to the rooms describing if it is inhabited (contains a feature) or not, so i can generate levels which are more civilized than others.

I don’t know if I posted a preview of my props yet, but here are the ones I’ve finished so far:



I need a lot more though to bring life to the inhabited parts of the dungeon. Anyone care to assist?

On an unrelated note I’m still brain storming the mechanics of the game. Turn based games can be difficult to program, but I hope I’ve figured out a good system. One element of my system is going to be stamina. You can do a lot in one turn, but the more you operate outside your abilities the more tired you will get. So if you throw all your stamina in to a beserk charge and a 3 round flurry of power attacks you may be lucky and down your opponent, but if not you’d best hope one of your other heroes still has the energy to help you out. As you level up you may get more stamina, or find ways to do damaging attacks without draining your stamina gauge so quickly.

I want low power players to be able to take on a high power mini boss without getting their behinds kicked, however, players will have to pace themselves so they don’t run out of steam too soon.

Team based Morale, Initiative and Magic resistance will also be a factor in the mechanics, meaning that a “leader type” character is going to be a nececity in any ballanced party.

I’ll animate / code / whatever :smiley:

what about using a manager for the turns?
have it roll initiative checks and what not like D&D ?
so if I “haste” a player, it adds the “bonus” to his roll, and re-orders the index?

I got about 70% done with final fantasy tactics in secondlife, before a update depretiated a function I used like 400 times:(

I am also working on random maze level generation, maybe we can share some ideas or so? I plan to put my stuff in resources if/when I get it to a finished enough state.

Currently also working on adding rooms and rotating them :). Corridors I already got working.

Sure, I’ll be sharing what I have if people want it.

My code is a bit messy, but it’s working so far.

I couldn’t sleep last night because before going to bed I was working on this can couldn’t get my old A-star pathfinder to work correctly. Turns out that in my sleepy state I was trying to re-use a graph from the previous path-finding run, which resulted in lots of errors.

Anyway:
Milestone 2:
random rooms, rotation, size control and pathfinding corridors.


At this stage it’s just an array of lists, there’s more work to do before you can actually walk arnoud the dungeon, but you can already see how it will look. I think I need to add more room types, so far I have only 58 different types so it can look a little repetative.

But look at those speeds! A custom dungeon generated in 0.17 seconds! Even the mega sized dungeon at the top only took 6 seconds. I think I can cut that down further if I do a bit of a hack, but it will result in extra, unessecary corridors being generated.

. . . pathfinding corridors

How do you do that? I just use the unflexible steering. I always wanted to do nodes like the big boys.

im with cam.dudes, show us the way master :stuck_out_tongue:

OK, I’ve cleaned up the blend file a bit, so you can download it and have a look.
Bear in mind this is only the tile mapper, it just creates a dungeon map, from there you have to use that data to place your own tilesets, I’ll be covering how to do that later, likewise movement within the dungeon will be handled by a different script using the A* pathfinder found in this file, in conjuction with a modified graph builder.

Here’s the MK5 Dungeon builder, with some incomplete features, but it works as show in the above images:
dungeon_builder_mk5.blend (101 KB)

Please ignore any spelling mistakes in the file, I’ll fix them next build.
ex. “This is a class for noses” should read “this is a class for nodes”.

We could all use some help with pathfinding I think…

Another method, that may be applicable for VERY brute machines, is using another thread(not visable to anyone), to cast “suicide jumpers” from it’s position ( think of a million newbs rushing you) that if 1 survives it chooses that path? 10 out of every 1000 “lemmings” would make it…
choose 1 of those :smiley:

this way you can use jumping+wall running etc. and not need as complex of code,

I was thinking the enemy could look like they are thinking while doing this…

So 1 “real enemy” is testing a “mini” scene 100’s of times until it thinks it has it…

Good idea?

I was thinking of calling it “Feelers”

Well, that’s kind of what A* does. It tries out dozens of different paths and chooses the best one by comparing the cost at each stage. When it has found the fastest path (or one of them) it returns the path. The navigation mesh in blender already uses A* so in most cases you should use that.

Now’s a time when i could do with some feedback and help about an artistic choice.

I’m adding a metal texture to my character shader and I want to know which one looks best. I’ve got about 8 that I could use, some are more realistic than others- so much so that you hardly even notice they are applied when the rest of the shader is active.

If you want any of these textures for your own projects I can also share them here.


So far I’m leaning towards “metal_2” as my main choice, with “mirror 5” as a good choice to add a reflective glint to darker armours and weapons. Both of those are mat cap type textures, while “silver” is a reflective texture. I like silver as a mirror like shine for magic weapons or armour, but it looks a bit too reflective sometimes.