• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • ✅ The POLL for Hive's Texturing Contest #33 is OPEN! Vote for the TOP 3 SKINS! 🔗Click here to cast your vote!

Dungeon Keeper

Status
Not open for further replies.
Level 18
Joined
Sep 2, 2005
Messages
1,029
all arrays in warcraft 3 have a fixed length of 8192. Whether you only use 10 or not, if an array is defined, there's memory reserved to hold 8k values...
This I did not know. I guess I don't have to worry about it then.

So this confirms the fact that groundclaiming will turn a dirttile into one of the corresponding playertiles?
I can't see any other way to do it, so yeh.

I think this time you're overcomplicating...
The main reason we decided to add the whole grid system is that there would be too many units on the map. By using a grid, you could check if a unit has to be placed (because it's in sightrange) or not. The only times we'll be using the grid is when a dirttile collapses, so we can create surrounding tiles, so we don't stress the pc too much with massing units.
Thus, in fact the grid only needs to contain the following information: 0: digged; 1: any room; 2: dirt tile; 3: gold tile; 4: rock tile; ...
Because we only use the grid when tiles have to visually be created, all the algorithm needs to know is if something has to be created (case 2, 3 or 4) or not. Whenever a room is going to be build, all you need to check is if the tile on position of the constructing room indeed is a "claimed ground" tile (1 of the 16 textures, right?) So the grid doesn't need to know anything about what room is on what gridlocation. As you said, the actual rooms will be stored in different arrays, so...
the grid needs to be used for the placing of rooms, traps, etc, as well as the doodads that grow when you have a 3x3 room. When you sell a room, it needs to check to see if its a room tile or just claimed land, and do nothing if its just claimed land. if it IS a roomtile, you need to know WHICH type of room tile so you can get the price you get back for selling it. You also need to store which player owns it here so you don't try to 'claim' a room you already own.

storing the rooms in separate locations is for the pathing of creatures, so they can find it and so you dont have ot search the whole array. if you already have the coordinates, you don't have to do any searching, so using the tiles directly would be more quick.

plus whenever you change whats on a tile (like with destroy wall) you change the value of said tile as well.

maybe your way would work better and I'm just misunderstanding you. if so, please explain better. :)

Why? Warcraft 3 pathfinding algorithms will work fine, won't they?

if you build your dungeons with straight line hallways sure. I never do that though, and I imaging some other players don't either.

In DK1, about a week ago it said. "the lord of the land is approaching". it took him like 20 minutes to navigate my dungeon and he got lost like 6 times and ended up back outside it. :p eventually I dropped an imp in front of him so he'd follow it. My traps killed him by the time he got about 1/2 way to the heart. plus, there was only one way into the dungeon that actually lead to the heart, and you had to pass the lair, then the hatchery, then the training room ,then the library. My dungeon design kills keeper 1's pathing algorithms, even after the AI upgrade. I constantly get the "your creature is unable to get to their lair" message even though they aren't blocked. (they don't get angry cause they eventually find it) The question is, do we want my style of dungeon design to kill this pathing way too?, course when they DO manage to navigate my dungeon, they still attract ALL of my tough creatures before getting to the heart, without my intervention via pickup/drop

warcraft 3 pathing is designed for mostly open areas, not complicated networks of tunnels, thats why I think it might not work.
 
Level 18
Joined
Sep 2, 2005
Messages
1,029
Redmarine, Here's an Icon to use in your project table.
The project will just be called Keeper. Hence thats all thats on the logo.
Give me the bbcode to make that table please, my tables don't work right in bbcode, and im used to html tables.

Here's the digging idea other people proposed.

Ok the idea to lower terrain is smart. This is what I would do. When a player casts an ability at the place you want them to 'dig' the terrain would be lowered. (Not by one large deformation, but by a bunch of mini deformations to make a good almost flat bottom) Then create (invisible) units at the edges of the place which has been 'dug out'. This prevents units from moving over the edges. When a unit digs a location out, remove all walls in the 'dug out' location so the unit can walk through. Not only does this look good, its much smarter then a bunch of destructables.

what do you guys think?
 

Attachments

  • KeeperProjectLogo.png
    KeeperProjectLogo.png
    16.6 KB · Views: 22,252
Last edited:
Level 21
Joined
Aug 21, 2005
Messages
3,699
the grid needs to be used for the placing of rooms, traps, etc, as well as the doodads that grow when you have a 3x3 room. When you sell a room, it needs to check to see if its a room tile or just claimed land, and do nothing if its just claimed land. if it IS a roomtile, you need to know WHICH type of room tile so you can get the price you get back for selling it. You also need to store which player owns it here so you don't try to 'claim' a room you already own.
That's one of the reasons I prefer to use units for rooms... A sellspell would just require a building target and that's it...
I also think that on average, a player will not have more than 300 roombuildings. plus about 50 "props" to make a 3*3 room more attractive, and 50 creatures + imps, every player has, in a *long* game, 400 units, 350 of them not demanding much "attention" because buildings don't need to run pathfinding algorithms or acquisitionrange triggers. 400 units per player are doable I think. Otherwise, I guess we'll have to use a gridsystem...

