• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Dungeon Keeper

Status
Not open for further replies.
Level 8
Joined
Dec 10, 2006
Messages
544
Some answers on darkenneko's questions:
1) How do you mean? Like bile demons being attracted to much food, salamanders attracted to lava near your lair and trolls attracted to large workshops? Probably, yes.
2) No idea. Doors are probable to be in the game, yes, but it's not one of my priorities at the moment. Perhaps an alpha version won't include doors at all.
3) XP system: undetermined: for now, probably the default XP system. Minions fight and gain xp on each kill.
4) This is still not set in stone, and the "staff" is discussing it :)
5) See question 2. I'd love to, but right now we're still too busy with getting the core mechanics of DK to work in warcraft.

I'm starting to question too how horny was summoned in DK2. anyway, I think it's most probable that the main way to summon him is by sacrificing creatures in the temple, like in the oldschool way :)

1. Nuh, Like, I Mean Grubb, Bzzzt, Knud, Furnace, Almeric, Zenobia, Bloz, Gervaise, Dominique, Bane, Kaleb, Kessler Van Doom, and Zachariah,
They were included in patch 1.61, But had a bug that was fixed in 1.7,
They had Diffrent Models you could have a max of 3 at a time, 1 of Each type of creature,
They were attracted by making "special" rooms that had no meaning, such as to attract Grubb the Goblin Elite, you would have a 3x3 room, a hatchery in each corner, than the rest would be lair.

See This Link for more Detail. http://www.gamefaqs.com/computer/doswin/file/176198/6257

2.Its okay, =]
I never found doors much to my liking anyways. xD

3.Well, you could classify every monster as a hero, but also enable that one option that they don't appear in the top left, I have to go find that.

4. Come on!... You Know you wanna. ^_~

5.Understandable, after you get those down, the rest should come with ease. =]

Its a Project worth dying for, Such as a DKIII Would be. xD
Keep Working on it! =D I Can't wait to see the results. =]
 
Level 21
Joined
Aug 21, 2005
Messages
3,699
3.Well, you could classify every monster as a hero, but also enable that one option that they don't appear in the top left, I have to go find that.
Every monster will indeed be a hero without the icon display. I thought you were talking about imps gaining XP from mining, etc...

1. Nuh, Like, I Mean Grubb, Bzzzt, Knud, Furnace, Almeric, Zenobia, Bloz, Gervaise, Dominique, Bane, Kaleb, Kessler Van Doom, and Zachariah,
I never patched :)
Well, I think this definatelly is not a priority. Doors / torturing / other mechanics would need to be done first.
 
Level 17
Joined
Sep 2, 2005
Messages
1,029
Basically I think we should just make the map playable first and then add more features like horny perhaps.
-Map Generator.
-Digging System.
-AI for imps to dig and return.
-Picking units
-Add a few basic warrior units like the Goblin in Dungeon Keeper 2.
-Portals auto generate units.
Redmarine has the right Idea. we need a system of basic mechanics before complex but nifty extras

Right now, I'm planning to make dirt / gold both bebris (so it can be targetted by the heart) and gold targetted as "tree", so it can be harvested by imps.
The way I see an IMP AI is like this:
Every imp has a corresponding "last order" value, which stores its last order. If this was "return gold", then I check if he is still carrying gold. If he's not, then he's given the order to "dig".
When a unit has the dig order, he looks at the closest undigged marked wall, then harvests it if it's gold or attacks it if it's dirt.
units are easily manipulatable, and don't give many problems. A custom harvesting system is required though. They're marked by simply selecting them, aka left clicking on them. Large burden on your pc, so your 2 dimensional array system is probably not a luxury.
destructables aren't easily manipulatable, and do give problems, which I need to solve in one or another way. The default "peasant" harvest system can be used. Marking requires the selection of the heart and is done by rightclicking them. Might work just fine when they're massed (32k destructables)
Again, please tell me which you prefer.
Oh, and one small thing: as long as there's no "marked" animation on the destructable, there will be no way to see if a destructable is marked or not.
In other words: if we're going for the destructable way (probably the best for your memory anyway), we'll NEED an additional animation on the model asap.

If you go destructibles, make both dirt AND gold like trees, and have neither gilve any materials for their trouble. I'd prefer if you didn't make imps "harvest" gold. The gold should drop as the dirt is being harvested/damaged. cause if your treasure room is full, the imps leave the gold on the ground where it is and keep digging. And you can pick it up and move it yourself. Oh, we're gonna need a couple models that are just piles of gold. Or one model with a few anims.

If you make them units, that's fine with me too. I think units may actually be a better Idea, assuming we aren't loading 32400 at once. Just base it on a unit that doesn't do much. mayhaps a guard tower, or a moon well.

The map generation sounds quite clever, so feel free to do it. You'll need a bugless system though... But I'm wondering now: gold/dirt = units or destructables? To sum up the differences:
I don't have time to work on Keeper or EntSeed till some time next week. 12 page essay+2 art projects. I'll check the forums here and see what you guys are up to but I can't actually "work" on it. If you guys like my tile concept I'll design it after though. I also need to pay some more attention o EntSeed cause I haven't done as much work on it since starting Keeper.

Darkenneko:
1.Will you Include Unique Special Units featured in DKII received by building rooms in a special way? See This Link for more Detail. http://www.gamefaqs.com/computer/doswin/file/176198/6257
Eleandor:
Well, I think this definatelly is not a priority. Doors / torturing / other mechanics would need to be done first.
I had no idea such a thing was in Keeper 2 as I didn't kep it long enough to find out, but I already was talking about doing something similar. Only you would only ever get 1, it would be based on your whole dungeon design, and it would be like a Hero. it would get much stronger than regular units, and you could select it without picking it up and use it like a wc3 unit.

Darkenneko:
2.How will you get doors to work the way they do?
Eleandor:
2) No idea. Doors are probable to be in the game, yes, but it's not one of my priorities at the moment. Perhaps an alpha version won't include doors at all.
Darkenneko:
2.Its okay, =]
I never found doors much to my liking anyways. xD
I consider doors to be a necessity but I have no idea how we would implement them. Also, we have more important things to work on at the moment. But I don't intend to release a map without doors unless they actually cannot be done in wc3.

Darkenneko:
3.EXP system for Minions? [Could use some kinda Integer system]
Eleandor:
3) XP system: undetermined: for now, probably the default XP system. Minions fight and gain xp on each kill.
Darkenneko:
3.Well, you could classify every monster as a hero, but also enable that one option that they don't appear in the top left, I have to go find that.
Eleandor:
Every monster will indeed be a hero without the icon display. I thought you were talking about imps gaining XP from mining, etc...
This has already been tried a couple times and tested, from when I was making units scale as they level. Works great. You don't have the notifications pop up when they level either.

Darkenneko:
4.A Combat pit, I Don't care what you say, You need a Combat pit, =]
Eleandor:
4) This is still not set in stone, and the "staff" is discussing it :)
Darkenneko:
4. Come on!... You Know you wanna. ^_~
I'm a DK player, not a DK2 player, so I don't know much about DK2 beyond that I didn't like some of the differences right off the bat and then sortof lost interest. I'd like to give it another chance, but I'm at university and they throttle the bandwidth on torrent downloads, and I know you can't buy the game anywhere cause bullfrog isn't a company now. I don't mind the combat pit, but I don't like the idea of HAVING to train your units there after level 5. I think it should be an option AS well as the training room. I intend to avoid the casino at all costs, as its goofy and doesn't fit into a dungeon in any way.

Darkenneko:
5."Convincing" the enemy to join your cause in the torture chamber.
Eleandor:
5) See question 2. I'd love to, but right now we're still too busy with getting the core mechanics of DK to work in warcraft.
See the door comment. Important, but not what we need to work on right now. Definitely needs to be finished prior to release though.

5.Understandable, after you get those down, the rest should come with ease. =]
One would hope. We shall see.

I'm starting to question too how horny was summoned in DK2. anyway, I think it's most probable that the main way to summon him is by sacrificing creatures in the temple, like in the oldschool way :)
I fully intend to include Horned Reapers ala DK1. Sacrifice only.

Its a Project worth dying for, Such as a DKIII Would be. xD
Keep Working on it! =D I Can't wait to see the results. =]
I appreciate the flattery. You can be productive if you want to help, just tell me what you can do vis a vis warcraft III modding.


I never patched :)
And I play DK1, so my concept is largely based on Keeper 1. I'm ahainst using an overall Mana Pool like in DK2, for example, and I don't like the idea of reinforced walls not being impenetrable. That's right they would be invincible unless you cast destroy wall on them.

