| 07-23-2005, 09:28 AM | #1 |
I'm designing two different maps that will be different everytime you play them, one with an dungeon setting using doodads for walls and one with an outside setting using trees. I'm starting by completing the dungeon one first, and seeing how it plays before doin the second. DungeonofDoom and Warcraft Rouge are two maps that are different everytime you play them, but my idea is consideribly different. Exploration in these maps will have greater empasis that just cleaning out the creeps. A character like a thief might be able to go though the dungeon, collect tons of treasure, and win with only killing one or two monsters. The Dungeon map is a 25x25 room map (320x320, can go 256x256 if nessisarry) (paste this in a text editor with curior font to get a better idea) OOOOOOOOOOOOOOOOOOOOO\OOO OOOOOOOOOOOOOOOOO/\/\/OOO OOOOOOOOOOOOOOOOO\OOOOOOO \/\OOOO/\/\OOOOOOO\OOOOOO OO/OOO/OOO/OOOOOOOO\OOOOO OO\/\/OOO/OOOOOOOOOO\OOOO OOOOOOOO/OOOOOOO/\OO/OOOO OOOOOOOO\OOOOOO/OO\/OOOOO OOOOOOOO/OOOOOO\OOOOOOOOO OOOOOOOO\OOOO/\/OOOOOOOOO OOOOOOOOO\OOO\OOOOOOOOOOO OOOOOOOOOO\...OOOOOOOOOOO OOOOOOOOOOO.X.OOOOOOOOOOO OOOOOOOOOOO.../\/\OOOOOOO OOOOOOOOOOO\OOOOO/OOOOOOO OOOOOOOOO/\/OOOOO\OOOOOOO OOOOOO/\/OOOOOOOO/OOOOOOO OOOOO/OOOOOOOOOO/OOOOO/\O OOOO/OOOOOOOOOO/O/\/\/O/O OOOO\/\OOOOOOOO\/OOOOOO\O OOOOOOO\OOOOOOOOOOOOOOOO\ OOOOOOOO\OOOOOOOOOOOOOOOO OOOOOOOO/OOOOOOOOOOOOOOOO OOO/\/\/OOOOOOOOOOOOOOOOO OOO\OOOOOOOOOOOOOOOOOOOOO the O's are empty rooms, the / and \ are rooms that have a river running though them, and the X and .'s is the big center room. Initially all rooms are connected, and the random generator generates walls, locked doors, secret doors,and doors to connect the rooms in different ways. Secret Doors and Walls both use an invunrable rolling stone door, and the secret doors will have an invisible lever in the room that players will have to detect that will trigger the door to open. Monster lairs will be randomly placed thoughout the dungeon, and the treasure hoards will be at the heart of each lair. You will know if you are close to a hoard if you find the outer rooms of the lairs have guards. (so if you find a few rooms close together all with orcs, you likely found a orc lair with a hoard nearby) There are two types of items, normal and treasure. Treasure items are collected and displayed on a multiboard, and they each have a gold value accociated with them. Gold can be collected and used if you find a wandering merchant or from mercenary camps at the starting corners, but treasures cant be used as gold, only add to your net worth for winning the game. All units can hold items, and all items are dropped on death. this will make the steal ability easier to program for stealing from creeps PLAYERS: The map will be between 1 and 8 players, split into four teams. each team starts in a different corner of the dungeon. GOALS: The goal of the map is to collect the most treasure and leave the dungeon before time runs out. If you are in the dungeon after the time runs out, you lose! COMBAT: Combat will use warcraft 3 style, with alterations to the armor/attack table. will add pirceing attacks, slashing, and blunt (or piercing, melee, and missle havent decided) The Caster System will be used to get elemental damage from spells in the game. SPELLS: Spells will be found from books instead of having them preset. There are five types of spells with a different color book to represet the school of magic. each spell will have level accociated with it, and depeding on the characters level in that school, depends if they can use it or not. Characters will get points to put what ever school thier character can use. Wizard Spells: various magical effects, sleep, bufs, negative bufs, moderate attack spells (firebolts, firewall) Scorcery Spells: Summoning and large area of effect spells Necromancy Spells: Black magic, harming spells, raising dead, death coil, ect. Nature Spells: the living tree spells, healing spells, entangling roots Divine Spells: Turn undead, healing spells, bless spells CHARACTERS: Captin: Normal fighting class. Can switch his weapon type be equiping a different weapon, Has high charisma so he can aquire mercenaries easier. has buf aruas for troops. Beserker: One of the stronger fighters, can go beserk Dwarf: A cross between fighter and rouge, this guy can disarm traps, find secret doors easier than other classes. Gets a bonus when attacking mechanical units. Paladin: A fighter that can use level 1 divine spells. Beast Master: A good fighter, and able to tame animals of the wild kingdom. Dark Knight: A fighter that can cast level 1 necro spells Cleric: Less of a fighter than the paladin, but can cast nature and divine spells and gets 4 points to distribute Theif: This character can disarm traps, find secret doors, hide, pick locks, steal from monsters and other players and gets a back stabbing bonus. Ranger: the ranger is able to cast nature spells and hide. Ninja: The ninja casts wizard spells, can hide, and disarm traps. can create posion healing potions Hobbit: The hobbit cant fight very well, but can listen to creeps on other sides of walls, disarm and set traps, find secret doors better Druid: The druid can cast nature spells, and transform into animals. a decent fighter when in bear form. Necromancer: the necromancer can cast necromancy spells and socery spells Witch: the witch can cast necromancy spells and wizard spells Mage: the mage can case wizard and socery spells MONSTER LAIRS: I have designed an algoritm that can generate lairs (series of rooms connected with one or two exits) randomly in the dungeon with specific properties. Some may not even get generated in teh dungeon. Dark Elven Lair: If you are allied with the elfs, you might be able to hire some Dwarf Lair: If you are allied with the dwarfs, they might be happy to upgrade your weapons for you. Spider Lair: Very dangerous, spiderlings keep spawing until you kill all of the eggs. Treasures can be found on dead adventurers in thier lairs, since spiders are more interested in your flesh that your loot. Sometimes you can find adventures that haven't been eaten yet to joint your party. Kobold Lair: Not very strong, lairs usually protected by traps moreso than warriors. they like to hide treasure behind secret doors. Orc Lair: Orc warroirs guard all the entrances with barricades, and keep thier loot away from the outer walls. May find Imprisioned elfs and humans. Undead Lair: The undead need to find flesh to eat, so they spread like a diese killing wandering monsters, transforming them into more undead. Demons Lair: Demons come though a portal, it will have to be destroyed to prevent more from coming in. They don't keep treaurse, but wander the dungeon in search of prey. Bandits Lair: A group of badits hoarding thier stolen loot. Dragon Lair: Usually the only entrances are secret, and the lair is small, but the dragon sleeps with his hoard of loot. Careful though, if you wake him, you will be sorry! Oger's Lair: Not too concered about treasure, more concerded about licking your bones. The big fat creatures like to eat people. The do keep treasure, although they really have no conception of its value, they just get angry if someone invades what is thiers (which in their eyes, is everything) Troll Lair: Trolls like to use a combination of traps and warroirs to guard thier treasure Evil Wizard Lair: Wizards like to hoard magical items moreso than valuables. They have more use for spell books that jewels. Sometimes you will find mana fountains in thier lair. The will have summoned creatures to protect thier loot. Merloc Lair: Found near water. Carful with these guys, thier ability to swim makes them good for chasing! They will try and carry all the treasure they can with them, leaving not much to be found scattered though the lair. Harpies Lair: Harpies can fly, so you better be ready to attack air. You find treasure on them instead of hoarded. Final Lair: Strange Creature that lurks in the middle of the dungeon. Get the most loot from this guy! WANDERING MONSTERS: More monsters will be in the dungeon, but won't have a whole section dedicated to them. You might find them in a single room. maybe a family of bears, a wandering orc squad, other various wild life. A wandering merchant that sells magical items and potions can be found in the dungeon. HERO LEVELS: There won't be high hero levels, I want to keep the game to strat instead of level up hero race. Small levels max. This is supposed to be a 30-60 min game. I dont want players to spend anytime leveling up, all leveling up will hapen as a result of persuing the treauser goal. I may choose not to have leveling up at all, as long as the map is dynamic is interesting enough without them. The Generator: I have a decent generator working right now, but it needs work. Right now it would be difficult to have a area hidden behind a secret door inside a lair. I could only make a lair that is sealed with all secret doors. I would like anyone to help with ideas on generating these maps. Also I need better ideas to refine the balance and making stratigy the main focus of the game. (for example, if you are a cleric, you should try to locate the undead lair, for they are much easier for you to kill, but need to stay away from monsters you don't have alot of options for. I want to keep the game on a single tier, so monsters really aren't harder than others, just provide different changes based on who you are. There will be harder leader units for hearts of lairs.) |
| 07-23-2005, 09:50 AM | #2 |
sounds really nice! keep up the work, need a revolutionary map soon :D Anyways, how about (this may take time) making like, 20 different terrains, then its random wich one they play......because by randomizing a terraing it will be difficult to place doodads and such.... |
| 07-23-2005, 11:19 AM | #3 |
Woaw this would be a map people at BNet should play? With all that stuff wouldent it take ages to load? O_o |
| 07-23-2005, 01:11 PM | #4 | |
Quote:
|
| 07-23-2005, 05:36 PM | #5 | |
Quote:
You really can't randomize terrain. Cliffs have to stay cliffs, water has to stay water (if you want the nice visual effects like waves) I am thinking about doing this for the second map, cause there needs to be alot of different types of terrian, and i would want some maps to have water and some not. I'm even thinking about making a map script that can generate doodads for any map, then making a program that makes a file for the terrain, and turns it into the map with the script. This will force everyone to dl every game, but will allow for alot of variety. I think if the script is small, the file size of the map can be small enough for a quick dl (since there will be no units or doodads on it) And accaully, placing doodads is pretty easy. for the map i have now, its just 25x25 rooms. So i have a function for each room type that places buildings/units and tiles the floor, then i can just pass it parameters for which room. There only needs to be slight adjustments for water rooms. For the outside map, i broke it into 4x4 tiles. and each tile will have a definition function for them all the terraining will be done with this in mind. So rivers will stay in the 4x4, or might take up 8x8. This way i can have a index that knows what is at that 4x4 tile. (place a house, a forest, ect) this one might suck on bnet with the amount of trees i would have to place. I made some really nice towns this way, with algorithms that work for rouge type games(instead of ascii char, you have a doodad of a building) I'm not sure how bad it the dungeon will be on bnet. Thats why I'm tring to just make a test map that just uses warcraft 3 units (my units will have to have completely different stats) to see how bad it is. Right now all it does is creates lairs then fills in the rest of the rooms, only setting up walls and doors. It will also depend how full I make the dungeon, which i would like to have setable. It would be nice to have alot of options for making the dungeon, cause there are so many factors that go into it that are adjustable. |
| 08-05-2005, 05:20 PM | #6 |
Well, I remember helping you on this before, but I'm afraid that I'm going to keep my mouth shut for now because I just made a Dungeon Generator myself(Flavian came litterally seconds after I posted my map description and told me that there already was one("Isn't there already one of those on the Map Team"board... or something like that) In short: Mine is better ;P. If you want you can check out my board in the campaign section(not the Team campaign section or w/e this is). My map is a Diablo style map that also generates a dungeon, but mine is 10x10(plenty of space when you concider the next point I will make), and regenerates into an entirly new one when you reach the stairs. I've also solved what I think is all of the problems that you are having in mine already. The game currently has 3 different dungeon types(grassy like, rocky like, indoors like) but will be customized to have more. My map does not have random doodads(houses and the like) like yours does, but it still has a ways to go.(And the randomization works like a charm) And mine has next to 0 load time with next to 5 dungeon creation time Your map does seem different enough from mine that I might be willing to give a few tips, but it's similar enough that I would rather not. |
| 08-08-2005, 07:44 AM | #7 |
Ok, I read the other thread and I think people can get a little silly about map ideas. I just think of the Random Generator as just a feature nessisary for my game type. Randomization is just a FEATURE. Ofcourse it does take alot of hair pulling, so it seems like the main part of the map. If someone made a Who's the were wolf game, and wanted it to be random, you wouldn't look at another map that is wilderness survival that has random generation and say "oh, they are the same. might as well have one stop". sorta silly. The core of my idea I believe lies in the style of play. I am tring to do a style that is like OpenRPG, but like board games of the past has specific goals for people to compeate against, and not have the game go for more than 2 hours. It will probably have a wilderness survival feel to it, managing your resources and timing will be important. I like games that always keep you on edge for the whole durration. Plus you will get to choose allies and change allies thoughout the game. In fact I have more than one map designed with random generation feature, all different. His is diablo style play. Keep leveling up, going deeper in dungon, and i bet he will have a hero load feature. two compleatey different styles of play. Plenty of time to hang out in towns. Only similarity is the fact that the layout of certain aspects of the map will be different every time you play. Which is a good feature, so people can't just memorize your maps. P.S. I have improved my generator very much by experimenting with different algorithms in a program i wrote so i dont have to wait for wc3 to load to test them. once my algorithm is perfect, i will just transfer it to my generator in wc3 (which is very modular, wrote a bunch of tools for it) Here are some sample maps: This first one is designed to have players start in the middle, and the dungeon is split up into sections that are different level difficulty. each character would need a different amount of treasure based on how easily they could wipe out the upper levels. (This design is based off of the board game Dungeon!, Just one of the many mazes I was experimenting with) (copy paste to wordpad to see it right) 0's are walls, +'s are doors, *'s are secret doors, #'s are rooms with treasure, and X's are special rooms (fountain of healing, shops, ect) (paste into curior text editor for better results) 000000000000000000000000000000000000000000000000000000000000000000000000000 0..........00....00..........**....**.00...................00X..X00#++....0 0.00000000+00.00.00.00.00000.00.00000.00.00000000000000000.00.00.00000000.0 0.00000000+00.00.00.00.00000.00.00000.00.00000000000000000.00.00.00000000.0 0.++#00.++#00.00....00.00#00.00....00.00.00....**.00...X..X00X..X.........0 0.00000.00+00.00.00+00.00+00.00000000.00.00+00000+00*00.00.00.00000000000.0 0.00000.00+00.00.00+00.00+00.00000000.00.00+00000+00*00.00.00.00000000000.0 0....00.00#00.00.00#00....00.**.**....00.00#**.00#++.00X..X00....++#00#00.0 0.00.00.00000.00.00000*00.00000000.00+00.00000.00000000.00.00.00000+00+00.0 0.00.00.00000.00.00000*00.00000000.00+00.00000.00000000.00.00.00000+00+00.0 0.00.00....00.00..........++#00....00#00....00.......00....00....00.......0 0.00.00000.00.00000000000000000.00000000000.00000000*00000000000*00*0000000 0.00.00000.00.00000000000000000.00000000000.00000000*00000000000*00*0000000 0.00.......00.......00#00.......00....++#00....++#00.............00.......0 0.00000000000+00000.00+00.00000000.00000+00000.00000.00+00.00.00000000.00.0 0.00000000000+00000.00+00.00000000.00000+00000.00000.00+00.00.00000000.00.0 0.00.......++#00#**X..X00.......00....00.++#00.00....00#00.00....00#++.00.0 0.00.00000.00000000.00.00.00.00.00000.00.00000.00.00000000.00+00.00000.00.0 0.00.00000.00000000.00.00.00.00.00000.00.00000.00.00000000.00+00.00000.00.0 0.......**.00.**...X..X...00....00#00X..X......00..........00#00....00....0 0.00000000000.00000.00000000000000*00.00.00000000000.00000000000000.00000.0 0.00000000000.00000.00000000000000*00.00.00000000000.00000000000000.00000.0 0..........00.00#++..........00......X..X......**.00.++#00.++#++....00....0 0000000+00.00.00000000.00000*00.00000000000000.00.00.00000.00000000.00.00+0 0000000+00.00.00000000.00000*00.00000000000000.00.00.00000.00000000.00.00+0 0....00#00.00..........00#00....00.......00....00.........X..X......00.00#0 0.00.00000.00000000000000+00000.00.00000*00.00000.00000000.00.00.00.00.0000 0.00.00000.00000000000000+00000.00.00000*00.00000.00000000.00.00.00.00.0000 0.00.**....++#00....00.**.**.00....00....00....00.++#00...X..X...00.00....0 0.00000000000000.00.00.00000.00000000.00.00000.00.00000.00.00000+00.00000.0 0.00000000000000.00.00.00000.00000000.00.00000.00.00000.00.00000+00.00000.0 0.........X..X...00....00.............00....00....00....00....00#00....00.0 0.00000000.00.00000000000.00*00000000000000*00000000.00000000.00000*00*00.0 0.00000000.00.00000000000.00*00000000000000*00000000.00000000.00000*00*00.0 0....00...X..X00#++.**....00.**#00..........00.......00#++....00....00#00.0 0000.00.00000.00000000000000.00000.00.00.00000.00000000+00000000.00000+00.0 0000.00.00000.00000000000000.00000.00.00.00000.00000000+00000000.00000+00.0 0....00.++#00....00.......**....00.............00#++....00.......00....00.0 0+00000*00000000.00.00.00000000.00.00.00.00.00000000.00000.00000000+00+00.0 0+00000*00000000.00.00.00000000.00.00.00.00.00000000.00000.00000000+00+00.0 0#++.00.**....00....00X..X00#++.00..........00#++..........00....00#00#00.0 0000.00.00+00.00000000.00.00000000000.00.00000000*00000000000.00.00+00000*0 0000.00.00+00.00000000.00.00000000000.00.00000000*00000000000.00.00+00000*0 0#00.00.00#00....**.00X..X...00....00.00.00....**..........**.00.00....00.0 0+00.00.00000000000.00.00000.00*00.00*00.00.00000000000000000000.00000+00.0 0+00.00.00000000000.00.00000.00*00.00*00.00.00000000000000000000.00000+00.0 0....00....00..........00#++.00#00.00....00.......++#++.00....00....00#00.0 0.00000000.00.00000000+00000.00*00.00000000000000.00000+00.00.00000.00+00.0 0.00000000.00.00000000+00000.00*00.00000000000000.00000+00.00.00000.00+00.0 0.00#**.......00....00#00....00#00....00#00.......++#00#00X..X++#00.00.00.0 0.00000*00.00000.00*00000.00000000.00.00+00.00.00000000+00.00.00000.00.00.0 0.00000*00.00000.00*00000.00000000.00.00+00.00.00000000+00.00.00000.00.00.0 0....00.00.00....00....00.++#++....00....00....++#00....00X..X......00X..X0 0+00.00.00.00.00000000.00.00000000000000.00000000000*00000000000000000.00.0 0+00.00.00.00.00000000.00.00000000000000.00000000000*00000000000000000.00.0 0#00.00...X..X...00.**.00X..X...**.......00.**.00.**.00#00....**.++#00X..X0 0000.00000.00.00.00*00000.00.00.00000.00.00.00.00*00000+00.00000*00000000.0 0000.00000.00.00.00*00000.00.00.00000.00.00.00.00*00000+00.00000*00000000.0 0....00...X..X...00.**.00X..X...00....00....00..........00.00#++..........0 0.00000.00.00000000000.00.00.00000.00000000000000000000.00.00000000.0000000 0.00000.00.00000000000.00.00.00000.00000000000000000000.00.00000000.0000000 0....00.00.00.++#00....00....++#00.00....++#00.......**....00.......00.++#0 0000.00.00+00.00+00.00000000000000.00.00000+00.00000000000000*00000000.0000 0000.00.00+00.00+00.00000000000000.00.00000+00.00000000000000*00000000.0000 0#00....00#00.00#00.......00#++....00.00#00....00....00#++.00.......00....0 0+00000000000+00000000000.00000.00.00.00+00000000.00.00000.00.00000.00000.0 0+00000000000+00000000000.00000.00.00.00+00000000.00.00000.00.00000.00000.0 0....00#00.++#00..........00....00.00....00.......00.++#++.00.++#00.00X..X0 0.00.00+00.00000.00000.00000.00+00.00*00000.00.00000000000.00000000.00.00.0 0.00.00+00.00000.00000.00000.00+00.00*00000.00.00000000000.00000000.00.00.0 0.00.00.......00....00.00....00#00.00.......00.00....00#00..........00X..X0 0*00.00.00000.00000.00.00.00000000.00000.00000.00.00.00+00000000000000000.0 0*00.00.00000.00000.00.00.00000000.00000.00000.00.00.00+00000000000000000.0 0#00................00....00#++..........++#00....00......................0 000000000000000000000000000000000000000000000000000000000000000000000000000 This second design is my original attempt, but still has some issues. I think I can work them out using the algorithms i made for the other sample. In this design, the heros start at the corners, and make thier way to the center. All characters need to beat each other in getting treasure (They will all be balanced, not by making them need less treausre to win like the previous sample) This is one design that i was going to make feel like a wilderness servival, only its a dungeon servival. Notice the doors close off the different monster lairs, which will contain higher density of treasure. There are still alot of issues not worked out for this, because lairs will be complicated in thier generation (i.e., a wizard lair can be 2 lairs, connected with a teleporter, I also need methods of generating keys to locked doors so they arent genereated behind them (the thief won't mind, he can pick locks) 0's are walls, +'s are doors, / and \ are rivers, X's are bridges and #'s represent the center room that is full of water (paste into curior text editor for better results) 000000000000000000000000000000000000000000000000000000000000000\00000000000 0................00.............00.............00....00....00...\.........0 0.00.00.00000000.00.00000000000.00.00.00000.00.00.00.00.00000.000\0000.00.0 0.00.00.00000000.00.00000000000.00.00.00000.00.00.00./\.000/\.000/0000.00.0 0....00.......00.00.00.++.00.......00.00....00....00/..\00/..\00/...00....0 0.00000000000.00.00000000.00.00000000000.00000.0000/000.\/.000\/.00.00000.0 0.00000000000.00.00000000.00.00000000000.00000.0000\000.00.00000.00.00000.0 0.00....00....00.++....00.00....00....00....00....00\...00.......00.00....0 0.00.00.00.00000.00.00.00.00.00.00.00.00000.00000.00.\0000000.00000000.0000 \.00./\.00.00000.00.00./\.00./\.00.00.00000.00000.00.0\000000.00000000.0000 0\00X00X...00....00.00X..\++X..\...00.00.00.......00...\...00.00....00....0 0.\/000.\0000.0000000/0000\/0000\0000.00.000000000000000\0.00.00.00.0000000 0.00000./0000.000000/00000000000/0000.00.0000000000000000\.00.00.00.0000000 0.00.../00....00.../......00.../00....00..........00......\...++.00.00.++.0 0.00.0/.00.00000.0/.00+00000.0/.00.00000000000000.00.000000\0.00.00000.0000 0.00.0\.00./\000./0.00+00000./0.00.00000000000000.00.0000000\.00.00000.0000 0.00.00\00/..X../00.00.++.00/00..........00....00....00.++.00X00.00.++.00.0 0.00.00.\/.000\/.00.00.0000/000000+00.00000.00.00000.00000.000\0.00000.0000 0.00.00.00.00000.00.00.000/0000000+00.00000.00.000/\.00000.000/0.00000.0000 0.......00....00.00.00.../.........++....00.00.../00X...00...X...00.++.00.0 0.00.00000000.00.00.00+0/000000000.00000.00.00.0/.00.\000000/000000000.0000 0.00.00000000.00.00.00+0\000000000.00000.00.00./0.00.0\0000/0000000000.0000 0.00.00.......00....00.00\...00.00.++.00.00.../00.00...X..X00....++.00....0 0.00.00.00000000000000.00.\0.00.00000000.0000/000.00000.\/000.00.00000000.0 0.00.00.00000000000000.00./0.00.00000000.0000\000.00000.00000.00.00000000.0 0.00.00.00....00........./00.00...............\......00....00.00.00.00.++.0 0.00000.00.00000.0000000/000.00000.00000000.000\0000000+00.00.00.00+0000000 0.00000.00.00000.0000000\000.00000.000000/\.000/0000000+00.00.00.00+0000000 0....00.......00....00...X00....00.00.../00\../...00....00.++.00.00....++.0 0000.00000000.00000.00.00.\0000.00.00.0/0000\/000.00.00.00.00.00000.0000000 0000.00000000.00000.00.00.0\000.00.00.0\000000000.00.00.00.00.00000.0000000 0.00................00.00...X...00.00...\...00....++....00.00.......00.++.0 0.00000000+00000000000+00000.\0000.00.00.\0.00.00000.00000000+00000000000.0 0.00000000+00000000000+00000.0\000.00.00.00.00.00000.00000000+00000000000.0 0.......00....00..........00.00\............00.00....00....00.00.00.++....0 0.00000.00.00.00.00000000.00.00.\0.00.00.00.00.00.00000.00.00000000000.00+0 0.00000.00.00.00.00000000.00.00.00.00.00.00.00.00.00000.00.00000000000.00+0 0.00....00.00.00....00....00.00................++.++.00.00.00.00....00.00.0 0.00.00000.00.00000.00.00000.00.00.00.00.00.00000+00000.00.00000000.00.00.0 0.00.00000.00.00000.00.00000.00.00.00.00.00./\000+/\000.00.00000000.00.00.0 0.00....++....00.00....00....00............X00\00/00\++.00.++.00.00.00.00.0 0.00000.00+00.00+00000000.00.00.00.00.00.0/000+\/0000\0.00.00000000.00.00.0 0.00000.00+00.00+00000000.00.00.0\.00.00.00000+000000/0.00.00000000.00.00.0 0....00....00....00.......00......\00....00....00...X00.00....++.00....00.0 0.00.00000000000000000000000000000.\0.00.00.00.00.0/.00000+00+00000000000.0 0.00.000000000000000000000000/\000./0.00.00.00.00.0\.00000+00+00000000000.0 0.00.00..........00........./++\00X...00.++.......00\00.............00....0 0.00.00.00000000.00.0000000/0000\/.00000.00000000.000\0+00000000000.00.00.0 0.00.00.00000000.00./\0000/0000000.00000.00000000.000/0+00000000000.00.00.0 0.00....00.......++/..\00X.........00....00.++....00/.........++.00....00.0 0.00000000.0000000/000.\/.00.00000000.0000000000000/.00000000.00.00000000.0 0.00000000.000000/0000.00.00.00000000.000000000000/0.00000000.00.000/\000.0 0.......00.00.00/00....++.00.00....00..........00/++.00.++....00.00/..\00.0 0000000.00.00.0/+00.00+00.00.00.00.00000+00000+0/000+00000000000.0/.00.\0.0 0000000.00.00./0+00.00+00.00.00.00.00000+00000+/0000+/\0000/\000./0.00./0.0 0..........00/00.00.00..........00.00.00......X00...X..X..X..X../00.00/00.0 0.0000000000/.00000.00000000000000.00.00.0000/.0000/000.\/0000\/000.0/.00.0 0.0000000000\.000/\.00000000000000.00.00.0000\.000/0000.00000000000.0\.00.0 0....00....00\00/++\00.++.00....00....00.00.00X..X...00....00.......00\...0 0000.00.00.00.\/0000\0.00000.00.00000+00.00+000\/000.00000.00.00.00+000\000 0000.00.00.00.0000000\.00000.00.00000+00.00+00000000.00000.00.00.00+0000\00 0.......00.00.00......\00.++.00.......00.00.++.00.00.00.......00.00......\0 0.00000000000.00.000000\0000.00000000.00000.00000000000.00000000000.000000\ 0.00000000000.00.0000000\000.00000000.00000.00000000000.00000000000.0000000 0..........00....00.++...\00.00....00.00.00.......00..........00....00.++.0 0000000000.00000000000000.\0.00.00.00000+00000000.00.00000.00.00.00000.0000 0000000000.00000000000000./0.00.00.00000+00000000.00.00000.00.00.00000.0000 0....00....00....00......X00.++....00.++....00....++....00.00.00.......00.0 0.00000.00.00.00.00.0000/000000.00.00000+00.00.00000000.00.00.00000+00+00.0 0.00000.00./\.00./\.000/0000000.00.00000+00.00.00000000.00.00.00000+00+00.0 0....00.00/00X00/00\../00.......00.......00....00.......00.00.......00....0 0.00.00.0/000.\/.000\/.00+00000000000000.00000000.00.00.00.00000000.00.00.0 0.00.00.0\000.00.00000.00+00000000000000.00000000.00.00.00.00000000.00.00.0 0.........\...00....++.......++.00...................00...................0 00000000000\000000000000000000000000000000000000000000000000000000000000000 |
| 08-14-2005, 08:37 PM | #8 |
You're right. I was just shocked that someone had beat me to the punch, as it only took about 2-3 days to get working for me. Our maps are quite different, and I'd be glad to help where I can. And yeah I was thinking of having a save/load code, but it's a little hard to implement that because I don't want a level 69 hosting and slaughtering all the level 1 enemies at the start of the game, and I don't want it have it start at floor 69, and have a new time player get his ass kicked all the time. A difficult balance, so for now there is none. The enemies are randomly generated (and besides for having to store all the unit groups at the top of the map, there are no problems with that), and I'll be working on Hero groups today. Once that is done I can use that rare occurance for just about any other rare feature that I will add.( I should probobly post this is my own forum, sorry) Glad to see you optimistic about your map, I'm looking forward to seeing it. |
| 08-15-2005, 06:13 AM | #9 |
New Update: I have decided to continue with the second design. I have drasticly improved the generator, now there is a gareenteed path to the center from every corner, with any character. (I was pretty difficult to do, cause paths are dependent on character, whether a bridge was generated or not, it might be blocked off by walls ect.) Thats is probably the most difficult part of this design. So much is dependent on character that its hard to make the dungeon work out. Right now I'm deciding how to generate keys to locked doors. I think that if a lair is locked, I'll create a patrol team for that lair that patrols around the lair with a key. Or maybe make a dead group in a spider den or something. That is where things get complicated, when I start having inner related lairs. I think what I really need to do now is start making the units, so I know what I have to generate from. Balancing units is accually alot harder than I thought it would be. I'm probably gonna have to make all units from scratch. What I need are units that offer unique challenges to every character. Like some charactres will have difficulty with flying until they aquire an orb or something. The hobbit will be edible by the lizards, and he can overcome that weakness by using his listen ability that reveals rooms to him on other sides of walls/doors and avoiding them. Then he can find equipment that can help him overcome them to accually defeat them. |
| 08-15-2005, 04:34 PM | #10 |
So your dungeon is separated into different sections for each player, and they don't over lap, is that right? Are the walls that separate perminant or not? And do the rooms vary in size and shape, or are they all square. Mine are square, but I had an idea to make them different, but this requires making the map about 77% larger, so I'd have to have time to move things and re-do the whole system, and I havn't quite figured out how to do it yet. If your walls that separate are perminant there is indeed a way to make 1 path that always works. I'd recomend having it generate from the finish point rather than the start. That way it would always work, am I right? |
| 08-15-2005, 07:08 PM | #11 |
Accually I'm very happy with the generator now, it already has a garenteed path to the center. This is the algorithm I use: Step 1: Generate Random maze by doing a random walk though the dungeon. If there is nowhere to go, find an already visited room and try again. Once the whole dungeon is filled, every single room is accessable from every other room. This also means the algorithm can't go a direction if a river room is blocking the path (when a bridige is randomly generated, it is allowed to take that path) Step 2: Since I'm tring to make a dungeon, not a maze, I make the maze more sparse by removing alot of the dead end rooms. Now it is still a maze, but there are sections of unvisited rooms. (I make sure the corners and center are never removed) Every visited room is still accessable from every other visited room. Step 3: Dead End Removal. Right now there are no loops in the dungeon, and many dead ends. So to remove them, I check all rooms in the dungeon, and randomly choose to remove them by using the first algorithm, only it doesnt stop till it hits an already visited room, thus creating a loop. Step 4: Generate Monster Lairs. Now I randomly choose an unvisited room and use the first algorithm to make a section with a set number of rooms that is cut off from the rest of the map in one of the gaps. Then I choose how many exits I want it to have, and have them exit to the main maze. Then I can choose if i want it to be locked off, behind secret doors, maybe a tree wall blocking it off, regular doors ect. Everything is done except the last part of the last step. These are the web pages I used to make this algorithm. After playing with alot of algorithms, I ended up using a modified version of the last page, which seemed to give what I wanted. http://www.astrolog.org/labyrnth.htm http://www.astrolog.org/labyrnth/algrithm.htm http://www.aarg.net/~minam/dungeon.cgi |
| 08-25-2005, 01:37 PM | #12 |
Cool Links, I'll check them out. My algorithm does basically this: starts with 1 room as the start point and has a random chance that the room will be able to go up, or left(it's in the corner so there is 0% chance it goes right or down). From there it marks the rooms that are connected, and repeats the algorith, this time checking the new rooms as well as the first. I set how many loops it takes, and it goes ahead and generates the maze. Then I just have it pick a random room(checking if it is part of the maze ofcourse, because I have yet to see the full 10x10 grid be all connected in this meathod) and create the end of the maze right there. That way the end of the maze isn't nessicarily at a dead end. Because the way this is done, there naturally are a few loops, but ussually not. EDIT: That last link is pretty damn cool. Might show it to the guys when we're playing D&D(I'm pretty sure that's a 2nd edition generator though). |
| 08-26-2005, 09:28 PM | #13 |
UPDATE: I might not get to work on this for awhile cause of school, but I'm now designing the units, spells and combat for the game, which is really what I wanted to use to make the game more interesting. Right now there are plans for elemental resistance, critical hits for physical attacks, and low Range buffers so units can escape attacks after they have started. This way I can have a creep that does uber damage, but is slow so fast units can escape. The critical hit system works like this: if a physical attack breaks a certain threash hold of damage determined by weapon type, a critical hit happens. It also takes into account things like if they are caught in a net, stunned, sleeping etc. So some attacks will need a high amount of damage to get a critical (breaking the thresh hold represets penatrating armor, weapons that need higher numbers to penatrate arent good at piercing) This way an increase of armor makes critical hits harder. This way I can make heros that are good at killing big strong units, but bad at killing multiple weak units. and having heros that can kill the multiple weak units, but be bad at killing a single strong unit. Every creep needs to give unique challenges to every character. For example there could be a fast creep that is harmless to fast heros cause they can escape (maybe not kill), harmless to strong heros cause they can stay and fight, harmless to heros that can hide, but really dangerous to slower weaker heros. Those heros would be equipped with good recon skills to avoid that creature all together, or they might save a staff of slow to trump that creep. (Thats why it needs to be random, otherwize recon skill will be useless after the first play) This section will take some time, and even more time cause i have to cut down on development when school starts. Almost got a really good visibility system going. I nearly had it so if a torch was in your line of sight, you gain vision of that torch. And all units would have like no visibility otherwize (except night vision) unfortunatly there is no way to test if a unit is visible to another unit.... there is a way to test visibility to a player, so i used player 12, and granted visibility of a single torch, and tested the units around it. This doesnt work cause visibility doesnt happen instantly. If there was just a way to test if which units are giving visibility of another unit... ***EDIT***: Got the lighting system working, works really nice too! yay. Now if a light source is in your units line of sight, it will be revealed to you (Like real light!) now you can really hide in the shadows. |
| 09-06-2005, 05:18 PM | #14 |
sounds really cool. are you looking for help,or is this just a progress thread? i would like to help, but if you are doiun it solo, cool and goodluck. i sounds really interesting so far. Just a question though - you say that some chars are good at killing big strong units, but bad at killing multiple weak units. and having heros that can kill the multiple weak units, but be bad at killing a single strong unit. doesnt this mean that you will have a critical hit on lower damage weapons?just wondering |
| 09-07-2005, 01:01 AM | #15 |
Ok! After a week of no internet... Accaully this started out as a recruitment thread, but after I got my generator working, I felt that I was all set and it gradually turned into a progress thread. I suppose I could use help, but I've just started the accual creating of units/systems, still very experimental. The generator alone took me like a month just to get working right, and there is still quite a bit of work to do with it once I define all my units (defining units will prove to be the most challenging) The critical hit system is pretty confusing, I think I barely understand it myself. It's the only way I could think of getting to work with the systems warcraft already is using (armor class, armor tables) All weapons can get critical hits. In fact, damage will just represent the weight of the weapon plus the strength of the person swinging it. For example: A katana isnt that heavy, if someone just tried to chop you with it in the shoulder (without the slicing action) you would probably be ok, with a maybe a bruse. it would be a low damage weapon. But a katana is a three foot razor blade, so it would cut deep into your flesh causing a serious wound. So there are 4 types of attacks with an example of how it might work Blunt - these weapons are ususally heavy but they can only crush you not cut you so you wouldn't be cut and bleed to death. the critical hits arent as bad as the other weapons. you are going to get a good thump in or out of armor. Chop - sort of like the blunt weapons, but not as sharp as a katana. The critical hits are worse, but if you armor holds, the thump isnt as bad. Slice - can't cut though armor like steel armor, but when it does get though, you are in trouble (unless you are a skeleton and have no flesh) Pierce - accually wasn't sure what I was going to do with this one, kinda depends where hit. Was going to use the state of the unit (ensnared, sleeping) and move speed and other factors to decide the severity of the hit. I don't even know if this would create the type of gameplay I'm looking for, still experimenting... I'm just tring to create as many dimentions of gameplay as possible, without making it too complicated ( if thats possible :) ) Might scratch the whole critical hit system. Really i made this system with cleric in mind, he will use a blunt weapon, and has turn undead, so he would be great for killing undead. I think what I will make one more update thread (I think I got the classes and abilities decided still got to make them though) with a map posted with it, and let anyone play with it while I'm at school (might work on it on sundays, but thats it) |
