• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

[Crash] Custom Map Issue: (FPS/Lag Crash)

Status
Not open for further replies.
Level 1
Joined
Jun 18, 2020
Messages
3
Howdy all,

I have a problem and I was hoping y'all could lend a hand!

First, forgive me - I am no expert in coding or computer terminology and will attempt to explain my issue as best as I can with the terms and knowledge I have. I have searched through dozens of forum posts (mostly dissimilar problems) and solutions for Reforged crashes to no avail (updating drivers, allotting computer power to WC3 etc.).

I am currently developing a map called "The Winter Isle Incident" (currently in a early to mid beta) and I am experiencing the following issues:
- Lag out, such that the frame rate drops massively (approx 1 frame per 30 seconds, skipping about 1-7 seconds of frames at a time) (including all UI controls until a menu can be processed to be opened after some time, thereafter the game can be interacted with normally until it is un-paused)
- Occurs at different points in the game depending on the number of units on the map (ranging anywhere from 7 seconds in to upwards of 30 minutes)
- This lag will never end (waiting, even reloading a save from this state, etc.)
- However, sounds seem to play almost normally during this state​

Some relevant notes:
- The Warcraft 3 client suddenly has too much to handle at once, hence the crash... But why?
- This is almost certainly related to the number of units on the map: there are around 750 units at start and possibly several hundred more at once in the game. There was a point where I had 1000-1300 units at start, and this was the only instance to crash the game only after 7 seconds. In my own test, adding a couple hundred arbitrary units seems to speed up the crash as well
- I attempted to isolate the problem by deducing what triggers would run when these problems occur: it is probably related to unit spawns and unit group-based triggers
- Not one single trigger seems to cause it (I've gone through the triggers pretty thoroughly, testing to see if the crash stops if certain groups of triggers are disabled - the only trigger set that seems to stop the problem is the one that produces a large number of units)
- The crash has occurred on everything from ability cast, to unit spawn, to seemingly random points of time
- The crash sometimes kicks me out of the program entirely, though this is rare
- Breaking up the triggers that periodically spawn units (ie, one group on 29.99 seconds, 29.98 seconds, does not solve the problem)
- There are a few triggers that leak in general (unit group and point leaks, etc.), but they do not seem related to the problem at hand (timewise, etc.) in my opinion
- This does not occur on any other melee or custom map with one exception (I played a multiplayer game called "Holy War: Anniversary 1.21B" a few days ago which produced a very similar crash after 30-50 minutes on my computer, without booting me from the game like a normal lag out would)
- Not related to the damage system or shield trigger system I have on the map
- There are no strange triggers or abilities that would seem to cause this (periodic event on 0.00 seconds, 0 AoE Forked Lightning, etc. like those here [Crash] - List of WarCraft III Crashes)
- I am running the game on classic (I've tested a variety of graphics settings to no avail)
- Although this map has a lot of units, other custom games can have many more units, but this crash does not occur on those maps​

Disclaimers:
- I haven't tested this issue with other computers or on multiplayer
- I occasionally experience lag spikes, typically in multiplayer custom games, that resemble this problem but are usually only temporary or might boot me from the game instance (particularly games like Wintermaul, Pokemon Legends etc. - but I probably play those games more than others anyway)
- This crash began early on in development - recent additions would not be as relevant to the crash as earlier ones - I can consult my notes to see what is earlier​

If y'all have any advice or insight, it would be greatly appreciated!!!

Let me know if you need any more information. I will attach the map file as well. (There are some units for testing at the base, they're not really meant to be used. Also Chaos Mode is not finished)

Edit: I've attached the only major lead that I have - the kind of spawning trigger that seems most related to the problem - here is a typical example:
  • Events
    • Time - Every 29.98 seconds of game time
  • Conditions
    • Enemy_Status[3] Equal to 0
  • Actions
    • Set VariableSet Point = (Center of FjordProduce <gen>)
    • Set VariableSet Fjord_Spawn_UGroup = (Units of type No unit-type)
    • Unit - Create 1 Black Ice Aberration for Player 15 (Turquoise) at Point facing Default building facing degrees
    • Unit Group - Add (Last created unit) to Fjord_Spawn_UGroup
    • Unit - Create 1 Black Ice Aberration for Player 15 (Turquoise) at Point facing Default building facing degrees
    • Unit Group - Add (Last created unit) to Fjord_Spawn_UGroup
    • Unit - Create 1 Elite Guardian for Player 15 (Turquoise) at Point facing Default building facing degrees
    • Unit Group - Add (Last created unit) to Fjord_Spawn_UGroup
    • Unit - Create 1 Corrupted Fjordnite for Player 15 (Turquoise) at Point facing Default building facing degrees
    • Unit Group - Add (Last created unit) to Fjord_Spawn_UGroup
    • Unit - Create 1 Corrupted Fjordnite for Player 15 (Turquoise) at Point facing Default building facing degrees
    • Unit Group - Add (Last created unit) to Fjord_Spawn_UGroup
    • Unit - Create 1 Corrupted Fjordnite for Player 15 (Turquoise) at Point facing Default building facing degrees
    • Unit Group - Add (Last created unit) to Fjord_Spawn_UGroup
    • Unit - Create 1 Corrupted Ice Dragon for Player 15 (Turquoise) at Point facing Default building facing degrees
    • Unit Group - Add (Last created unit) to Fjord_Spawn_UGroup
    • Unit - Create 1 Corrupted Ice Dragon for Player 15 (Turquoise) at Point facing Default building facing degrees
    • Unit Group - Add (Last created unit) to Fjord_Spawn_UGroup
    • Unit - Create 1 Black Ice Corruption for Player 15 (Turquoise) at Point facing Default building facing degrees
    • Unit Group - Add (Last created unit) to Fjord_Spawn_UGroup
    • Custom script: call RemoveLocation(udg_Point)
    • Unit Group - Pick every unit in Fjord_Spawn_UGroup and do (Actions)
      • Loop - Actions
        • Set VariableSet Point = (Random point in FjordPoint12 <gen>)
        • Unit - Order (Picked unit) to Set Rally Point To Point
        • Unit - Order (Picked unit) to Attack-Move To Point
        • Custom script: call RemoveLocation(udg_Point)
    • Custom script: call DestroyGroup(udg_Fjord_Spawn_UGroup)
 

Attachments

  • The Winter Isle Incident.w3m
    2.3 MB · Views: 34
Last edited:
I suspect a severe problem with memory leaks or periodic enumerations here.

Deactivate triggers one by one until the problem stops. Then post said trigger.

Posting your map and expecting others to do the dirty work for you wont get you anywhere. Its your job to find the faulty triggers. Then we can help.
 
Level 1
Joined
Jun 18, 2020
Messages
3
I suspect a severe problem with memory leaks or periodic enumerations here.

Deactivate triggers one by one until the problem stops. Then post said trigger.

Posting your map and expecting others to do the dirty work for you wont get you anywhere. Its your job to find the faulty triggers. Then we can help.

Typical Hive Workshop/Programmer sass.

I never asked you to do the hard part for me. I only asked for any insight or advice. Thanks for that part, will look through triggers more thouroughly.

Edit: I'm only trying to be as forefront as possible with the information I have to avoid wasting everyone's time, in my opinion.
 
Last edited:
Status
Not open for further replies.
Top