Thinking about it, I have no Idea how we will have a persistant menu to cast spells and build rooms. That's gonna need some work I imagine. :/

I have just decided something. There is a non-Keeper style thing I want. I want NightGoblins and Squigs. From Warhammer. I'm aware that odds are I would have to make the models. Frankly that doesn't matter. I want them.
squigherder09.jpg

You would have to be criminally insane to be willing to go close enough to a squig's mouth to pierce its septum. I imagine these 2 as a hero, like a Rexxar type dude.
go_NightGoblinShaman_qjpreviewth.jpg

Squig%20Herd%202.jpg
 
Last edited:
Level 8
Joined
Dec 10, 2006
Messages
544
Thank you Guys for all your response. =]

1.Yes, the unique units were quite a bit stronger, and had small differences in there models [Dark Angel was cool] But from that, theres nothing much else.

2.I Didn't much like the idea of them trainning in there either, I LOVE The idea of taking prisoners, putting them in there, and watching them fight. =]

Maybe after its all said and done, you will have a chance to add your own features/monsters/ect.

I've gotten my DKII to work perfectly [Patched and everything] on my XP computer.
I've even got the Official DKII editor which is a very powerful tool, But thats off subject,
I'm really, really looking forward to this project being completed. =]
Productive... Hmm...
I can Do HTML for a website, I'm quite alright with Photoshop for graphical designs,
I consider myself quite comfertable with GUI and Integers and I'm a bit creative if I Must say. =]
 
Level 17
Joined
Sep 2, 2005
Messages
1,029
1.Yes, the unique units were quite a bit stronger, and had small differences in there models [Dark Angel was cool] But from that, theres nothing much else.
I would make them much more than stronger units which look slightly different. They would definitely have fully developed hero abilities.

2.I Didn't much like the idea of them training in there either, I LOVE The idea of taking prisoners, putting them in there, and watching them fight. =]
We'll see.

Maybe after its all said and done, you will have a chance to add your own features/monsters/ect.
I fully intend to.

I've gotten my DKII to work perfectly [Patched and everything] on my XP computer. I've even got the Official DKII editor which is a very powerful tool, But thats off subject, I'm really, really looking forward to this project being completed. =]
I'll have to talk to you about your keeper 2 in may. :evil:

Productive... Hmm...
I can Do HTML for a website, I'm quite alright with Photoshop for graphical designs,
Can you do CSS and Javascript? Css is the important one, javascript is just incredibly helpful for menus.

I consider myself quite comfertable with GUI and Integers and I'm a bit creative if I Must say. =]
Marine does it all in Gui. Me and Eleandor work in Jass. In the finished version all of the gui stuff will likely need to be converted to jass and optimized, but that shouldn't be too hard.

What mechanic do you think you'd like to work on? Alot of stuff won't be possible to work on until I finish the Tile System, as that's how building tiles will need to work, how placing workshop stuff and such will work.

You could work on spells maybe? or figure out how to do the menu for spells (would likely require research) As we're not going to give the spells to a hero if we can help it. There are too many.

attachment.php


if for a ui we could get something like this It would be absolutely fantastic. It's just the menu on the left that I don't know how (or if) we could do.
 

Attachments

  • Custom UI Idea..jpg
    Custom UI Idea..jpg
    640.7 KB · Views: 2,762
Level 21
Joined
Aug 21, 2005
Messages
3,699
I think that's unlikely to happen, cause I don't know if that's possible in the first place.

In case it isn't possible, which I assume, I guess we'll go for the spellbook approach? Have different abilities in the heart (select, open buildings, open spellbook, open creaturelist) that open a new list of abilities...

Event messages (you know, the "new creature", "new spell", "payday", "fight" messages) can be done by adding heroicons on your left. Clicking on them would *select* the corresponding hero, and whenever that's done, a dialog box pops up showing a message...

I think I'm finally going to choose for the *unit* dirt approach, simply because there are less workarounds required. In the AI I'll include a system that makes imps gather gold as if they're warcraft workers, having them return the gold when they can't carry any more gold. If the treasury rooms are filled, the imps will drop the gold on the nearest tile. To prevent lag, you'll probably need to make the system you proposed.

Something about the hand system: to make this look cool, every unit (since we're most likely going to use custom models in the end anyway) should have a "drop" animation, making them fall out of the sky. But that would be eyecandy to be done by a good modeller/animator :)

Something else: I'm still quite fond of the mana system introduced in DK2... meh :)
 
Level 8
Joined
Dec 10, 2006
Messages
544
Lmao, xD
Kay, in May it is, It is still a perfect game, and theres nothing to dislike about it! =D

Javascript I have quite a bit of experience in, and I'm currently studying CSS.
[Cascading Style Sheets =] ]

I'd feel obligated doing anything that would help you guys with anything.
=]

-Calvin
 
Level 17
Joined
Sep 2, 2005
Messages
1,029
I think that's unlikely to happen, cause I don't know if that's possible in the first place.

In case it isn't possible, which I assume, I guess we'll go for the spellbook approach? Have different abilities in the heart (select, open buildings, open spellbook, open creaturelist) that open a new list of abilities...
Yeah, that's the only other option. I'd still prefer buttons though.
Event messages (you know, the "new creature", "new spell", "payday", "fight" messages) can be done by adding heroicons on your left. Clicking on them would *select* the corresponding hero, and whenever that's done, a dialog box pops up showing a message...
I don't think the icons are necessary are they? I mean can't we just have text pop up along with paying the sound? "Pay Day" "You need a bigger treasure room!" "You Can't afford to train units"
I think I'm finally going to choose for the *unit* dirt approach, simply because there are less workarounds required. In the AI I'll include a system that makes imps gather gold as if they're warcraft workers, having them return the gold when they can't carry any more gold. If the treasury rooms are filled, the imps will drop the gold on the nearest tile. To prevent lag, you'll probably need to make the system you proposed.
I know I'll need to make the tile system. I'd prefer if you make the gold drop on the ground. (creating a "Gold") unit, that just stores the quantity of gold it has. Then make the imps collect gold they see on the ground? They pick up gold on the ground, then dig, and keep repeating until they're full up. It just seems more true to the original to me.
Something about the hand system: to make this look cool, every unit (since we're most likely going to use custom models in the end anyway) should have a "drop" animation, making them fall out of the sky. But that would be eyecandy to be done by a good modeller/animator :)
Although this would be cool, I'm not an animator. I can do model edits that are pretty good, and I can do skins. I can move the bones to make the model not mess up, etc, but I can't make new animations... Not something I've learned how to do.
Something else: I'm still quite fond of the mana system introduced in DK2... meh :)
We can always include different 'play modes' once it's done, which would just toggle various options, like have a "Classic", "Second", "Next Gen" where classic makes it just what was in DK1, Second is just DK2, and Next Gen has our extra stuff we added and is neither 1 nor 2 perfectly.
I'm pretty good at designing with doodads and stuff need help with that?
You wanna redo our gold by giving it a death animation of crumbling rocks? or give it a select animation? Maybe a bunch of different piles of gold, with drop animations if possible.
Lmao, xD
Kay, in May it is, It is still a perfect game, and theres nothing to dislike about it! =D
Maybe May, maybe a bit later. May would be good though. April I have exams, and in the beginning of may I start my intersession courses.
Javascript I have quite a bit of experience in, and I'm currently studying CSS.
[Cascading Style Sheets =] ]
I'd feel obligated doing anything that would help you guys with anything.
=]
-Calvin
How about coming up with a bit of a prelim site layout and I'll give suggestions. Alot of the information that will need to go on the site doesn't exist yet, as we're still working on the engine and don't have the specifics of units and spells worked out. This would make a cool ass AoS if we could adapt it right, but one thing at a time.

-------------------------------------
I've ripped all the audio from keeper but the music, which wouldn't extract, I think my music file is corrupt/damaged on disc. Anyways - they're all in wav format, we don't need all of them, and they total 30 mb. I'm betting with mp3 compression I can get that down to about 3 mb, and we don't need all the sounds, so we might be able to get away with what we need for 1 mb. We shall see. Obviously the rest of the game is more important than the sound, so we shall fit in as much sound as we can and save as much space as we can.
 
