(still need the 2 questions up top, but also)
Okay so I'm finally (mostly) done with less important stuff - dialogs, pre-game, assigning players to maps etc. Now it's time for the GAME game part of it! However I've already got lots of questions >.<
The game I'm working on is called BattleDex. It's already out there as an independent game but no one knows about it so I'm hitting two birds with one stone while I learn more about mapmaking. But here's the details:
Turn-based, but not like player 1 > p2 > p1 > etc. Instead BOTH players issue their orders at the same time (with a 2min timer) and hit a submit button when they're done. When both players are done, the game plays out that turn as a Replay and both players' units move and act at the same time. Once the replay's over, the next turn begins and players start giving their next orders.
The replay is set up as a 100-tick system. So for example if a unit has 3 movement, it will move once between ticks 1-33, 34-66, and 67-100. If it attacks twice per turn, it'll shoot once between 1-50, and 51-100.
3. I can't even begin to think of a good way to set up the tick system above though. Any ideas?
4. Also, when a unit is ordered to move, it looks like the attached picture (with the number being how many turns itll take to get there).
a. Is there any actor/doodad I could use to make those blue arrows, or whats the best way to do that?
b. How do you move a point to the center of a region it's in? I have a trigger set to where "WHEN a unit is ordered to move IF replay = false DO order triggering unit to stop and set the target of triggering order to a point variable." I also have a region in each hex. However I don't know how to move the point variable to the center of whichever region it's in
5. What's the best way to set up unit variables when there's a lot of units on the map? The best way I can think of is to do 8 variables per player (one for each of the 8 units) and make it an array size 100 or something so big they'll never hit the max (the game uses small armies). I don't know if there's a better way for this though. The goal is to get each unit set to a unique variable/array, for stats and movement purposes
Want an online image editor? Here, take your pick! http://mashable.com/2008/11/13/online-image-editors-2/
The page was found randomly on the web in less than 10 minutes, but I'm pretty sure there is at least one of them that could do whatever you want to do.
As far as I know, you can't merge all doodads into one. You can define groups however, and the same applies for units and regions. But I highly doubt it will reduce lag or bypass the doodads limitation. I can't remember the hotkey for grouping stuff but it's explained in one of the editor tips (must be something like CTRL+0 or something like that).
About the tick system, I'm pretty sure it's something more like this: 2 action points for a move, 3 action points for a shoot, X action points available per turn for units of type Y. "Ticks" are basically a cycle of actions performed X times per turn, where X is the maximum number of action points the most mobile unit can have. Just an example for a unit with 6 action points: can move 3 tiles away per turn, can shoot twice per turn, or move 1 tile away + shoot once per turn. Forget about the 100 ticks, it's the best way to get a headache. Your game system has to be the same for all units, the only difference is how many action points these units have. You just have to decrease the action points left per unit on each step of a tick, and if there is no point left the unit will just hold ground at each tick until the turn is over. The cycle of actions in a tick should apply to all units (one after another) to make it look like the actions are simultaneous. So basically, you will loop a few actions in a tick (checking if current unit has enough points, then do next action accordingly, remove points if a shoot or move was done, and finally switch to next unit and repeat the same process), as many times as there are units in the game TIMES how many ticks there are per turn. Yes, it's still a bit complicated, but as far as I know it's much simpler than this "1-33, 34-66" thing you were talking about... and it does the same thing. (I had a really hard time explaining how it's done in only a few lines, sorry if that wasn't entirely clear... but basically, remember that by analyzing the game mechanics thoroughly you will understand how simple and primitive the core really is compared to what the final product looks like)
For the movement arrows, the easiest way I can think of is to use beam actors. I'm not very familiar with these but I know you can make them go wherever you want as long as there is a point A and a point B for the beam to start and finish. The curves will probably not look that smooth though, but at least you can make a beam go from the center of a tile to the center of another tile with basic knowledge of how beams work. You can find tutorials here about beams, just search the forums. I can't really help you about this because I have never really spent time tweaking with beams in any of the maps I made so far, but this is the simplest method I can think of for now. Speaking of "now", it's really late so I'm going to bed!
I tried making a beam but it wouldnt work (i probably did something wrong) but for now, i can do waypoints (or whatever it is where, in the normal game, if you right click, then shift-right click, the unit will go where you first clicked THEN where you shift-clicked, and it shows those lines). However I can't figure out how to make part of the movement system. What I've done so far is:
-if a unit is ordered to move, and showing replay = false, order the unit to halt (he doesn't even turn :D)
-set the target point for the order as a variable
-DONT KNOW HOW TO move that point to the center of the region it's in (I have 1 region in each hex)
-once that point is centered, i also DONT KNOW HOW to get the game to pick which hexes to order the unit through on its way to the targeted hex. I know one of the deciding factors is if there is already a unit or elevation on the hex, but other than that...
-But once both of those are figured out, I'll create a point int he center of each hex it moves through then as the replay plays out, order the unit to move
as for the tick system...
If I understand your explanation right, you're saying to have [number of ticks] = [number of units in game] x [greatest possible actions for one unit]? For example, a fighter plane with one of the buffs has 12 movement and 3 shots per turn, so [NumUnits]x15? I'm still pretty confused by your description, but once I know what to do in 1 tick, it'll be much easier. The main thing I need to avoid is something like (ex): 2 units, one with 6 movement, the other with 3. They take turns moving until both have moved 3, and then the unit with 6 movement moves its other 3. I need the unit with 6 to move 2 hexes every time the unit with 3 moves 1
Why won't my dialog's title show up ON TOP OF its custom image? I set the image first, THEN the title, but its still an issue (see attached picture). The image i'm using is "assets\textures\ui_battlenet_tooltip_outline.dds"
How do you make a trigger for "kill all units of type (unit type) and owned by player (#)"?
I want each unit to have a health bar. I know to attach a dialog to the unit, and probably use a progress bar, but how do I link the dialog/progress bar to the unit's health?
What's the best way to set up unit variables when there's a lot of units on the map? The best way I can think of is to do 8 variables per player (one for each of the 8 units) and make it an array size 100 or something so big they'll never hit the max (the game uses small armies). I don't know if there's a better way for this though. The goal is to get each unit set to a unique variable/array, for stats and movement purposes
and of course, still need the movement/tick system stuff mentioned in the post above more than anything
thanks again for all the help
Don't use the dialog's title, create a "label" dialog item and set the priority of your dialog items so they render in the order desired.
Create unit group for all units of player X, loop through it (for each unit MyUnit in unit group MyUnitGroup), and kill/remove each unit.
Use unit groups to keep track of all of a player's units. If you need to store extra per-unit information, use "unit custom values" (extra custom data you can assign to units in triggers code).
I still haven't figured out how to move a point to the center of the region it's in. I thought I remembered "closest (region, point, unit, etc)" things in the trigger but I don't see any of them now. I've looked through every point and region possibility under Move Point and I just don't see how
you completely missed what I need. I know to set the point to a variable, and my point for destination IS the center of region x. But i need region x to be the CLOSEST region to the point variable that I'm moving
You mean you have a bunch of regions, and you need to find the closest region to the point P?
There's no native function for "closest" something that I'm aware of. "Closest region" is kind of ambiguous, I hope you don't mean the shortest distance to a region edge, do you mean the closest region center point? That would imply going through the list of regions and computing distance to center point.
But is this just to find in which hex tile a click lies? Then I would just use a little math based on that point's coordinates to compute the hex tiles, don't mess with 500000 regions.
But is this just to find in which hex tile a click lies? Then I would just use a little math based on that point's coordinates to compute the hex tiles, don't mess with 500000 regions.
Yes. I never mess with coordinates, so have no idea how I could set this up..
(still need the 2 questions up top, but also)
Okay so I'm finally (mostly) done with less important stuff - dialogs, pre-game, assigning players to maps etc. Now it's time for the GAME game part of it! However I've already got lots of questions >.<
The game I'm working on is called BattleDex. It's already out there as an independent game but no one knows about it so I'm hitting two birds with one stone while I learn more about mapmaking. But here's the details:
Turn-based, but not like player 1 > p2 > p1 > etc. Instead BOTH players issue their orders at the same time (with a 2min timer) and hit a submit button when they're done. When both players are done, the game plays out that turn as a Replay and both players' units move and act at the same time. Once the replay's over, the next turn begins and players start giving their next orders.
The replay is set up as a 100-tick system. So for example if a unit has 3 movement, it will move once between ticks 1-33, 34-66, and 67-100. If it attacks twice per turn, it'll shoot once between 1-50, and 51-100.
3. I can't even begin to think of a good way to set up the tick system above though. Any ideas?
4. Also, when a unit is ordered to move, it looks like the attached picture (with the number being how many turns itll take to get there).
a. Is there any actor/doodad I could use to make those blue arrows, or whats the best way to do that?
b. How do you move a point to the center of a region it's in? I have a trigger set to where "WHEN a unit is ordered to move IF replay = false DO order triggering unit to stop and set the target of triggering order to a point variable." I also have a region in each hex. However I don't know how to move the point variable to the center of whichever region it's in
5. What's the best way to set up unit variables when there's a lot of units on the map? The best way I can think of is to do 8 variables per player (one for each of the 8 units) and make it an array size 100 or something so big they'll never hit the max (the game uses small armies). I don't know if there's a better way for this though. The goal is to get each unit set to a unique variable/array, for stats and movement purposes
4a) Check out OneTwo's versus TD tutorial. You can basically create a unit (when the issue is ordered) which is invisible but moves very quickly to the target point and leaves blue arrows (as actors) along its path and then destroy them all when you need to.
4b) Should be in function -> Center of Region
5) Whats the problem with just using unit groups instead of arrays of units?
(still need the 2 questions up top, but also)
Okay so I'm finally (mostly) done with less important stuff - dialogs, pre-game, assigning players to maps etc. Now it's time for the GAME game part of it! However I've already got lots of questions >.<
The game I'm working on is called BattleDex. It's already out there as an independent game but no one knows about it so I'm hitting two birds with one stone while I learn more about mapmaking. But here's the details:
Turn-based, but not like player 1 > p2 > p1 > etc. Instead BOTH players issue their orders at the same time (with a 2min timer) and hit a submit button when they're done. When both players are done, the game plays out that turn as a Replay and both players' units move and act at the same time. Once the replay's over, the next turn begins and players start giving their next orders.
The replay is set up as a 100-tick system. So for example if a unit has 3 movement, it will move once between ticks 1-33, 34-66, and 67-100. If it attacks twice per turn, it'll shoot once between 1-50, and 51-100.
3. I can't even begin to think of a good way to set up the tick system above though. Any ideas?
4. Also, when a unit is ordered to move, it looks like the attached picture (with the number being how many turns itll take to get there).
a. Is there any actor/doodad I could use to make those blue arrows, or whats the best way to do that?
b. How do you move a point to the center of a region it's in? I have a trigger set to where "WHEN a unit is ordered to move IF replay = false DO order triggering unit to stop and set the target of triggering order to a point variable." I also have a region in each hex. However I don't know how to move the point variable to the center of whichever region it's in
5. What's the best way to set up unit variables when there's a lot of units on the map? The best way I can think of is to do 8 variables per player (one for each of the 8 units) and make it an array size 100 or something so big they'll never hit the max (the game uses small armies). I don't know if there's a better way for this though. The goal is to get each unit set to a unique variable/array, for stats and movement purposes
Want an online image editor? Here, take your pick!
http://mashable.com/2008/11/13/online-image-editors-2/
The page was found randomly on the web in less than 10 minutes, but I'm pretty sure there is at least one of them that could do whatever you want to do.
As far as I know, you can't merge all doodads into one. You can define groups however, and the same applies for units and regions. But I highly doubt it will reduce lag or bypass the doodads limitation. I can't remember the hotkey for grouping stuff but it's explained in one of the editor tips (must be something like CTRL+0 or something like that).
About the tick system, I'm pretty sure it's something more like this: 2 action points for a move, 3 action points for a shoot, X action points available per turn for units of type Y. "Ticks" are basically a cycle of actions performed X times per turn, where X is the maximum number of action points the most mobile unit can have. Just an example for a unit with 6 action points: can move 3 tiles away per turn, can shoot twice per turn, or move 1 tile away + shoot once per turn. Forget about the 100 ticks, it's the best way to get a headache. Your game system has to be the same for all units, the only difference is how many action points these units have. You just have to decrease the action points left per unit on each step of a tick, and if there is no point left the unit will just hold ground at each tick until the turn is over. The cycle of actions in a tick should apply to all units (one after another) to make it look like the actions are simultaneous. So basically, you will loop a few actions in a tick (checking if current unit has enough points, then do next action accordingly, remove points if a shoot or move was done, and finally switch to next unit and repeat the same process), as many times as there are units in the game TIMES how many ticks there are per turn. Yes, it's still a bit complicated, but as far as I know it's much simpler than this "1-33, 34-66" thing you were talking about... and it does the same thing. (I had a really hard time explaining how it's done in only a few lines, sorry if that wasn't entirely clear... but basically, remember that by analyzing the game mechanics thoroughly you will understand how simple and primitive the core really is compared to what the final product looks like)
For the movement arrows, the easiest way I can think of is to use beam actors. I'm not very familiar with these but I know you can make them go wherever you want as long as there is a point A and a point B for the beam to start and finish. The curves will probably not look that smooth though, but at least you can make a beam go from the center of a tile to the center of another tile with basic knowledge of how beams work. You can find tutorials here about beams, just search the forums. I can't really help you about this because I have never really spent time tweaking with beams in any of the maps I made so far, but this is the simplest method I can think of for now. Speaking of "now", it's really late so I'm going to bed!
I ended up just downloading Gimp for images..
I tried making a beam but it wouldnt work (i probably did something wrong) but for now, i can do waypoints (or whatever it is where, in the normal game, if you right click, then shift-right click, the unit will go where you first clicked THEN where you shift-clicked, and it shows those lines). However I can't figure out how to make part of the movement system. What I've done so far is:
-if a unit is ordered to move, and showing replay = false, order the unit to halt (he doesn't even turn :D)
-set the target point for the order as a variable
-DONT KNOW HOW TO move that point to the center of the region it's in (I have 1 region in each hex)
-once that point is centered, i also DONT KNOW HOW to get the game to pick which hexes to order the unit through on its way to the targeted hex. I know one of the deciding factors is if there is already a unit or elevation on the hex, but other than that...
-But once both of those are figured out, I'll create a point int he center of each hex it moves through then as the replay plays out, order the unit to move
as for the tick system...
If I understand your explanation right, you're saying to have [number of ticks] = [number of units in game] x [greatest possible actions for one unit]? For example, a fighter plane with one of the buffs has 12 movement and 3 shots per turn, so [NumUnits]x15? I'm still pretty confused by your description, but once I know what to do in 1 tick, it'll be much easier. The main thing I need to avoid is something like (ex): 2 units, one with 6 movement, the other with 3. They take turns moving until both have moved 3, and then the unit with 6 movement moves its other 3. I need the unit with 6 to move 2 hexes every time the unit with 3 moves 1
Why won't my dialog's title show up ON TOP OF its custom image? I set the image first, THEN the title, but its still an issue (see attached picture). The image i'm using is
"assets\textures\ui_battlenet_tooltip_outline.dds"
How do you make a trigger for "kill all units of type (unit type) and owned by player (#)"?
I want each unit to have a health bar. I know to attach a dialog to the unit, and probably use a progress bar, but how do I link the dialog/progress bar to the unit's health?
What's the best way to set up unit variables when there's a lot of units on the map? The best way I can think of is to do 8 variables per player (one for each of the 8 units) and make it an array size 100 or something so big they'll never hit the max (the game uses small armies). I don't know if there's a better way for this though. The goal is to get each unit set to a unique variable/array, for stats and movement purposes
and of course, still need the movement/tick system stuff mentioned in the post above more than anything
thanks again for all the help
Don't use the dialog's title, create a "label" dialog item and set the priority of your dialog items so they render in the order desired.
Create unit group for all units of player X, loop through it (for each unit MyUnit in unit group MyUnitGroup), and kill/remove each unit.
Use unit groups to keep track of all of a player's units. If you need to store extra per-unit information, use "unit custom values" (extra custom data you can assign to units in triggers code).
I still haven't figured out how to move a point to the center of the region it's in. I thought I remembered "closest (region, point, unit, etc)" things in the trigger but I don't see any of them now. I've looked through every point and region possibility under Move Point and I just don't see how
Set Variable, select a point as destination variable, Center of Region X.
you completely missed what I need. I know to set the point to a variable, and my point for destination IS the center of region x. But i need region x to be the CLOSEST region to the point variable that I'm moving
You mean you have a bunch of regions, and you need to find the closest region to the point P?
There's no native function for "closest" something that I'm aware of. "Closest region" is kind of ambiguous, I hope you don't mean the shortest distance to a region edge, do you mean the closest region center point? That would imply going through the list of regions and computing distance to center point.
But is this just to find in which hex tile a click lies? Then I would just use a little math based on that point's coordinates to compute the hex tiles, don't mess with 500000 regions.
Yes. I never mess with coordinates, so have no idea how I could set this up..
4a) Check out OneTwo's versus TD tutorial. You can basically create a unit (when the issue is ordered) which is invisible but moves very quickly to the target point and leaves blue arrows (as actors) along its path and then destroy them all when you need to.
4b) Should be in function -> Center of Region
5) Whats the problem with just using unit groups instead of arrays of units?