• 0

    posted a message on Randomizing terrain

    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.

    http://imageshack.us/a/img69/4947/screenshot2012123014111.jpg
    ^ 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.

    http://imageshack.us/a/img268/39/screenshot2012123014114.jpg
    ^ 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.

    http://imageshack.us/a/img546/5460/screenshot2012123014353.jpg
    ^ 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.

    Posted in: Terrain
  • 0

    posted a message on "add" palette missing for units and doodads

    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.

    Posted in: Galaxy Editor Bugs and Feedback
  • 0

    posted a message on "Cloaked" Map (hide build order)

    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.

    Posted in: Miscellaneous Development
  • 0

    posted a message on Little Square Box on the right side of the Game UI.
            <Frame type="Image" name="GameUI/UIContainer/ConsoleUIContainer/BattleNetButtonFriendsFrameImage" file="GameUI">
                <Visible val="false"/>
            </Frame>
    

    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.

    Posted in: UI Development
  • 0

    posted a message on List of wants For LoTV

    - 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).

    Posted in: General Chat
  • 0

    posted a message on HELP - Map file turned itself into a folder!
    Quote from admielke: Go

    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.

    Posted in: General Chat
  • 0

    posted a message on Running time of Algorithms
    Quote from lemmy734: Go

    @Ahli634: Go Could you elbaorate on how i would do the edit value thing. If the button is clicked how would the trigger get that text property?

    val = (Edit value of (Used dialog item) for (Triggering player)) <String>

    Posted in: Triggers
  • 0

    posted a message on Running time of Algorithms

    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.

    Posted in: Triggers
  • 0

    posted a message on Blizzard needs Europeans tonight
    Quote from Exaken: Go

    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.

    Posted in: General Chat
  • 0

    posted a message on Blizzard needs Europeans tonight
    Quote:

    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!

    Source

    Posted in: General Chat
  • 0

    posted a message on Flying Engineering bay

    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.

    Posted in: Data
  • 0

    posted a message on [solved] "Targets air and ground" displayed in UI incorrectly

    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.

    Posted in: Data
  • 0

    posted a message on [solved] Add weapon portait in UI (stupid ez question)

    Weapons have "options". One of them can is "hidden" which hides the weapon in the UI.

    Posted in: Data
  • 0

    posted a message on [UI]A sample map for Customized Health Bar

    Awesome, thanks. :D

    Quote from Doubleclick123: Go

    This makes me want to save up and get HoTS...

    You can do it in WoL, too.

    Posted in: General Chat
  • 0

    posted a message on Detect when Custom Value is changed?

    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.

    Posted in: Triggers
  • To post a comment, please or register a new account.