Last edited:
Level 19
Joined
Sep 4, 2007
Messages
2,826
I'm strongly against adding new content to the map but if it will be in the so called "New Gen" version then it is OK with me.
I like the mode selection where you can choose between the games although I would prefer Dungeon Keeper 2.
Heh... What shall I do now?
Off-Topic
Darkenneko_003, how did you get the Dungeon Keeper 2 Editor? I want it too!
 
Level 8
Joined
Dec 10, 2006
Messages
544
Redmarine
http://dk2editor.gameroom.com/index.html
Have Fun, remember, you can Edit Practically everything with it,

Everyone, about the mana system in DKII,
You gained/loss mana per second, You gained mana Per-Captured territories you had, you lost per second by how many imps you owned. Theres other way to lose mana, but I'm sure you know them. xD

Hmm...
I'll contribute all I can for this project, and Since I still and currently play DKII,
I can help point things out that came from DKII, About the site, Don't worry about information, people should know about DKII and know what its about. xD
Now I gotta make all the graphical parts. >_<
 
Level 19
Joined
Sep 4, 2007
Messages
2,826
Crap... I can't patch my game because it is cracked... That was th only way I could get hold on it... Hm... Do you have the disc? Perhaps you could upload all the files within the disk so I can download it and burn it?

Perhaps the site could have a Dungeon Keeper 2 theme?
 
Level 8
Joined
Dec 10, 2006
Messages
544
Lmao, xD
Thats the plan. =]

Hmm... What do you mean Cracked? Did you download it off of Bittorrent?
If so, go to main menu and look at the version number, it just might be 1.7, One of my friends downloaded one and it was already 1.7,
But Yea, I DO have the CD, I don't know where it is tho, I made a Emulated copy. xD
 
Level 19
Joined
Sep 4, 2007
Messages
2,826
I personally like the Idea of adding some new stuff, and some of the old stuff I REALLY dont want in. Like The Casino. If I were to go for "accurate replica", I'd want it to be dk1. I'm cool with a hybrid of the 2 and extra stuff.

I've never tried Dungeon Keeper 1 so I don't know much about the gameplay.

Darkenneko_003, I've tried but it says the game isn't installed... The crack ruins it.

Personally I loved the casino! Because of the Jackpot winners. :D
 
Level 21
Joined
Aug 21, 2005
Messages
3,699
I personally like the Idea of adding some new stuff, and some of the old stuff I REALLY dont want in. Like The Casino. If I were to go for "accurate replica", I'd want it to be dk1. I'm cool with a hybrid of the 2 and extra stuff.

Let's stick to things in DK1 only for now. Later, as you proposed, we can add other modes such as DK2 mode or custom mode with additional content.
 
Level 17
Joined
Sep 2, 2005
Messages
1,029
I'll ask someone to make these into icons.

imp3.gif
fly3.gif
beetle3.gif
spider3.gif
hellhound3.gif

troll3.gif
orc3.gif
skeleton3.gif
ghost3.gif
demon-spawn3.gif

bile-demon3.gif
warlock3.gif
dark-mistress3.gif
dragon3.gif
vampire3.gif

horned-reaper3.gif
,

Don't worry about them. Use substitutes. I'll make icons from the new 3d models. It will work better.

Also, I started on the units (which happer to be heroes) like a week ago. That's why you guys saw the bile demon model i'm doing.

I've already got the units like half done.

Basically we're stalled, as there isn't much we can do at the moment until after the grid system works. Unless you want to program the AI of how the Units interact with eachother, program a room building system, or make the spells.

Also, I'm not sure all the units need to look like they do in Keeper.

Imp:New - Based on Kobold Maybe?
Fly:Not Sure
Beetle:Not Sure
Spider:Not Sure
Hellhound:Wc3
Troll:Not Sure
Orc:Wc3
Skeleton:Wc3
Ghost:Wc3Wisp
Demon Spawn:New? Not Sure?
Bile Demon:New. - Almost Done (Abomination)
Warlock:New, based on Necromancer.
Dark Misress:New. - Completed
Dragon:Wc3 or new. (should walk)
Vampire:Not Sure
Horned Reaper:New - Maybe Based on Hellscream?
 
Last edited:
Level 17
Joined
Sep 2, 2005
Messages
1,029
kk :) I was just about to make the icons oh well. Everything should probably look like Dungeon Keeper as much as possible.

Actually, if there's a wc3 unit that's CLOSE to what we need, we really need to use it. Cause between the imports (sound AND units) and the map we only get 4 megs of space, or you can't play multiplayer. That's the max map size on battle.net.

So.

Terrain+Triggers+Unit Data+Spells+Sounds(which take up alot of room)+Graphics <= 4MB

Making a multiplayer map is like a giant space saving competition.
 
Level 21
Joined
Aug 21, 2005
Messages
3,699
wall of text alert...

Those icons need less work, only need to be converted to .blp, and they look cool and close to the game.

An estimation on the mapsize:
Terrain+Triggers+Unit Data+Spells < 0,5 Mb.
Sounds ~1Mb
Buffer ~0,5 Mb (you never know)
Sum = 2Mb, which leaves 2Mb open for models/textures. If the project itself is finished, we can try to get some top-notch modellers/animators/texturers to make us good models.

Those 2Mb have to be spend on:
Imp: New model, new texture (100 Kb + 100 Kb)
Fly: New model, texture is optional if no good in-game one is seen (50Kb on model)
Beetle: Can easily use crypt lord's beetles.
Spider: Can easily use warcraft spider.
Hellhound: New model (based on fellhound), no new texture (100Kb)
Troll: New model, new texture (100kb + 100 kb)
Orc: Can easily use grunt.
Skeleton: Can easily use skeleton
Ghost: I forgot how this looks like, but I guess we can use wisp.
Demon Spawn: New Model, New Texture (100kb + 100kb)
Bile Demon: New Model, New Texture (100kb + 150 kb)
Warlock: Model based on archmage? Example. The portrait of that model probably won't be needed to import, which means this model + texture = 200kb, uncompressed.
Dark Mistress: New. - Completed. don't know size
Dragon: New Model, New Texture (100kb + 150 kb)
Vampire: New Model, in-game texture (100kb)
Horned Reaper: New Model, New Texture (100kb, 150kb)
Dirt/Gold/rock/gem: 100kb per block - custom model/texture

The sum is about 2200 Kb, uncompressed. With compression + MPQ compression (in the map), I think we certainly can bring this down to 1,5 Mb.