if you build your dungeons with straight line hallways sure. I never do that though, and I imaging some other players don't either.

blabla

warcraft 3 pathing is designed for mostly open areas, not complicated networks of tunnels, thats why I think it might not work.
I think it'll work fine. Not sure, but I think it'll work :p

Ok the idea to lower terrain is smart. This is what I would do. When a player casts an ability at the place you want them to 'dig' the terrain would be lowered. (Not by one large deformation, but by a bunch of mini deformations to make a good almost flat bottom) Then create (invisible) units at the edges of the place which has been 'dug out'. This prevents units from moving over the edges. When a unit digs a location out, remove all walls in the 'dug out' location so the unit can walk through. Not only does this look good, its much smarter then a bunch of destructables.
In other words you need to find a clever way to "dig" *nothing physically* and whenever something is digged, create 2 or 3 invisible pathing blocking units? well, that'll really fix the problem of having 32k units... :/

EDIT: I think warcraft's pathfinding works fine. I tested it with a small farmmaze, and the footman always uses the shortest path to get to somewhere. Ok, the maze might not be the most complicated hallway dungeon ever seen, but it's definatelly more random and chaotic than how I would make my dungeon...
 

Attachments

  • idc.w3m
    19.4 KB · Views: 136
Level 10
Joined
Oct 2, 2005
Messages
398
I fixed the looping of your anims. I don't know that we'll use your things. The anims definitely need work, we were thinking more like a bunch of rocks caving in and then disappearing for a death anim instead of the block falling over. However, if we end up needing to save the space, using more geometrically symmetrical rocks could end up saving space. We definitely need new animations though. I gather you're good at making things have animations then? if you can make it into 1 model with 32 stand animations and one death and that's it, it would be awesome. (1 for dirt, gold, impenetrable rock, gems, 1 for their selecteds, 1 for each of 12 teams, 1 for each of their selecteds) that would be awesome. The only death animations we need are the ones for dirt and gold, as ot destroy a fortified wall you have to unfortify it first (which makes it into regular dirt)

Maybe I'll try to convert mine into using in game textures. If you could do the animation thing with my dirt chunks too that would be awesome and I'd be grateful. I can set the animations to not loop when necessary, thats easy.
Man I would like to join you, but I don't have the time, and the experience with JASS and this stuff, and you are already so involved, I think I won't be able to help you with the little I know, but I have art abilities, I can do scenery models (hardly creature ones), but I can't do much. I can try doing it. Anyway, I don't think the dirt and gold blocks need to be 1 for each of 12 teams, the only things that use teamcolor are the claimed walls.
I used these textures because they are in-game textures and won't increase the game size, and I don't think it's a good idea to change anything in the textures, maybe I can do just another texture layer to the gold and crystal to save even more space. With symmetrical ou mean that I need to unwrap the same texture crop for every face? would this reduce lag?I don't think so and I don't like doing crappy mirrorred things, so I give you what I do, if you like you use it, if you don't, I won't be offended at all :p.... My walls are inspired in DK2, I have never played the 1. But explain yourself well about what exactly you want, and ask me. I am going out wednesday night to come back sunday so don't expect me to do them quickly...sorry.
 
Level 18
Joined
Sep 2, 2005
Messages
1,029
If you wanna work on a spell system that mimics Dungeon Keeper 1's spells as close as you can that would be awesome. My essays/assignments/exams are killing me. Last day of class is next thurs and all my assignments need to be handed in for monday so hopefully next week I can get back to modding.

there are 16 spells, all are located Here. We need a way to access all 16 at once if possible, and if there is a way to do it without having a specific unit selected that's even better. maybe using dummy casters or something.

I want to do the grid and grid generation myself, it was an Idea I came up with, and alot of the other stuff we need done really relies on that, so blah there. Umm. if you're good with sound, you could work on converting the sound clips we need to tiny mp3s and then using that program to put fake wav headers at the top so we can use them in wc3.

If you have a suggestion on another way to help with jass tell me. Otherwise we probably won't ned much more help for about a week.

Oh I have an Idea. You could build a tile building system. Essentially it would change the ground tile based on thich tile it currently is in that location. it costs gold, and doodads would spawn in some of the rooms based on if there is 1 square of empty tile surrounding it.
 
If I study Toadcop's inventory system, I bet I could probably allow you to popup a screen that has them all castable like this (see link below) or there is always spellbooks...
http://wc3campaigns.net/showthread.php?t=91163

