For those who don't know, OverPy is a high-level language for the workshop: a custom built language that compiles to the workshop language.
OverPy allows you to manage your gamemodes much more easily, thanks to its ability to code with modern development practices: multiple files, switches, dictionaries, macros, function macros, enums, built-in JS preprocessing…
I haven't posted an update in quite a few months, so here's the big changes since then!
The use of a proper AST enabled me to optimize every last bit of gamemodes: see this issue for the full list of optimizations.
This includes for example math formulas (
0.8623), array functions (
A), use of built-in functions (
getNumberOfPlayers(B)), etc, and even some advanced optimizations such as removing a rule if there are only control flow actions in it.
However, there are also size optimizations that exploit some quirks of the element count. As such, when possible, the optimizer replaces
true, or even
null. The saves are only one element per replacement (3 for the null vector) but they add up fast.
For even more size optimisations, several replacement compiler directives were added:
#!replaceTeam1ByControlScoringTeam #!replace0ByCapturePercentage #!replace0ByPayloadProgressPercentage #!replace0ByIsMatchComplete #!replace1ByMatchRound
These replacements need to be applied on a per-gamemode basis (as they don't work with every gamemode), and can squeeze out the last elements.
The results, when applied to gamemodes near the element limit, are pretty high:
- Loot Quest – Regular Maps (4QV99) by Delwion : 19998 -> 18750 (-1248)
- OverHammer (KYGBP) by Kinkku : 19865 -> 17664 (-2201)
- Among Us (6C777) by Momaker: 19909 -> 17575 (-2334)
Workshop settings extensions
Some quality of life stuff:
- Workshop settings can now have a blank category, or even a blank name
- Workshop settings can have the same name in two different categories (such as two settings both named "health" in categories "team 1" and "team 2")
- Workshop settings can have a sort order (the default is 0; settings with the same order are ordered alphabetically).
With the new
& string escape you can now insert entities into your strings, that compile to one of several "neat" unicode characters.
"This is a black square: &black_square;"
This allows you to not have to search for a unicode character you can input.
To get started with the language even more easily, OverPy now has a wiki: https://github.com/Zezombye/overpy/wiki
The element count of a gamemode is now displayed when compiling; in the future, optimizations will take note of this count (such as privileging size over speed when close to the element limit).
OverPy now has a discord if you need help, or if you just want to provide feedback: https://discord.gg/4gBSV9s
Thanks for reading and feel free to ask your questions in the comments 🙂
Source: Original link
© Post "OverPy v6.0: Insane optimizations, workshop settings extensions, built-in unicode selector, wiki, element count, & more!" for game Overwatch.
Top 10 Most Anticipated Video Games of 2020
2020 will have something to satisfy classic and modern gamers alike. To be eligible for the list, the game must be confirmed for 2020, or there should be good reason to expect its release in that year. Therefore, upcoming games with a mere announcement and no discernible release date will not be included.
Top 15 NEW Games of 2020 [FIRST HALF]
2020 has a ton to look forward to...in the video gaming world. Here are fifteen games we're looking forward to in the first half of 2020.