Some updates:
* My hand system is still considered finished.
* The digging system is still in a "concept" phase, because I don't know how I'll do gold digging. Personally I think I'm gonna go for harvest + return if the treasury is not filled, or drop if the treasury is full. I think that's also what comes closest to the actual game.
Until an early IMP script is written (I'll probably be doing this too, I guess...), I won't really be able to test the digging stuff either, but I'm quite confident that this time I'll have everything right.
* Dimensional array: I made a system so you can use 2 dimensional arrays. In them an integer (the unit-id) is stored of a block. For instance 'Gold' for a block of gold. When this value is <= 0, it means that the block has been generated on the map (or there was no block at all). Whenever a block (with coordinates x, y) dies, every block surrounding it (with coordinates from x-1, y-1 to x+1, y+1) is created if the value is not 0.
This currently doesn't really *work* because the array is initialised with 0's, and should instead be initialised with the unit id's at map generation. But I hope someone else is going to take care of the map generation system.
The system should be expanded so blocks are generated when the "far sight" ability (forgot the name of the spell) is used on a point (I can easily do this, but won't do it until we're about to implement spells).
The system should also be expanded so negative numbers (-1, -2) indicate lava / water.
Currently, all I have is the code, which I won't really be able to test until someone writes a map generation script.

How the map generation should work:
loop through every grid "point", and initialise it with a number. 0 if the room is empty, the unit id when it's not. Try to generate things in clusters, such as a cluster of connected "empty" rooms, so it actually looks like a cave, or a cluster of connected goldtiles.

The grid currently looks like this:
.....|......|.......|......|......|....
0,5 | 1,5 | 2,5 | 3,5 | 4,5 |....
0,4 | 1,4 | 2,4 | 3,4 | 4,4 |....
0,3 | 1,3 | 2,3 | 3,3 | 4,3 |....
0,2 | 1,2 | 2,2 | 3,2 | 4,2 |....
0,1 | 1,1 | 2,1 | 3,1 | 4,1 |....
0,0 | 1,0 | 2,0 | 3,0 | 4,0 |....

with BLOCKSCALE = scale of 1 (dirt, gold, ...) block = 192.0 for my units, 128.0 for redmarine's units
with maximum x = (dimension x of the map (180) * 128) / BLOCKSCALE
with maximum y = (dimension y of the map (180) * 128) / BLOCKSCALE

setting the blockvalue at position 0,0 would go like this: SetArray(0,0, value) The compiler probably won't recognise the function, so for now, put this script into your mapheader:
JASS:
function SetArray takes integer x, integer y, integer new returns nothing
endfunction

function GetArray takes integer x, integer y returns integer
    return 0
endfunction
I'll merge the real function with the map generation myself.

After setting all values, there are still no walls on the map at all, thus you need to create the required walls on the indices AROUND the 0 (index ranges from x-1, y-1 to x+1, y+1), and set the corresponding values of the walls you just made to -1 (with the SetArray(x, y, -1) function).

* Something on the way I see AI handeled:
There's a list of orders:
JASS:
    constant integer ORDER_NONE = 0 // Default order: imp is doing nothing of interest.
    constant integer ORDER_DIG = 1 // Order: imp is digging.
    constant integer ORDER_RETURN_GOLD = 2 // Order: imp is returning gold.
    constant integer ORDER_CLAIM_LAND = 3 // Order: imp is claiming land.
    constant integer ORDER_CLAIM_ROOM = 4 // Order: imp is claiming a room.
    constant integer ORDER_ENFORCE_WALL = 5 // Order: imp is enforcing a wall.
    constant integer ORDER_GATHER_CORPSE = 6 // Order: imp is returning a dead corpse to the graveyard.
    constant integer ORDER_GATHER_HOSTAGE = 7 // Order: imp is returning a defeated enemy creature on your land to the prison.
    constant integer ORDER_EAT = 8
    constant integer ORDER_TRAIN = 9
    constant integer ORDER_SLEEP = 10
    constant integer ORDER_TORTURE = 11 // any comments needed?
    constant integer ORDER_WORK = 12 // construct doors/traps
    constant integer ORDER_READ = 13 // spell research + increased mana regeneration (DK2 mode only) 
    constant integer ORDER_MEDITATE = 14 // makes creature happy + increased mana regeneration (DK2 mode only)
    constant integer ORDER_ATTACK = 15
Next, there's a function IssueOrder(unit, orderid) that makes the unit execute an order.
JASS:
function IssueOrder takes unit whichunit, integer orderid returns nothing
endfunction
The AI scripts will periodically loop through every unit on the map and look at its last order. If this is for example ORDER_DIG, then the next order will be ORDER_DIG or ORDER_RETURN_GOLD if the unit is full.
If there's a better alternative, please tell.
I hope everything I just told makes at least a little bit sense :D
 
Level 17
Joined
Sep 2, 2005
Messages
1,029
An estimation on the mapsize:
Terrain+Triggers+Unit Data+Spells < 0,5 Mb.
Sounds ~1Mb
Buffer ~0,5 Mb (you never know)
Sum = 2Mb, which leaves 2Mb open for models/textures. If the project itself is finished, we can try to get some top-notch modellers/animators/texturers to make us good models.
If we can make these estimates you've set I'll be absolutely shocked. I can't see the sounds being less than 1.5 mb, after all compression is done. I imagine we'll need about 15 of the 30 megs of wav files. after mp3 compression i double that will be less than 1.5 mb.

Those 2Mb have to be spend on:
Imp: New model, new texture (100 Kb + 100 Kb)
Fly: New model, texture is optional if no good in-game one is seen (50Kb on model)
Beetle: Can easily use crypt lord's beetles.
Spider: Can easily use warcraft spider.
Hellhound: New model (based on fellhound), no new texture (100Kb)
Troll: New model, new texture (100kb + 100 kb)
Orc: Can easily use grunt.
Skeleton: Can easily use skeleton
Ghost: I forgot how this looks like, but I guess we can use wisp.
Demon Spawn: New Model, New Texture (100kb + 100kb)
Bile Demon: New Model, New Texture (100kb + 150 kb)
Warlock: Model based on archmage? Example. The portrait of that model probably won't be needed to import, which means this model + texture = 200kb, uncompressed.
Dark Mistress: New. - Completed. don't know size
Dragon: New Model, New Texture (100kb + 150 kb)
Vampire: New Model, in-game texture (100kb)
Horned Reaper: New Model, New Texture (100kb, 150kb)
Dirt/Gold/rock/gem: 100kb per block - custom model/texture
Your estimates are too low. The Bile demon is 160 kb for just the model, and thats less than the original model I started with.
Hellhound works fine as a spirit wolf. They look almost the same.
Demon spawns always kinda looked crappy. They're like retarded squigs. Mayhaps we should just use the felhound, or make a new model that doesn't look like the old one.
That Mage on Foot is based on the necromancer. it just uses the mage skin. thats exactly what I was talking about. But I was thinking of keeping the robe from the necromancer as the colors match the warlock better.
The Dark mistress is a modded WoW model. Odds are it's huge. it will need work to be reasonably useful. What texture would you use for the vampire? I imagine it needs all-new everything. The Horned reaper may not need a new texture. You also forgot that we need models for all of the units lairs, for gold, traps, for the spinning question mark boxes that are level bonuses, for the tiles on the floors, for the things in the rooms, and for the heroes who are keeper enemies. This is going to be alot of work to fit into a map.
Some updates:
* My hand system is still considered finished.
* The digging system is still in a "concept" phase, because I don't know how I'll do gold digging. Personally I think I'm gonna go for harvest + return if the treasury is not filled, or drop if the treasury is full. I think that's also what comes closest to the actual game.
Until an early IMP script is written (I'll probably be doing this too, I guess...), I won't really be able to test the digging stuff either, but I'm quite confident that this time I'll have everything right.
I'd actually LIKE to work on unit AI too, but we need the other stuff first. I don't think Imp AI should be separate from regular AI.
* Dimensional array: I made a system so you can use 2 dimensional arrays. In them an integer (the unit-id) is stored of a block. For instance 'Gold' for a block of gold. When this value is <= 0, it means that the block has been generated on the map (or there was no block at all). Whenever a block (with coordinates x, y) dies, every block surrounding it (with coordinates from x-1, y-1 to x+1, y+1) is created if the value is not 0.
This currently doesn't really *work* because the array is initialised with 0's, and should instead be initialised with the unit id's at map generation. But I hope someone else is going to take care of the map generation system.
The system should be expanded so blocks are generated when the "far sight" ability (forgot the name of the spell) is used on a point (I can easily do this, but won't do it until we're about to implement spells).
The system should also be expanded so negative numbers (-1, -2) indicate lava / water.
Currently, all I have is the code, which I won't really be able to test until someone writes a map generation script.
The way you're doing the arrays will actually make things more difficult I think. I want to deal with resrefs as little as possible, so I intend to encapsulate all of them, so instead of "e0h47" I'll just type "Dirt()"

Also, the arrays should not store complicated data, just integers from 0-like 45. 0 will be a dirt wall. The other code will deal with it.

How the map generation should work:
loop through every grid "point", and initialise it with a number. 0 if the room is empty, the unit id when it's not. Try to generate things in clusters, such as a cluster of connected "empty" rooms, so it actually looks like a cave, or a cluster of connected goldtiles.

The grid currently looks like this:
.....|......|.......|......|......|....
0,5 | 1,5 | 2,5 | 3,5 | 4,5 |....
0,4 | 1,4 | 2,4 | 3,4 | 4,4 |....
0,3 | 1,3 | 2,3 | 3,3 | 4,3 |....
0,2 | 1,2 | 2,2 | 3,2 | 4,2 |....
0,1 | 1,1 | 2,1 | 3,1 | 4,1 |....
0,0 | 1,0 | 2,0 | 3,0 | 4,0 |....

with BLOCKSCALE = scale of 1 (dirt, gold, ...) block = 192.0 for my units, 128.0 for redmarine's units
with maximum x = (dimension x of the map (180) * 128) / BLOCKSCALE
with maximum y = (dimension y of the map (180) * 128) / BLOCKSCALE

setting the blockvalue at position 0,0 would go like this: SetArray(0,0, value) The compiler probably won't recognise the function, so for now, put this script into your mapheader:
JASS:
function SetArray takes integer x, integer y, integer new returns nothing
endfunction

function GetArray takes integer x, integer y returns integer
    return 0
endfunction
I'll merge the real function with the map generation myself.

After setting all values, there are still no walls on the map at all, thus you need to create the required walls on the indices AROUND the 0 (index ranges from x-1, y-1 to x+1, y+1), and set the corresponding values of the walls you just made to -1 (with the SetArray(x, y, -1) function).
Although your Idea would work, it seems like taking my idea and overcomplicating it. Leave the generation and grid system to me, I'll handle them. Seriously. Just wait till tuesday and I'll start them then. I know exactly how I want to do it because the way I've got will be easy and efficient. And encapsulated. Encapsulated code is easier to read.
* Something on the way I see AI handeled:
There's a list of orders:
JASS:
    constant integer ORDER_NONE = 0 // Default order: imp is doing nothing of interest.
    constant integer ORDER_DIG = 1 // Order: imp is digging.
    constant integer ORDER_RETURN_GOLD = 2 // Order: imp is returning gold.
    constant integer ORDER_CLAIM_LAND = 3 // Order: imp is claiming land.
    constant integer ORDER_CLAIM_ROOM = 4 // Order: imp is claiming a room.
    constant integer ORDER_ENFORCE_WALL = 5 // Order: imp is enforcing a wall.
    constant integer ORDER_GATHER_CORPSE = 6 // Order: imp is returning a dead corpse to the graveyard.
    constant integer ORDER_GATHER_HOSTAGE = 7 // Order: imp is returning a defeated enemy creature on your land to the prison.
    constant integer ORDER_EAT = 8
    constant integer ORDER_TRAIN = 9
    constant integer ORDER_SLEEP = 10
    constant integer ORDER_TORTURE = 11 // any comments needed?
    constant integer ORDER_WORK = 12 // construct doors/traps
    constant integer ORDER_READ = 13 // spell research + increased mana regeneration (DK2 mode only) 
    constant integer ORDER_MEDITATE = 14 // makes creature happy + increased mana regeneration (DK2 mode only)
    constant integer ORDER_ATTACK = 15
Next, there's a function IssueOrder(unit, orderid) that makes the unit execute an order.
JASS:
function IssueOrder takes unit whichunit, integer orderid returns nothing
endfunction
The AI scripts will periodically loop through every unit on the map and look at its last order. If this is for example ORDER_DIG, then the next order will be ORDER_DIG or ORDER_RETURN_GOLD if the unit is full.
If there's a better alternative, please tell.
I hope everything I just told makes at least a little bit sense :D
I'd make land claiming and room claiming the same. Units aren't always following orders that are there. They wander areound randomly quite a bit ignoring orders. I think maybe the "orders" you gave them should be in one category, whereas "behaviour" will also include sleeping, eating, being lazy, wandering around, etc. And I'd add "collect gold" to that list, which would collect gold from anywhere on your territory that is not in the treasure room and move it to said treasure room. The reason I'm pushing for this is because it's not just gold walls that you get gold from. Creatures drop gold on the ground, you can claim land that has a gold pile on it, you can claim land that used to be a treasure room before your creatures got through with it, etc.

Personally I think you're getting ahead of yourself. AI should be the very last thing we do in regard to scripting. it relies too much on other code we don't have yet.

I think the only AI script we should have at all right now (or we could just temporarily turn off the hand) is for digging. no gold return, just attacking selected walls.

The order we actually need scripting stuff.
-----------------------------------------
-Pickup System(really fits anywhere into the timeline) - Eleandor
-Grid and Map Generation - Redmarine's map generation will now be adapted to setting tiles instead of placing them. I'll write scripts to generate the tiles as necessary to save ram.
-Digging that works with the grid(modifying what we have)
-Land Claiming(again, grid)
-Room Building(grid again)
-Spellcasting
-Workshop&Workshop AI(need grid for placement of traps/doors)
-Unit Leveling(mostly done, just have to do abilities) - then we need stuff to give them xp - I started this at the beginning, almost done, really should have waited for it.
-Unit AI for all BUT claiming land and digging


Non-scripting Stuff
------------------
-Models for the ones we still need
-Skins for those models
-Working the sound files into more manageable size to use in the map. (compress the extracted wav files and do the workarounds necessary to make warcraft think the mp3s are wavs so that we can use them.)
-Spells for the units.
-Adjusting the unit stats so that they work like in keeper. The units shouldn't all be equal in power level (presently they all have the hero stats of whatever hero I thought was the closest stat wise to what we need)

Attached is a screenshot of the final bile demon model with a preliminary skin.
 

Attachments

  • KeeperUnitStats.w3x
    15.6 KB · Views: 131
  • bdemon.png
    bdemon.png
    172.5 KB · Views: 4,818
Last edited:
Level 21
Joined
Aug 21, 2005
Messages
3,699
If we can make these estimates you've set I'll be absolutely shocked. I can't see the sounds being less than 1.5 mb, after all compression is done. I imagine we'll need about 15 of the 30 megs of wav files. after mp3 compression i double that will be less than 1.5 mb.

Ok, we'll have to see about sounds.

Your estimates are too low. The Bile demon is 160 kb for just the model, and thats less than the original model I started with.
Hellhound works fine as a spirit wolf. They look almost the same.
Demon spawns always kinda looked crappy. They're like retarded squigs. Mayhaps we should just use the felhound, or make a new model that doesn't look like the old one.
That Mage on Foot is based on the necromancer. it just uses the mage skin. thats exactly what I was talking about. But I was thinking of keeping the robe from the necromancer as the colors match the warlock better.
The Dark mistress is a modded WoW model. Odds are it's huge. it will need work to be reasonably useful. What texture would you use for the vampire? I imagine it needs all-new everything. The Horned reaper may not need a new texture. You also forgot that we need models for all of the units lairs, for gold, traps, for the spinning question mark boxes that are level bonuses, for the tiles on the floors, for the things in the rooms, and for the heroes who are keeper enemies. This is going to be alot of work to fit into a map.
The current bile demon also isn't fully optimised. I have good trust that in a final version, an experienced modeller can bring it down to 200 kb for both the skin and the model. I was mainly talking about all models made from scratch in the final version, that no longer have "useless" animations and make good use of the available texturespace. Also, I don't consider a model completely done when its size is larger than 200kb :)

The way you're doing the arrays will actually make things more difficult I think. I want to deal with resrefs as little as possible, so I intend to encapsulate all of them, so instead of "e0h47" I'll just type "Dirt()"
instead of e0h47? wth does that mean? :confused: and wth does Dirt() do? does it make me dirty? :p

Also, the arrays should not store complicated data, just integers from 0-like 45. 0 will be a dirt wall. The other code will deal with it.
the arrays store integers. Unit Id's are unique integers. Why make things complicated by storing a number, then checking the number in a list with a corresponding unit id, then creating the unit, when you can simply create the unit with the stored value in the array? I think on this point, I'm not overcomplicating things :)

