I'm creating random dungeons including doodad placements in my map "Dia blo - Mortal Shroud" playable on US, EU and HotS beta.
For my cathedral I'm using rectangles with randomized dimensions as rooms and try to place them. I use the starting point as a doorway, so every new room is connected to the old one. Bigger rooms have a chance to spawn 4 pillars.
Basically you start with a random room placed somewhere in the dungeon area and then you try 2k times to add a random room to a random wall.
^ cathedral
For my catacombs, I'm using the same concept, just with different dimensions and a variance in the door wall side to create wider pathways. In addition to that I try to place rooms within free areas within rooms. In the end I try to add a lot of smallest room sizes which creates the unique look with the edges and corners.
Using a 2D array instead of units on the map for the cellular automata generation greatly improved the performance in my map.
I even created a system can add rivers to my caves with walkable bridges, but I don't recommend creating rivers with a scale of 1x1 as I did as the terrain modification via actors isn't great or customizeable in that scale. I "fixed" a few spots with bridge tiles for now...
Doodads at walls
For doodads at walls, I'm "simply" looking for correct spots. Every room I create has a marker unit in its center that saves data about its dimensions and its door count.
After the dungeon was created, I throw these markers into a system that randomly fills rooms with a random theme. Then it reads out the info, searches all potentially usable spots and picks random spots to create something there. In the end you will find libaries, shrine rooms, sleeping halls, work places, statue rooms, torture rooms...
Lag & solutions
You will most likely create a ton of lag ingame, if you attempt to create multiple dungeons with units forming walls. The unit limit is 15k, I think, but 9k can kill most computers already.
I'm using approx 1k of units per dungeon level and added a system that "unloads" levels. In the end I will always have approx 2k-4k units on my map.
Also, I'm hiding the snapshots in the "unloaded" dungeon regions (=building image in fog) because 4k of these on the map created a lot of lag.
"Unloading" means that I'm saving the data of the units in the dungeon into the global data table and read them out again when the dungeon needs to be loaded.
I found out that saving is faster, if the key already exists in the data table. So, if the amount of data in your dungeon can grow, you should try to create a few buffer slots. 2 million entries in the data table is no problem. Just loading and saving takes some time.
I recently added clusters or classes of unit types that I store a specific amount of custom values. At first I saved all 64 custom values, but only saving up to their upper border improved the loading/saving performance due to less load.
Outside areas and D3 and D2/1
I have not much experience with "outside" areas, but that can be made fairly simple. For example, Diablo 3 uses a set of huge squares that they place inside their static outside area. As you can see, the work amount to create these areas can be considerably different. It depends how in depth randomness you want to use. D3's inside dungeons are only huge random area parts added onto each other. Diablo 2 and 1 used a similar system, but they used much smaller tiles than D3. That's why D3 looks mostly the same... everywhere. However, D3s system should be generated very, very fast.
Since I've never used a mac, I have no idea how things work on it, but in Windows, there are 2 things the editor uses:
- EditorVariables.txt in your operating system's profile folder
- registry entries for editor things
Maybe it's possible to "fix" your problem by deleting the variables text document or deleting (make backup before) of the editor's registry changes.
Uninstalling something doesn't always delete everything created by a program.
You can use the UI module, too. It's using the same format as imported layout files, but you don't have to add them to a custom layout list as they are loaded automatically.
Making changes is much faster with it.
- Conditions read out of a bank file (like a condition to play more difficult game modes)... would solve my future problem with multiple difficulties and players joining without having a hero to play at that difficulty level
- bigger terrain limit than 256x256
- Locally running triggers to use local things only... (simple example: hover over item causes a panel to display to the player without delay. Obviously the show/hidden state of that panel needs to be locked.)
- Observer dialogs that they can use and interact with. This would allow observer features that are present in other games like showing dialogs with graphs to observers, when that observer clicks a special button that only exists on his own UI.
- Options for the chat to only display messages from a specific player group to the player like players not being able to see spectator chat.
- more cliff levels
- altering terrain textures via trigger (if it's not possible with startools and doodads)
- Possibility to alter all settings via triggers that currently can't be set with triggers. For example: Click sound for buttons or the references within a unit like the unit that spawned that unit (I believe that info exists and is receivable, but I would like to alter it on the fly).
When I try to open the map it says, "Files are missing from your StarCraft II installation."
This means that the map file is broken. Map files are actually mpq files. It's comparable to zip and rar files and is an archive format created by Blizzard.
They contain multiple files. If you extract them or save the map as componentsList via "Save as", you will see those files in a folder.
To open the map, you need to open the "componentsList.SC2Components" file with the editor.
You should always be able to "fix" broken map archives by extracting their content using a mpq-editor and opening the components file in the editor and then saving them again as a single map file.
If splitting up a trigger from "any player" to specific players adds to your comparison count, then you are doing something wrong.
Other things you could do:
- check dialog visibility for player to filter out not-required checks. I use that to only check dialog items that have a real chance to exist for a player. This can prevent multiple activations of some trigger logic due to battle.net latency, too.
- you could use the "edit value" of a button to store a string that you use on click to directly know which one was clicked without iterating over arrays.
Also, most data types are internally just integers. So, comparing dialog items is fast.
When I'm updating my inventory + tooltips and character screen and hero stats, I'm actually executing a massive amount of comparisons and actions, but it's not creating noticeable lags.
The quote tag needs to be on it's own line, without any other text. Also, if they need people from europe why are they posting it on the us forums?
I don't know, but they do those stupid things from time to time...
Another example is posting cutscene documentation in general discussion instead of custom maps on EU or just not linking that cutscene documentation at their other map-making tutorials.
Tomorrow, (Wednesday, December 19), from 9:30 a.m. to 5:00 p.m. PST, we will be performing a game server test on the StarCraft II beta servers. The beta service will be up and available to you during this time, and we expect that there will be some impact on beta latency.
We'd really like beta testers from Europe to play the beta as much as possible during this time. Our testing will begin at 6:30 p.m. Central European Time, and will conclude at 2:00 a.m. CET on Thursday, December 20. During that time, you may find that you experience better latency than usual in the beta in Europe, and we would love to have as many beta testers as possible from Europe playing during this time.
Thank you very much for testing Heart of the Swarm with us!
You can turn actors via adding a site operation to the "Host Site Operation" list the flying engibay's actor.
The site operation that you need can be a duplicate of "Sop 180", so I would start duplicating it and rename it to something like "SopFlyingEngiBayRotation".
Then add it to the list of your flying engi bay and place one in the terrain editor and set its facing properly.
After that, switch back to your new site operation in the data editor and play with the values in the "Forward" field. The flying engibay should update immediatly.
You should be able to find good values for the required rotation then.
Set the weapon's target filter to require ground. It seems it's checking "required" in that filter for the text line.
Excluding air doesn't change that line.
Excluding air wouldn't make it possible to target colossi though.
0
I'm creating random dungeons including doodad placements in my map "Dia blo - Mortal Shroud" playable on US, EU and HotS beta.
For my cathedral I'm using rectangles with randomized dimensions as rooms and try to place them. I use the starting point as a doorway, so every new room is connected to the old one. Bigger rooms have a chance to spawn 4 pillars.
Basically you start with a random room placed somewhere in the dungeon area and then you try 2k times to add a random room to a random wall.
^ cathedral
For my catacombs, I'm using the same concept, just with different dimensions and a variance in the door wall side to create wider pathways. In addition to that I try to place rooms within free areas within rooms. In the end I try to add a lot of smallest room sizes which creates the unique look with the edges and corners.
^ catacombs
For my caves, I'm using a http://roguebasin.roguelikedevelopment.org/index.php?title=Cellular_Automata_Method_for_Generating_Random_Cave-Like_Levels as a core algorithm. I'm throwing a few generated dungeons away when they aren't connected. This dungeon generation is the slowest.
^ caves
Using a 2D array instead of units on the map for the cellular automata generation greatly improved the performance in my map.
I even created a system can add rivers to my caves with walkable bridges, but I don't recommend creating rivers with a scale of 1x1 as I did as the terrain modification via actors isn't great or customizeable in that scale. I "fixed" a few spots with bridge tiles for now...
Doodads at walls
For doodads at walls, I'm "simply" looking for correct spots. Every room I create has a marker unit in its center that saves data about its dimensions and its door count.
After the dungeon was created, I throw these markers into a system that randomly fills rooms with a random theme. Then it reads out the info, searches all potentially usable spots and picks random spots to create something there. In the end you will find libaries, shrine rooms, sleeping halls, work places, statue rooms, torture rooms...
Lag & solutions
You will most likely create a ton of lag ingame, if you attempt to create multiple dungeons with units forming walls. The unit limit is 15k, I think, but 9k can kill most computers already.
I'm using approx 1k of units per dungeon level and added a system that "unloads" levels. In the end I will always have approx 2k-4k units on my map.
Also, I'm hiding the snapshots in the "unloaded" dungeon regions (=building image in fog) because 4k of these on the map created a lot of lag.
"Unloading" means that I'm saving the data of the units in the dungeon into the global data table and read them out again when the dungeon needs to be loaded.
I found out that saving is faster, if the key already exists in the data table. So, if the amount of data in your dungeon can grow, you should try to create a few buffer slots. 2 million entries in the data table is no problem. Just loading and saving takes some time.
I recently added clusters or classes of unit types that I store a specific amount of custom values. At first I saved all 64 custom values, but only saving up to their upper border improved the loading/saving performance due to less load.
Outside areas and D3 and D2/1
I have not much experience with "outside" areas, but that can be made fairly simple. For example, Diablo 3 uses a set of huge squares that they place inside their static outside area. As you can see, the work amount to create these areas can be considerably different. It depends how in depth randomness you want to use. D3's inside dungeons are only huge random area parts added onto each other. Diablo 2 and 1 used a similar system, but they used much smaller tiles than D3. That's why D3 looks mostly the same... everywhere. However, D3s system should be generated very, very fast.
0
Since I've never used a mac, I have no idea how things work on it, but in Windows, there are 2 things the editor uses:
- EditorVariables.txt in your operating system's profile folder
- registry entries for editor things
Maybe it's possible to "fix" your problem by deleting the variables text document or deleting (make backup before) of the editor's registry changes.
Uninstalling something doesn't always delete everything created by a program.
0
If a unit's "Unit: Score Result" field is set to "BuildOrder", then it will appear in the build order list in the score screen.
0
You can use the UI module, too. It's using the same format as imported layout files, but you don't have to add them to a custom layout list as they are loaded automatically.
Making changes is much faster with it.
0
- Conditions read out of a bank file (like a condition to play more difficult game modes)... would solve my future problem with multiple difficulties and players joining without having a hero to play at that difficulty level
- bigger terrain limit than 256x256
- Locally running triggers to use local things only... (simple example: hover over item causes a panel to display to the player without delay. Obviously the show/hidden state of that panel needs to be locked.)
- Observer dialogs that they can use and interact with. This would allow observer features that are present in other games like showing dialogs with graphs to observers, when that observer clicks a special button that only exists on his own UI.
- Options for the chat to only display messages from a specific player group to the player like players not being able to see spectator chat.
- more cliff levels
- altering terrain textures via trigger (if it's not possible with startools and doodads)
- Possibility to alter all settings via triggers that currently can't be set with triggers. For example: Click sound for buttons or the references within a unit like the unit that spawned that unit (I believe that info exists and is receivable, but I would like to alter it on the fly).
0
This means that the map file is broken. Map files are actually mpq files. It's comparable to zip and rar files and is an archive format created by Blizzard.
They contain multiple files. If you extract them or save the map as componentsList via "Save as", you will see those files in a folder.
To open the map, you need to open the "componentsList.SC2Components" file with the editor.
You should always be able to "fix" broken map archives by extracting their content using a mpq-editor and opening the components file in the editor and then saving them again as a single map file.
0
val = (Edit value of (Used dialog item) for (Triggering player)) <String>
0
If splitting up a trigger from "any player" to specific players adds to your comparison count, then you are doing something wrong.
Other things you could do:
- check dialog visibility for player to filter out not-required checks. I use that to only check dialog items that have a real chance to exist for a player. This can prevent multiple activations of some trigger logic due to battle.net latency, too.
- you could use the "edit value" of a button to store a string that you use on click to directly know which one was clicked without iterating over arrays.
Also, most data types are internally just integers. So, comparing dialog items is fast.
When I'm updating my inventory + tooltips and character screen and hero stats, I'm actually executing a massive amount of comparisons and actions, but it's not creating noticeable lags.
0
I don't know, but they do those stupid things from time to time...
Another example is posting cutscene documentation in general discussion instead of custom maps on EU or just not linking that cutscene documentation at their other map-making tutorials.
0
Source
0
You can turn actors via adding a site operation to the "Host Site Operation" list the flying engibay's actor.
The site operation that you need can be a duplicate of "Sop 180", so I would start duplicating it and rename it to something like "SopFlyingEngiBayRotation".
Then add it to the list of your flying engi bay and place one in the terrain editor and set its facing properly.
After that, switch back to your new site operation in the data editor and play with the values in the "Forward" field. The flying engibay should update immediatly.
You should be able to find good values for the required rotation then.
I didn't test this, but I think this should work.
0
Set the weapon's target filter to require ground. It seems it's checking "required" in that filter for the text line.
Excluding air doesn't change that line.
Excluding air wouldn't make it possible to target colossi though.
0
Weapons have "options". One of them can is "hidden" which hides the weapon in the UI.
0
Awesome, thanks. :D
You can do it in WoL, too.
0
Create an action definition that has the unit as parameter that reacts to it accordingly and call it after every change that needs to be handled.