I'm not positive, but I might be able to create a work around. Might eat a few kbs but I'll try to optimize it best I can. And yeah, stuff like exams etc. kill my time. x(
 
Level 18
Joined
Sep 2, 2005
Messages
1,029
Well its something we need Somebody to do. If you manage the time, or Purge andFire Manages the time then they'e in. If the other one of you manages it, then the other one can work on something else, perhaps the room building system (which will need the same menu system, as building things will be done via spells.)
 
Yes, there will be a button. Though, I think the only way would to be either to take an inventory slot or an ability slot. :( Or you can always just have them press ESC...

But yeah... I think I'm too lazy atm, maybe when I am not. But Des can look at this probably, it might take a while to code because it requires a lot of configuration etc.:
http://zibada.xgm.ru/fsgui/downloads.php

I'll see if I can make it not fullscreen. I'm not sure though.
 
Level 18
Joined
Sep 2, 2005
Messages
1,029
Man I would like to join you, but I don't have the time, and the experience with JASS and this stuff, and you are already so involved, I think I won't be able to help you with the little I know, but I have art abilities, I can do scenery models (hardly creature ones), but I can't do much. I can try doing it. Anyway, I don't think the dirt and gold blocks need to be 1 for each of 12 teams, the only things that use teamcolor are the claimed walls.
I used these textures because they are in-game textures and won't increase the game size, and I don't think it's a good idea to change anything in the textures, maybe I can do just another texture layer to the gold and crystal to save even more space. With symmetrical ou mean that I need to unwrap the same texture crop for every face? would this reduce lag?I don't think so and I don't like doing crappy mirrorred things, so I give you what I do, if you like you use it, if you don't, I won't be offended at all :p.... My walls are inspired in DK2, I have never played the 1. But explain yourself well about what exactly you want, and ask me. I am going out wednesday night to come back sunday so don't expect me to do them quickly...sorry.

Sorry I missed this post.

The claimed walls need teamcolor, and we need a way to do selected walls. since we havent yet found a way to make the wall appear different to only ONE player, when you select the wall it gets teamcolored so you can tell its selected. otherwise you wouldnt know if you selected it or someone else (well I dont know a system to change the model only locally)

And what I meant is your walls are perfectly smooth, whereas the walls we're using now looks more like rough dirt.
And I'm back/working on the grid system now.

I have newgen and can't get constants to work.

and my grid will need reqorking, cause the size of the dirt/rock chunks is going to need to be matched up with the size of a groundtile.
 
Last edited:
Level 7
Joined
Mar 12, 2008
Messages
203
Is there a possession system made? Im not good with JASS But Im good with triggers. I cant wait for this project to be made. Though, for the wall destructibles, I am not sure how thats going to work, unless a custom wall model is made.
 
Level 18
Joined
Sep 2, 2005
Messages
1,029
Is there a possession system made? Im not good with JASS But Im good with triggers. I cant wait for this project to be made. Though, for the wall destructibles, I am not sure how thats going to work, unless a custom wall model is made.

we have a custom wall model. but it has a crappy death anim, so the model will need to be replaced or fixed later.

we don't have any of the spells done. we're working on the engine for the rest first.

and although funny, your avatar disturbs me...
 
Level 18
Joined
Sep 2, 2005
Messages
1,029
We will probably need this system for possession:
http://www.hiveworkshop.com/forums/showthread.php?t=65369

that is not a good idea for this map. you need rtc installed. which means the map cant be played on bnet.

likely a followcam+disabling pickub and locking that unit to select is a much better idea.

--------------------------------------------------------------------------
EDIT: I wrote the scripts to access the grid, and the scripts to convert locations to grid locations, and vice versa, as well as get the gridlocation of a unit (to get the gridlocation of a wall in case we need it.)

There are no generation scripts, cause first I need to figure out constants, an issue I haven't gotten yet in WC3. Are there constants, or do I need functions that will just always return the same values?

I assumed a grid of 180x180blocks with each wall block being 128x128.

So now when I get constants working, I will make it so upon the death of a wall, it checks its location&old value (doublechecking) then sets its value to dirt floor, checks the value of every square within a 2 square radius to make sure it has the right tile type, and if not, creates the appropriate tile where it should be. That way, we can generate starting points, then have it auto generate the 2 blocks around each starting point, as well as gold/gems/impenetrable rock. it would save alot of ram.
 

Attachments

  • MapGenerator+Digging.w3x
    533.8 KB · Views: 96
Last edited:
Level 5
Joined
Apr 2, 2007
Messages
184
The objective is probably the same as in the real game: Kill all opponents by destroying their dungeon heart.

btw is this projekt dead? I hope not but there doesn't seem to have been any activity here for some time.
 
Level 18
Joined
Sep 2, 2005
Messages
1,029
went through exams, then gf broke up with me, then i moved into a new apartment.

had alot of random real life shit that has presently kept me from working on my wc3 stuff.

plus, I'm taking nightcourses starting tomorrow, and i have to sew my cosplay for anime north.

im busy right now and having crappy stuff going on.

on top of that, my loans are late so im late on my rent for the new place and dont have money for groceries so im eating canned everything until i get my damn money.

basically im 100% bleh at the moment.
 
Level 18
Joined
Sep 2, 2005
Messages
1,029
What can I help with now? As far as I know we've completed the tile creator and sounds. Just give me a task and I'll try to do my best competing it.

ive gotten the sounds, there's nothing to implement them yet.

we need a system for building rooms.

and I thinkg I still have some work to do on tile creation, all I've done is make the array, and commands to deal with the array.ive had crazy shit going on. maybe ill get to work on it today or tomorrow.we need a spell system but thats complicated.

you could start designing individual spells.

or setting up the unit stats.

perhaps you could help me with one of the things I need for the tile system.

I need random position scripts to randomize the start positions. and then build dungeon hearts, 4 imps, and surround the hearts with walls. but you need to use positions from my grid functions so everything lines up. if you want to work on that thats what I need. then I can work on the script to generate dirt walls where necessary when a wall is destroyed. (to solve our ram hogging issues we should only put walls about 2 thick.
 
Level 2
Joined
Sep 19, 2006
Messages
17
I'm not sure exactly how much you have worked out (briefly looked over Page 1)... nor do I have a complete grasp of DK1, but in DK2 the Imp AI works something like this (more important orders are at the top of the list):

Defend Dungeon Heart
- If an enemy attacks the Heart, the Imps will bum-rush the enemy.
- If allied creatures are on owned territory, but do not hear the "alarm" for the Dungeon Heart, the Imps (I've never seen more than 3 run off) will go tell them about the trouble.
Run Away
- If an Imp about to be attacked, it will run away about 7-10 tiles before this "task" ends. This condition is ignored if the attacking enemy is another Imp.
- If an Imp is at 50% health, it will flee back to the Dungeon Heart (or up to 30 tiles).
Dig (Gold Seam/Gem Vein)
- Up to 3 Imps per tile. If multiple tiles are tagged, the Imps spread out if possible.
Dig (Normal Rock)
- Again, 3 Imps per tile.
Attack Enemy Imp
- As long as the enemy Imp is either; Nearby (About 3-5 tiles away); or capturing your territory.
Capture Territory
- Goes hand in hand with unclaimed tiles or enemy territory.
- Each room has a different worth to the Imps, but unless two rooms are the same distance away, the Imp favors the closest.
- Rooms always favored over open tiles... again, only if equal distance.
- One Imp per tile. Your territory MUST be adjacent to the tile the Imp is claiming.
Repair Dungeon Walls
- Only if Imps have nothing better to do (i.e. Idle), they will run to repair your Reinforced Walls that enemy Imps or Dwarves are attacking.
- Up to 3 Imps can work together to repair a section of wall.
- 3 Imps repairing cannot "overpower" 3 Imps destroying. Thus a section under attack will eventually fall (about 60 seconds if both sides start their tasks at the same time, normally 30 seconds in practice due to the delay of Imps reaching the wall to start repairs).
Reinforce Walls
- If Imps have NO other tasks (Idle) and walls are not being tore apart by enemies Imps will run around and reinforce walls, thereby making the tile stronger and considered claimed by your team, and therefore producing mana.


Due to Imps favoring attacking other Imps, there can be stalemates in passages where two player territories meet if no creatures arrive to chase Imps off..
 
Level 18
Joined
Sep 2, 2005
Messages
1,029
Alright. My test map keeps crashing now, and I can't figure out why. It worked when I tested it before I did a format reinstall. I'm very frustrated with this at the moment, so unless someone else can figure out whats wrong with my test map, (and if they can do map generation based on it then I would be ecstatic because its making me angry doing it), then im going to divert my attention to ent seed first. and come back to this again in like a week or two. maybe i should finish it first then come back to this, what do you all think? If I'm not gonna be stuck working on this by myself then by all means I am willing to do this now, but im fed up with the map generation and I would like another jasser to help me with this particular bit.
 
Level 18
Joined
Sep 2, 2005
Messages
1,029
Hey hermit, I appreciate the compliment, but it's not really a new genre of game, its just not a standard warcraft genre. As I said in the initial post it's based on an awesome strategy game that's old, and I think the company no longer exists.

It's a Tunneler genre game with claimed terrain and Unit placement instead of direct commands. There's a name for the genre. Or people can just call the genre Keeper if theyre referring to all three combined.

and Will do on EntSeed. I'll finish that first, then come back here.

It's definitely the easier of the two projects.
 
Status
Not open for further replies.
Top