Although your Idea would work, it seems like taking my idea and overcomplicating it. Leave the generation and grid system to me, I'll handle them. Seriously. Just wait till tuesday and I'll start them then. I know exactly how I want to do it because the way I've got will be easy and efficient. And encapsulated. Encapsulated code is easier to read.
Ok, I'm awaiting to see your system :) But would you mind telling me how you would implement it how it would be less complicate than what I was doing? :)

I'd make land claiming and room claiming the same.
They're currently different because we don't know yet how different land claiming will be from room claiming. If they're too different, we'll need separate orders for them in order to make them work.

Units aren't always following orders that are there. They wander areound randomly quite a bit ignoring orders.
Actually, so far I'm worried that they'll be ignoring too many "obvious" orders already :) so I think this is just fine.

I think maybe the "orders" you gave them should be in one category, whereas "behaviour" will also include sleeping, eating, being lazy, wandering around, etc.
The creature AI will probably look at the # of food consumed on each creature (that constantly decreases over time). If it reaches a certain value, creatures will be *ordered* to go eat. Same concept for sleeping, etc.
Basically, this will be checked at the same time that non-behaviour things are checked, so they both fall under "orders" for me. In game it probably won't look like "orders", but I think it's the most structured way to do this anyway.

And I'd add "collect gold" to that list, which would collect gold from anywhere on your territory that is not in the treasure room and move it to said treasure room. The reason I'm pushing for this is because it's not just gold walls that you get gold from. Creatures drop gold on the ground, you can claim land that has a gold pile on it, you can claim land that used to be a treasure room before your creatures got through with it, etc.
True, didn't think of that.

Personally I think you're getting ahead of yourself. AI should be the very last thing we do in regard to scripting. it relies too much on other code we don't have yet.
Yeah... I probably am :)

-Land Claiming(again, grid)
-Room Building(grid again)
How do you mean "again, grid"? if you build a room, it has to be and will be a unit, and it won't need to be stored in the grid at all, would it? Or am I missing something?
 
