Just curious, are those custom models? If so, you know any websites that share custom models?
As I wrote on the first page, I got the custom model from Helral. Not familiar with any website other than SC2Mapster that has any SC2 model resources.
(Pan) - I got a question that I've been trying to figure out since the beta: does anybody know how to change cliff heights mid-game (triggers, actors, abilities, etc.)?
Changing cliff levels during run-time would require significant changes and we would only add support for this if there was a strong need for it. ------------
Sad :|
Ok I'll start working with your method then... years will be required to wait for blizzard :(
(Pan) - I got a question that I've been trying to figure out since the beta: does anybody know how to change cliff heights mid-game (triggers, actors, abilities, etc.)?
Changing cliff levels during run-time would require significant changes and we would only add support for this if there was a strong need for it.
--
Sad :|
Ok I'll start working with your method then... years will be required to wait for blizzard :(
Yeah, kinda sad about that.
Anyhow, if you need some help with something just ask and I'll share some info on how I did it.
I think I have the overall idea, however I'll try to work thinking to the whole engine and the small mechanics that can cause problems later when ignored.
So I started writing down all variables i need to store and how to store them.
I'm still trying to figure out how to limit the amount of workers to 3 for each wall face
Edit:
Maybe something that has to do with harvesting that limits the amount of workers on the same spot!
I think I have the overall idea, however I'll try to work thinking to the whole engine and the small mechanics that can cause problems later when ignored.
So I started writing down all variables i need to store and how to store them.
I'm still trying to figure out how to limit the amount of workers to 3 for each wall face
Edit:
Maybe something that has to do with harvesting that limits the amount of workers on the same spot!
Since workers will have to be able to dig from all angles you could simply make their colission big enough to only fit 3 on each sides which I decided to go with. Then again, sometimse they can be misplaced and only allow 2 guys at a time. Other than that it works nicely.
Since workers will have to be able to dig from all angles you could simply make their colission big enough to only fit 3 on each sides which I decided to go with. Then again, sometimse they can be misplaced and only allow 2 guys at a time. Other than that it works nicely.
I dont like this solution :D
Consider that trying to dig on a single square wall (4 faces) for example of gems it will allow worker to dig from diagonal positions too.
I think i'll use 4 dummy invis units like minerals with max 3 workers a time, when the resources go down the wall is destroyed. I can share the resources between the 4 spots with triggers ;)
Edit:
Now I'm thinking to the detection of room sizes and keeping the AI informed on rooms position.
That won't be easy :|
I dont like this solution :D
Consider that trying to dig on a single square wall (4 faces) for example of gems it will allow worker to dig from diagonal positions too.
I think i'll use 4 dummy invis units like minerals with max 3 workers a time, when the resources go down the wall is destroyed. I can share the resources between the 4 spots with triggers ;)
Edit:
Now I'm thinking to the detection of room sizes and keeping the AI informed on rooms position.
That won't be easy :|
A spider system would easily handle that. Just crawl through each tile connected to the room and give it a occupation value to only allow a certain number of creatures to be directed there at one time. How to check how large the rooms are I'm not sure.
A spider system would easily handle that. Just crawl through each tile connected to the room and give it a occupation value to only allow a certain number of creatures to be directed there at one time. How to check how large the rooms are I'm not sure.
What's a spider system? lol
However I was meaning that, depending on the position of a unit he should go to the nearest rooms he's interested in.
For example the unit want's to eat, what's the nearest hatchery to it? U can't just check the distance from the middle of the room but you must do it with all room external tiles :|
I think that we require a system that stores the amount of rooms with their type, location and size. That's required to choose what kind of monsters are attracted and what room variable must be edited when I modify the room shape.
What's a spider system? lol
However I was meaning that, depending on the position of a unit he should go to the nearest rooms he's interested in.
For example the unit want's to eat, what's the nearest hatchery to it? U can't just check the distance from the middle of the room but you must do it with all room external tiles :|
I think that we require a system that stores the amount of rooms with their type, location and size. That's required to choose what kind of monsters are attracted and what room variable must be edited when I modify the room shape.
Let me know about how such a system works once you get one. It ain't exactly easy to make.
I've spend all morning on trying to remake the map. Basically I updated the entire code base in order to address conflicts I would get later on during development such as having to make silly workarounds in order to incorporate building, and selling etc. Anyhow, it works more fluently now and will work with future changes.
EDIT: Well, let's take the farm as an example. Basically you'd loop through all farm tiles and calculate their distance from the creature. Once you get the closest one simply check the size of the farm via that tile and if it isn't full already then allow the creature to come.
Let me know about how such a system works once you get one. It ain't exactly easy to make.
I've spend all morning on trying to remake the map. Basically I updated the entire code base in order to address conflicts I would get later on during development such as having to make silly workarounds in order to incorporate building, and selling etc. Anyhow, it works more fluently now and will work with future changes.
EDIT: Well, let's take the farm as an example. Basically you'd loop through all farm tiles and calculate their distance from the creature. Once you get the closest one simply check the size of the farm via that tile and if it isn't full already then allow the creature to come.
That's a quite huge calculation and it must be done constantly by the AI, we should find an optimized way to do that.
As I said we can check just the border room tiles (adjacent to walkable tiles) and make a comparsion with that. I think that the room size check should be done before you start calculating the distances.
As I said we can check just the border room tiles (adjacent to walkable tiles) and make a comparsion with that. I think that the room size check should be done before you start calculating the distances.
Well, we could seperate the room size checker into a seperate thread altogether which updates with new information on how big these rooms are (whenever changes are being made such as rooms destroyed and player is building) and store all available rooms in an variable[]. So whenever a creature needs to enter a room one could simply check all rooms in that variable[].
Yep but the problem is to associate these room variables to tiles, I think we should assign unique IDs to each room tile.
It will be hard to update ids when rooms get splitted or joined but I suppose I can manage it :P
Yep but the problem is to associate these room variables to tiles, I think we should assign unique IDs to each room tile.
It will be hard to update ids when rooms get splitted or joined but I suppose I can manage it :P
I can see that becoming an issue. Or, whenever something happens to a room all tiles within will be recounted. If some tiles are missing and are not removed they'll be categorized as a second room. Will have to do some testing on that before I can settle on a specific method.
Anyhow, I created a thread in the request resource section asking for some texture and models. Figured we would be needing some soon.
EDIT: How did you do the selection/deselection of dirt walls? I'll be posting my method tomorrow in the first post. Perhaps I can learn something from yours.
Let me know about how such a system works once you get one. It ain't exactly easy to make.
I've spend all morning on trying to remake the map. Basically I updated the entire code base in order to address conflicts I would get later on during development such as having to make silly workarounds in order to incorporate building, and selling etc. Anyhow, it works more fluently now and will work with future changes.
EDIT: Well, let's take the farm as an example. Basically you'd loop through all farm tiles and calculate their distance from the creature. Once you get the closest one simply check the size of the farm via that tile and if it isn't full already then allow the creature to come.
That's a quite huge calculation and it must be done constantly by the AI, we should find an optimized way to do that.
As I said we can check just the border room tiles (adjacent to walkable tiles) and make a comparsion with that. I think that the room size check should be done before you start calculating the distances.
I'm still in brainstorming phase, thinking to all the variables I must store. Today I decided that I will use an array struct that stores all tile variables and I'll do special functions to change that values easily.
The only way possible for wall selecting is the one you actually did with mouse click and mouse release + single click. You could use the camera lock to mouse to something cooler but I don't like this method.
Bibendus, have you been working on AI concepts so far? I'd like to ask you for some suggestion on how to solve an issue related to imps changing tasks, after being dropped by you, to nearby tasks. Got some ideas?
Anyhow, I've figured out I might as well remake the AI. If you need some help with it just ask.
Bibendus, have you been working on ideas on how the AI should work? Well, when you drop an imp near a task you want to accomplish, how would you go around getting the imp to carry out that task?
Have you thought about creating a semi-data/semi-trigger controlled AI? I had also the idea of making a DK map (and abandoned it because my editor skills are too low :( ) and wanted to make the AI being controlled mostly by autocast abilities (since units would be uncommandable anyway). For example each imp would have abilities to dig, aquire ground, fortify walls and harvest gold, which means, of course, that one needs lots of dummy units to guide them.
This method would also work for all other units. Any unit would have an ability to target their lair, chickens in the hatchery, treasure room or their specific room. Unlike imps (and skelletons) those units would also need some sort of happiness bar which affects the use of their abilities (and is affected by their abilities). I thought that easiest way to achieve this is using the energy bar because no DK unit has ever used mana. 100 energy (maximum) would mean that the unit is perfectly happy, 0 energy would mean that it leaves the dungeon because its angry. Energy should degenerate over time of course. Whenever the unit eats, sleeps or earns its wage it would restore energy/happiness.
I am not sure if the autocast ability AI control method is viable, however I think that at least the energy controlled happiness is a good idea because it is (imho) the most easy way to get each units individuall mood.
Using the auto cast you would have the problem of imps trying to achieve the same task at the same time.
For the AI I'm going to use looping triggers.
Each time you assign a work to an imp you flag a variable to 1 (or add a behavior to the work dummy unit) and start a looping trigger that checks if the worker is still alive and with the same task. If something happened re-assign the work.
What's the best way of linking 2 units using data editing? I mean to check with triggers if the unit is still targeting another unit...
Using the auto cast you would have the problem of imps trying to achieve the same task at the same time.
For the AI I'm going to use looping triggers.
Each time you assign a work to an imp you flag a variable to 1 (or add a behavior to the work dummy unit) and start a looping trigger that checks if the worker is still alive and with the same task. If something happened re-assign the work.
What's the best way of linking 2 units using data editing? I mean to check with triggers if the unit is still targeting another unit...
Order of unit equal to follow or attack.
I'll share my thoughts on how the AI should be handled later once I got things working. It ain't exactly easy to explain.
1) Assign task to a worker
2) Assign the target to the worker
3) Assign a specific behavior to the worker that stores his current task type (conquest, dig, fortify, etc)
4) Start an action definition that loops, storing the worker, his target and his current task type (behavior type)
5) While looping check if the worker has the same task type and the same target, else re-assign the target task to another worker
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Just curious, are those custom models? If so, you know any websites that share custom models?
As I wrote on the first page, I got the custom model from Helral. Not familiar with any website other than SC2Mapster that has any SC2 model resources.
(Pan) - I got a question that I've been trying to figure out since the beta: does anybody know how to change cliff heights mid-game (triggers, actors, abilities, etc.)?
Changing cliff levels during run-time would require significant changes and we would only add support for this if there was a strong need for it.
------------Sad :|
Ok I'll start working with your method then... years will be required to wait for blizzard :(
Yeah, kinda sad about that.
Anyhow, if you need some help with something just ask and I'll share some info on how I did it.
I think I have the overall idea, however I'll try to work thinking to the whole engine and the small mechanics that can cause problems later when ignored.
So I started writing down all variables i need to store and how to store them.
I'm still trying to figure out how to limit the amount of workers to 3 for each wall face
Edit:
Maybe something that has to do with harvesting that limits the amount of workers on the same spot!
Since workers will have to be able to dig from all angles you could simply make their colission big enough to only fit 3 on each sides which I decided to go with. Then again, sometimse they can be misplaced and only allow 2 guys at a time. Other than that it works nicely.
I dont like this solution :D
Consider that trying to dig on a single square wall (4 faces) for example of gems it will allow worker to dig from diagonal positions too.
I think i'll use 4 dummy invis units like minerals with max 3 workers a time, when the resources go down the wall is destroyed. I can share the resources between the 4 spots with triggers ;)
Edit:
Now I'm thinking to the detection of room sizes and keeping the AI informed on rooms position.
That won't be easy :|
A spider system would easily handle that. Just crawl through each tile connected to the room and give it a occupation value to only allow a certain number of creatures to be directed there at one time. How to check how large the rooms are I'm not sure.
What's a spider system? lol
However I was meaning that, depending on the position of a unit he should go to the nearest rooms he's interested in.
For example the unit want's to eat, what's the nearest hatchery to it? U can't just check the distance from the middle of the room but you must do it with all room external tiles :|
I think that we require a system that stores the amount of rooms with their type, location and size. That's required to choose what kind of monsters are attracted and what room variable must be edited when I modify the room shape.
Let me know about how such a system works once you get one. It ain't exactly easy to make.
I've spend all morning on trying to remake the map. Basically I updated the entire code base in order to address conflicts I would get later on during development such as having to make silly workarounds in order to incorporate building, and selling etc. Anyhow, it works more fluently now and will work with future changes.
EDIT: Well, let's take the farm as an example. Basically you'd loop through all farm tiles and calculate their distance from the creature. Once you get the closest one simply check the size of the farm via that tile and if it isn't full already then allow the creature to come.
Info on spider crawlers : http://en.wikipedia.org/wiki/Web_crawler
That's a quite huge calculation and it must be done constantly by the AI, we should find an optimized way to do that.
As I said we can check just the border room tiles (adjacent to walkable tiles) and make a comparsion with that. I think that the room size check should be done before you start calculating the distances.
You're right. Isn't an option with such a huge resource demanding map.
Well, we could seperate the room size checker into a seperate thread altogether which updates with new information on how big these rooms are (whenever changes are being made such as rooms destroyed and player is building) and store all available rooms in an variable[]. So whenever a creature needs to enter a room one could simply check all rooms in that variable[].
Just brainstorming atm.
Yep but the problem is to associate these room variables to tiles, I think we should assign unique IDs to each room tile.
It will be hard to update ids when rooms get splitted or joined but I suppose I can manage it :P
I can see that becoming an issue. Or, whenever something happens to a room all tiles within will be recounted. If some tiles are missing and are not removed they'll be categorized as a second room. Will have to do some testing on that before I can settle on a specific method.
Anyhow, I created a thread in the request resource section asking for some texture and models. Figured we would be needing some soon.
http://forums.sc2mapster.com/development/artist-tavern/requests/12457-request-dungeon-keeper-resources/
EDIT: How did you do the selection/deselection of dirt walls? I'll be posting my method tomorrow in the first post. Perhaps I can learn something from yours.
That's a quite huge calculation and it must be done constantly by the AI, we should find an optimized way to do that.
As I said we can check just the border room tiles (adjacent to walkable tiles) and make a comparsion with that. I think that the room size check should be done before you start calculating the distances.
@Forge_User_20974461: Go
I'm still in brainstorming phase, thinking to all the variables I must store. Today I decided that I will use an array struct that stores all tile variables and I'll do special functions to change that values easily.
The only way possible for wall selecting is the one you actually did with mouse click and mouse release + single click. You could use the camera lock to mouse to something cooler but I don't like this method.
Bibendus, have you been working on AI concepts so far? I'd like to ask you for some suggestion on how to solve an issue related to imps changing tasks, after being dropped by you, to nearby tasks. Got some ideas?
Anyhow, I've figured out I might as well remake the AI. If you need some help with it just ask.
Have you thought about creating a semi-data/semi-trigger controlled AI? I had also the idea of making a DK map (and abandoned it because my editor skills are too low :( ) and wanted to make the AI being controlled mostly by autocast abilities (since units would be uncommandable anyway). For example each imp would have abilities to dig, aquire ground, fortify walls and harvest gold, which means, of course, that one needs lots of dummy units to guide them. This method would also work for all other units. Any unit would have an ability to target their lair, chickens in the hatchery, treasure room or their specific room. Unlike imps (and skelletons) those units would also need some sort of happiness bar which affects the use of their abilities (and is affected by their abilities). I thought that easiest way to achieve this is using the energy bar because no DK unit has ever used mana. 100 energy (maximum) would mean that the unit is perfectly happy, 0 energy would mean that it leaves the dungeon because its angry. Energy should degenerate over time of course. Whenever the unit eats, sleeps or earns its wage it would restore energy/happiness. I am not sure if the autocast ability AI control method is viable, however I think that at least the energy controlled happiness is a good idea because it is (imho) the most easy way to get each units individuall mood.
(Please excuse my bad english)
Using the auto cast you would have the problem of imps trying to achieve the same task at the same time.
For the AI I'm going to use looping triggers.
Each time you assign a work to an imp you flag a variable to 1 (or add a behavior to the work dummy unit) and start a looping trigger that checks if the worker is still alive and with the same task. If something happened re-assign the work.
What's the best way of linking 2 units using data editing? I mean to check with triggers if the unit is still targeting another unit...
Order of unit equal to follow or attack.
I'll share my thoughts on how the AI should be handled later once I got things working. It ain't exactly easy to explain.
@redmarine: Go
Yes that should work, so that's what I would do.
1) Assign task to a worker
2) Assign the target to the worker
3) Assign a specific behavior to the worker that stores his current task type (conquest, dig, fortify, etc)
4) Start an action definition that loops, storing the worker, his target and his current task type (behavior type)
5) While looping check if the worker has the same task type and the same target, else re-assign the target task to another worker