Level 19
Joined
Sep 4, 2007
Messages
2,826
I believe we should use floating text displaying the current status of the unit.
The units in Dungeon Keeper didn't have good quality and those in Dungeon Keeper 2. We could always just decrease the poly as well as the quality of the skin by a lot.

The clamed ground could be buildings which are clickable. Because it is clickable you can click on the clamed land and drop your units easily without using an ability all the time.
 
Level 21
Joined
Aug 21, 2005
Messages
3,699
I believe we should use floating text displaying the current status of the unit.
The units in Dungeon Keeper didn't have good quality and those in Dungeon Keeper 2. We could always just decrease the poly as well as the quality of the skin by a lot.

The clamed ground could be buildings which are clickable. Because it is clickable you can click on the clamed land and drop your units easily without using an ability all the time.

Good idea, but if claimed ground indeed turns out to be implemented as buildings, we'll end up having the same problem as we have now with the mapgeneration: way too many units a pc can handle... But we'll have to think about that. Again, good idea in case we're using buildings!
 
Level 17
Joined
Sep 2, 2005
Messages
1,029
The current bile demon also isn't fully optimised. I have good trust that in a final version, an experienced modeller can bring it down to 200 kb for both the skin and the model. I was mainly talking about all models made from scratch in the final version, that no longer have "useless" animations and make good use of the available texturespace. Also, I don't consider a model completely done when its size is larger than 200kb :)
The bile demon could be made a little bit smaller, but not all that much. I could remove the decay and decay skeleton animations, and we could use another "corpse model" which we could use via scripts for all the units

instead of e0h47? wth does that mean? :confused: and wth does Dirt() do? does it make me dirty? :p
e0h47 is an example of the unit ids. I don't want ot have to look them up when I need them, nor do I want to memorize them. Instead I'll code like I would in VB, and make a constant for each room type. In other words, a function, which just returns a resref(unit id)

the arrays store integers. Unit Id's are unique integers. Why make things complicated by storing a number, then checking the number in a list with a corresponding unit id, then creating the unit, when you can simply create the unit with the stored value in the array? I think on this point, I'm not overcomplicating things :)
my way I don't have to initialize dirt resrefs, 0 will do the trick. :p

Ok, I'm awaiting to see your system :) But would you mind telling me how you would implement it how it would be less complicate than what I was doing? :)
Encapsulating and using "tile types" which would just be ints 0-whatever. More to write, but easier to work with, and easier to debug.

They're currently different because we don't know yet how different land claiming will be from room claiming. If they're too different, we'll need separate orders for them in order to make them work.
Fair nough, we'll see what we need.

Actually, so far I'm worried that they'll be ignoring too many "obvious" orders already :) so I think this is just fine.
They shouldn't when we're done.

The creature AI will probably look at the # of food consumed on each creature (that constantly decreases over time). If it reaches a certain value, creatures will be *ordered* to go eat. Same concept for sleeping, etc.
Basically, this will be checked at the same time that non-behaviour things are checked, so they both fall under "orders" for me. In game it probably won't look like "orders", but I think it's the most structured way to do this anyway.
Alright, we'll see how that turns out.

How do you mean "again, grid"? if you build a room, it has to be and will be a unit, and it won't need to be stored in the grid at all, would it? Or am I missing something?
You wouldn't "build" anything. that would require builder units placing them, it would also make them units. I want to just use tiles as much as possible. If we have to use some type of non-tile unit, I'm hoping for walkoverable destructibles. They would be placed via spells, and the location would take the nearest center of a grid square as coordinates, so that all of the tiles match up. I don't think it should be clickable, or when you try to pick up your units that are moving, it'll just select your floor. that would irritate the shit out of me.

@red. For the floating text, I think e'll need it anyways, as you can't see their hit points or level anymore.
and as for crapping up the units, they won't match the wc3 units and skins we use then, and I thought part of the good part of making a dk map is that its prettier than the original.
Keeper Unit Stats MapThis is all the unitstuffs I have at the moment, if someone wants to do units.
attachment.php
This is the finished Bile Demon model with a preliminary skinIf you guys have any suggestions about the model to change I'd like to hear them. And there are a few verts I could merge maybe to save space and maybe one animation I could drop. Maybe 2 anims.

Horns and Shoulder pad are completely from scratch, the rest is modded abomination.
 
Level 19
Joined
Sep 4, 2007
Messages
2,826
Oh yeah. :D
The multiboard is going to be one of the most advanced multiboards I've ever seen. my other(A lot more active) msn account is called [email protected]


We are indeed going to have trouble with having 12 players running around lol... There will be like 2-10 tiles created every 1 second. :ugly:

Edit: Darkholme, I suggest you to remove the legs. Then the model would be perfect.

Who is going to make the icons?
 
Level 17
Joined
Sep 2, 2005
Messages
1,029
Oh yeah. :D
The multiboard is going to be one of the most advanced multiboards I've ever seen. my other(A lot more active) msn account is called [email protected]


We are indeed going to have trouble with having 12 players running around lol... There will be like 2-10 tiles created every 1 second. :ugly:

Edit: Darkholme, I suggest you to remove the legs. Then the model would be perfect.

Who is going to make the icons?
Icons are easy. You screenshot the model. I'll do them, but they don't need to be done now. And even when you don't screenshot the model, I can make an icon in like 10 minutes.

And I added legs because I always thought it was retarded that the didn't have them. I was thinking "bile demon meets diablo's 'the butcher'". Would be much cooler. Come on...

You guys seriously want me to remove the legs? no legs looks awful. it was all I didn't like about them in DK.

Oh. and the balls on chains dont' work, because they are all stiff and don't swing. We'd need no bones in the model for them and an animator to do that. Do we want the meathook or not? I figured the abominations weapons fit the bile demon being a crazy eating fat sob. Meat Cleaver and Meat hook on a chain.
 
Level 17
Joined
Sep 2, 2005
Messages
1,029
Level 8
Joined
Dec 10, 2006
Messages
544
Wow,
Looks like you've guys been quite busy o_o"
I've been expirementing around with a New Project I have, if any of you have heard of the Game Stalker, Shadow of Chernobyl?
It will be a Free-Roam, Multiplayer Version on Wc3, xD
I'ma add one attachment and thats it, I want your guys honest opinions, xD
I'm Rooting for you guys, =]
Keep Up The GREAT Work.
-Calvin
 

Attachments

  • Desert Shot.jpg
    Desert Shot.jpg
    57.7 KB · Views: 247
Level 21
Joined
Aug 21, 2005
Messages
3,699
The bile demon could be made a little bit smaller, but not all that much. I could remove the decay and decay skeleton animations, and we could use another "corpse model" which we could use via scripts for all the units
We'll see how modelsizes turn out later.

e0h47 is an example of the unit ids. I don't want ot have to look them up when I need them, nor do I want to memorize them. Instead I'll code like I would in VB, and make a constant for each room type. In other words, a function, which just returns a resref(unit id)
ah.. well, unit id's only have 4 characters :)
anyway, that's when constants come in.
JASS:
constant integer ROOM_DIRT = 'bl0d' // whatever
constant integer ROOM_TREASURY = 'lol5'

function Idunno takes nothing returns nothing
    call CreateUnit(ROOM_DIRT, Player(PLAYER_NEUTRAL_PASSIVE), x, y, 270)
    call SetArray(x, y, ROOM_DIRT)
endfunction
you see? We'd just need to store "ROOM_DIRT" in the array and it'll automatically store the number 'bl0d'. Instead of calling functions such as Dirt() that returns the value, you just use the constant ROOM_DIRT.

my way I don't have to initialize dirt resrefs, 0 will do the trick. :p
0 will do what trick?

Encapsulating and using "tile types" which would just be ints 0-whatever. More to write, but easier to work with, and easier to debug.
Not sure, I'll have to see your system first :D (so get working on it! ;))

You wouldn't "build" anything.
if you mean "building" as in making a peasant construct a structure, then I agree, yes :)

I want to just use tiles as much as possible. If we have to use some type of non-tile unit, I'm hoping for walkoverable destructibles.
You mean tiles as in ground textures? If you do, you realise that you'll need to import custom textures for those too? Those increase mapsize a lot too, sadly... Above that, there would be no *easy* way to see if you own a tile or not, and claiming it would perhaps be harder.

I don't think it should be clickable, or when you try to pick up your units that are moving, it'll just select your floor. that would irritate the shit out of me.

Don't forget that you should be able to sell structures, and thus somehow should be able to select a structure. Also, I don't think the chance is very high that you'd select a structure instead of a creature.

@red. For the floating text, I think we'll need it anyways, as you can't see their hit points or level anymore.
Well, you can always hold alt for hit points... but it's true that floating texts will be helpful.

@Darkenneko: Looks good, would you care to explain what exactly the gameplay concept is? Perhaps create a different thread in the idea factory or something, I'd be glad to visit it.
 
Level 17
Joined
Sep 2, 2005
Messages
1,029
Ah. When I was asking about it when I just started Jass, someone told me Warcraft 3 only had Constant functions, and you couldn't have constant variables, when I asked how to initialize them, so I thought it was just one of the annoying quirks in jass, like how there are a bunch of things you have to clear to not cause a fuckloiad of memory leaks cause warcraft III's garbage collector is shit. I still don't know which things need to be cleared and which don't. Like how there are no multidimensional arrays!

If I can use non-fake constants, then I don't mind using the constants instead of having a table of values for tiles. well, if they all end up being units that is. If Its a combination of units and floor tiles (yes they would be imports, but so would unit floor tiles) then I think having a table of floor tiles is a good idea.

To sell rooms, it would be a spell that is just target ground. then it sends the coordinates of the spot on the ground you targeted, and gets the value of the tile that the coordinates are in. Afterwards it fires the scripts checking if its a sellable tile, and if so, sets the tile to be just claimed land and gives you back your cash.

I think units for floor tiles would lag like a bitch, so I was thinking just a big series of the smallest size floor tiles possible. We don't need any cliff tiles. We can use WEU to replace the cliff tiles with plain ones.

but either way the floor will be an import. that was part of my point as to why you underestimates what needs to go in.


--------------
so when you cast the spell to BUILD a room, its a target ground spell. it gets the coords of where you targeted, gets the appropriate tile, checks if that tile is buildable, and the puts the tile of the appropriate room (which you're "building") at the center of the tile (as opposed to the location you actually clicked) (and then sets the tile in the array to match the type of tile you just placed). This way all the tiles match up. Know what I mean? I imagine floor tiles would take much less space than units, both in map and in ram, as they don't store unnecessary data, and don't need models. It'll only be claimed land that will need to be a unit(for teamcolor), and then we need it to be untargetable.

For tiles, obviously anything we can get that's close to a dk tile that's already IN warcraft we need to use it.
 
Last edited:
Level 10
Joined
Oct 2, 2005
Messages
398
hey thats great you are doing a dungeon keeper map as well as I am, I have a bunch of wall block models I did specially for my DK2 map, if you want the resources I can give you, but better would it be poddible to join your group?
I'm kind of stuck in the imps artificial intelligence, cuz it is ordered to dig unreachable walls, but its going.
I think that if we get our things together it would be nice, I don't know what you think...
 
Level 21
Joined
Aug 21, 2005
Messages
3,699
Ah. When I was asking about it when I just started Jass, someone told me Warcraft 3 only had Constant functions, and you couldn't have constant variables, when I asked how to initialize them, so I thought it was just one of the annoying quirks in jass, like how there are a bunch of things you have to clear to not cause a fuckloiad of memory leaks cause warcraft III's garbage collector is shit. I still don't know which things need to be cleared and which don't. Like how there are no multidimensional arrays!
Well, I think constants are only supported in vjass, thus you need newgen to use them...

If I can use non-fake constants, then I don't mind using the constants instead of having a table of values for tiles. well, if they all end up being units that is. If Its a combination of units and floor tiles (yes they would be imports, but so would unit floor tiles) then I think having a table of floor tiles is a good idea.
Well, I know units can be a burden for your ram, but we can only have a max. of 16 ground tiles. If we decide that each player will have its own ground tile when claiming ground (perhaps that would work!) then we only have 4 tiles for rooms, which clearly is too little. Also, units are 3D, and so are the hatchery chicken housings (whatever it's called in english) or the libraries...

To sell rooms, it would be a spell that is just target ground. then it sends the coordinates of the spot on the ground you targeted, and gets the value of the tile that the coordinates are in. Afterwards it fires the scripts checking if its a sellable tile, and if so, sets the tile to be just claimed land and gives you back your cash.
Technically that would indeed work, but I still think tiles for rooms will give us problems...

I think units for floor tiles would lag like a bitch, so I was thinking just a big series of the smallest size floor tiles possible. We don't need any cliff tiles. We can use WEU to replace the cliff tiles with plain ones.
Yes, but tiles for rooms will possibly cause even more lag. Let me explain:
The AI of a creature will possibly look up all rooms of a certain type (for instance: hatchery when he's hungry), and then go to the closest room. If rooms are only stored in the grid, you'll have to make 120*120 (depending on map dimensions) = 14400 comparisons before you can actually find a good hatchery to move to. Making 14k comparisons is a huge burden for your cpu, and I'm much more worried about the cpu than I am about the ram.

but either way the floor will be an import. that was part of my point as to why you underestimates what needs to go in.
Yes, you're totally correct there =)
Still, I think it's not the right time yet to get worried about mapsize :)

so when you cast the spell to BUILD a room, its a target ground spell. it gets the coords of where you targeted, gets the appropriate tile, checks if that tile is buildable, and the puts the tile of the appropriate room (which you're "building") at the center of the tile (as opposed to the location you actually clicked) (and then sets the tile in the array to match the type of tile you just placed). This way all the tiles match up.
Whether we use units or tiles for rooms, this indeed is what I had in mind too.

Know what I mean? I imagine floor tiles would take much less space than units, both in map and in ram
Yes, but then I'm getting worried about the cpu. You can easily make a unit group and enumerate all units of a roomtype owned by a player, then loop through them. looping through *tiles* would mean many, many comparisons to be made, and yet again, if someone doesn't have enough ram to play the game, let him buy another stick for his memory :)
You can't easily get a stronger cpu...

For tiles, obviously anything we can get that's close to a dk tile that's already IN warcraft we need to use it.
To be honest, I see nothing in wc that even closely resembles a DK room :D
Perhaps "lava" for lava, yes, but nothing for actual rooms...

hey thats great you are doing a dungeon keeper map as well as I am, I have a bunch of wall block models I did specially for my DK2 map, if you want the resources I can give you, but better would it be poddible to join your group?
I'm kind of stuck in the imps artificial intelligence, cuz it is ordered to dig unreachable walls, but its going.
I think that if we get our things together it would be nice, I don't know what you think...
Show me what you have :)
We're trying to recreate the DK gameplay as closely as possible, so if your systems are less *accurate* then ours, I think we'll still get to create ours. But your services can come in handy. If it's up to me, you're in :)
 
Level 4
Joined
Jul 27, 2007
Messages
91
I know my opinion means nothing in the long run, but..

I like the Bile Demon. Sure, it's inaccurate, but, IMO, it'll work better with the two legs then with no legs in this map.

Keep up the good work, guys. Hope your map is sucessful.
 
Level 17
Joined
Sep 2, 2005
Messages
1,029
Well, I think constants are only supported in vjass, thus you need newgen to use them...
Well we can use constants then.

Well, I know units can be a burden for your ram, but we can only have a max. of 16 ground tiles. If we decide that each player will have its own ground tile when claiming ground (perhaps that would work!) then we only have 4 tiles for rooms, which clearly is too little. Also, units are 3D, and so are the hatchery chicken housings (whatever it's called in english) or the libraries...
Through weu you can have more than 16 room tiles types. The rooms don't need to be 3d, just the objects IN them. so you place the floor for the library, and then scripts would generate the bookshelves between tiles, such as in DK.

Yes, but tiles for rooms will possibly cause even more lag. Let me explain:
The AI of a creature will possibly look up all rooms of a certain type (for instance: hatchery when he's hungry), and then go to the closest room. If rooms are only stored in the grid, you'll have to make 120*120 (depending on map dimensions) = 14400 comparisons before you can actually find a good hatchery to move to. Making 14k comparisons is a huge burden for your cpu, and I'm much more worried about the cpu than I am about the ram.
You wouldn't have to make 14400 comparisons. The fact that they're in the grid doesn't mean they can't be elsewhere. but instead of a unit group it would be other arrays. That just store tile types. We could use a combination of tiles and units if necessary. but if we use units the ground will have to be perfectly flat, which I was hoping it would not be. I was hoping random ground height would be awesome, and I was thinking about how we could implement water and lava, and I was thinking ground height could be a solution.
Yes, but then I'm getting worried about the cpu. You can easily make a unit group and enumerate all units of a roomtype owned by a player, then loop through them. looping through *tiles* would mean many, many comparisons to be made, and yet again, if someone doesn't have enough ram to play the game, let him buy another stick for his memory :)
You can't easily get a stronger cpu...
Arrays of integers maybe? can you redefine the dimensions of an int array in jass?

To be honest, I see nothing in wc that even closely resembles a DK room :D
Perhaps "lava" for lava, yes, but nothing for actual rooms...
some form of dirt = dirt
blight easily makes lair.
cityscape brick = treasury
cityscape round tiles=training room
lava/lava cracks = lava
dungeon quare tiles = torture room
we really could use some of them more than once, if we use tiles, as its just the 3d props that would be "necessary" to identify rooms.we could probably get away with 4 room tiles cause some could be reused, and blight would make it 5. But as I said, using weu you can add more than 16 tiles. you just can't add new cliff tiles.

we'll see what I can come up with next week.

This would be another reason FOR having tile numbers. they wouldn't need to match up to the tileset then. brick could be used for like 4 rooms.
 
Level 21
Joined
Aug 21, 2005
Messages
3,699
Through weu you can have more than 16 room tiles types. The rooms don't need to be 3d, just the objects IN them. so you place the floor for the library, and then scripts would generate the bookshelves between tiles, such as in DK.
Nope, those 16 are actually the limit of WEU (or any other 3rd party program that extends normal wc3 limitations). in normal wc the maximum tiles you could have in 1 map was 11 or something like that. I don't know the exact reason, but after loading the 16th terrain texture, every texture you try adding next won't visually be displayed in wc3 at all.

You wouldn't have to make 14400 comparisons. The fact that they're in the grid doesn't mean they can't be elsewhere. but instead of a unit group it would be other arrays. That just store tile types. We could use a combination of tiles and units if necessary. but if we use units the ground will have to be perfectly flat, which I was hoping it would not be. I was hoping random ground height would be awesome, and I was thinking about how we could implement water and lava, and I was thinking ground height could be a solution.
I don't really know what would be so *awesome* of random height, since you're actually digging in the ground, but whatever :p
Anyway, how would random height solve the water/lava issue? If you're thinking of having a map with deep water and then change the height so hills are made, then that's no good option. again, I don't know why, but it's quite bugged. If a terrain deformation is made on water, it's visually no longer water, but practically it still is, and you will be able to walk over both water and land with every unit. Which is definatelly what we wish to avoid, because otherwise there wouldn't be any use of having water.

Arrays of integers maybe? can you redefine the dimensions of an int array in jass?
I'm a bit confused, what is this question related to? And what do you mean with "redefining" dimensions of an array in jass? Do you mean creating a 2 dimensional array instead of 1D array? If so, it's not supported by jass nor vjass, but I made a small "system" that emulates 2d arrays, as you might have read in another post earlier.

some form of dirt = dirt
Wait... dirt is going to be units, right? I mean, there's no way that I can make a digging system work on tiles only... At least not an incredible inefficient one...

blight easily makes lair.
lava/lava cracks = lava
True
cityscape brick = treasury
cityscape round tiles=training room
Don't really like these ones, but meh...

This would be another reason FOR having tile numbers. they wouldn't need to match up to the tileset then. brick could be used for like 4 rooms.
having tile numbers? (/me is confused again :p)
 
Level 10
Joined
Oct 2, 2005
Messages
398
I did 4 stone wall models, but they are completely square, I don't know if you like it, here it is:
(The CarvedStoneBlock.mdx and the StoneBlock.mdx use existing textures in game, and the StoneBlock_gold and StoneBlock_crystal use "Textures\<name.blp>")
I hope I help you because I am insecure about doing a Dungeon Keeper 2 map myself so I'm giving you my resources (few).
The animations are so crappy, they are under construction, this is a demonstration of mine, I'm still improving the death animation, cause since it loops, it is needed to make a trigger to remove it after 1.smthng seconds.
 

Attachments

  • StoneBlock.mdx
    4.8 KB · Views: 80
  • CarvedStoneBlock.mdx
    5.6 KB · Views: 72
  • StoneBlock_gold.mdx
    4.2 KB · Views: 71
  • StoneBlock_crystal.mdx
    4.2 KB · Views: 60
  • D_Cliff0_crystal.blp
    76.7 KB · Views: 81
  • D_Cliff0_gold.blp
    77.3 KB · Views: 105
Level 17
Joined
Sep 2, 2005
Messages
1,029
Nope, those 16 are actually the limit of WEU (or any other 3rd party program that extends normal wc3 limitations). in normal wc the maximum tiles you could have in 1 map was 11 or something like that. I don't know the exact reason, but after loading the 16th terrain texture, every texture you try adding next won't visually be displayed in wc3 at all.
We'll figure something out

I don't really know what would be so *awesome* of random height, since you're actually digging in the ground, but whatever :p
Anyway, how would random height solve the water/lava issue? If you're thinking of having a map with deep water and then change the height so hills are made, then that's no good option. again, I don't know why, but it's quite bugged. If a terrain deformation is made on water, it's visually no longer water, but practically it still is, and you will be able to walk over both water and land with every unit. Which is definatelly what we wish to avoid, because otherwise there wouldn't be any use of having water.
since they're little monsters digging, I think it would be more realistic if the floors were not perfectly level. I was thinking of doing just that with water, but using shallow, not deep, and I had no idea it was bugged. hmm.

I'm a bit confused, what is this question related to? And what do you mean with "redefining" dimensions of an array in jass? Do you mean creating a 2 dimensional array instead of 1D array? If so, it's not supported by jass nor vjass, but I made a small "system" that emulates 2d arrays, as you might have read in another post earlier.
redefinining an array, or redimensioning an array. You have a 1 dimensional array. It was initialized to hold 100 values. Now you need another one, but the ones you have defined are all in use. you want to change the max to 101 values so you can set a value 101.

Wait... dirt is going to be units, right? I mean, there's no way that I can make a digging system work on tiles only... At least not an incredible inefficient one...
I meant a dirt floor, not a dirt wall. As in unclaimed floor.


we seriously don't need a large number of tiles to use aside from the 12 as 1 for each player.

having tile numbers? (/me is confused again :p)

as in 0:dirt, 1:dug dirt, 2: water, 4: lava, 5: red claimed, 6:red lair, 7:red hatchery, 8: red treasury, etc. Then as peopel build rooms, you add those rooms to OTHER arrays, so you don't have to search all the "tile" coordinates to find the nearest treasury, just the tile locations of treasuries owned by you, and compare the distance, etc. and each room will end up marked as different rooms. so if you have a 9 square training room in one area, and a 9 square training room in another area, it looks at both as separate rooms.

I just realized we'll need some complex navigation AI for all the tunnels. =/

I did 4 stone wall models, but they are completely square, I don't know if you like it, here it is:
I hope I help you because I am insecure about doing a Dungeon Keeper 2 map myself so I'm giving you my resources (few).
The animations are so crappy, they are under construction, this is a demonstration of mine, I'm still improving the death animation, cause since it loops, it is needed to make a trigger to remove it after 1.smthng seconds.

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.
 

Attachments

  • StoneBlock.mdx
    4.8 KB · Views: 79
Level 21
Joined
Aug 21, 2005
Messages
3,699
We'll figure something out
I hope so...

redefinining an array, or redimensioning an array. You have a 1 dimensional array. It was initialized to hold 100 values. Now you need another one, but the ones you have defined are all in use. you want to change the max to 101 values so you can set a value 101.
uh...
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...
I meant a dirt floor, not a dirt wall. As in unclaimed floor.
ah, right.

we seriously don't need a large number of tiles to use aside from the 12 as 1 for each player.
So this confirms the fact that groundclaiming will turn a dirttile into one of the corresponding playertiles?

as in 0:dirt, 1:dug dirt, 2: water, 4: lava, 5: red claimed, 6:red lair, 7:red hatchery, 8: red treasury, etc. Then as peopel build rooms, you add those rooms to OTHER arrays, so you don't have to search all the "tile" coordinates to find the nearest treasury, just the tile locations of treasuries owned by you, and compare the distance, etc. and each room will end up marked as different rooms. so if you have a 9 square training room in one area, and a 9 square training room in another area, it looks at both as separate rooms.
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...

I just realized we'll need some complex navigation AI for all the tunnels. =/
Why? Warcraft 3 pathfinding algorithms will work fine, won't they?
 
Status
Not open for further replies.
Top