-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add proper round-based gamemode support #978
Comments
This is now generally possible with actions, triggers, and variables, but round-based XMLs are a bit of a mess. I thought I'd note down an idea for a simpler approach. I'm not strongly in favour of this particular approach but I do think we should do something. Concept Example<stages repeat="true">
<stage
id="waiting-area"
duration="10s"
>
<spawns>
<spawn team="blue" kit="empty-kit" region="blue-waiting-spawn"/>
<spawn team="red" kit="empty-kit" region="red-waiting-spawn"/>
</spawns>
</stage>
<stage
id="in-game"
win-condition="is-team-winning"
points="1"
on-end="clear-items"
>
<spawns>
<spawn team="blue" kit="game-kit" region="blue-gaming-spawn"/>
<spawn team="red" kit="game-kit" region="red-gaming-spawn"/>
</spawns>
</stage>
</stages>
<filters>
<stage id="in-waiting-area" stage="waiting-area"/>
<stage id="in-game" stage="in-game"/>
</filters>
<actions>
<end-stage id="end-stage-action">
<win-stage id="win-stage-action" stage="in-game">
</actions> Concept Details
MotivationI'm pretty sure this is all do-able via actions and filters, but current stage-based maps have messy and complex XMLs. It's basically impossible for someone new to XML to understand, and still pretty hard for people like me or mame to be confident there's no XML bugs. Adding new, fairly simple features to a stage-based XML is nontrivial. It's also not at all clear, from reading Moonshine's XML, for example, how the map works at all. I'm not sure if "understandable XMLs" is a goal of PGM but I think it's a nice feature. If we added something like this, new XMLers would probably be able to understand and even write XMLs for round based maps, and experienced mapmakers wouldn't have to spend so much time on them. |
I think round-support makes sense on a PGM level, however i dont see its implementation being anything alike to the concept you proposed. While i understand the motivation of "making complex features more accessible" i feel it fails at that. |
Add proper round-based gamemode support
There's been a few maps that explored round-based gamemodes in the recent past, like Sunstroke CP and Duels: Basilica or Duels: Riot
In all of these maps once you capture the objective of the map, all players are tped back to spawn for the next round
All of these maps also face the issue of entities like items or arrows not being cleared which, if abused, completely breaks the map. Examples being teams stacking arrows&gaps from prior rounds or just overall increase of everyones arrows cause more and more arrows that were missed are stuck in walls for you to pick up.
Note that these are only conquest maps so anything that includes blocks would absolutely not work the way these maps were made
Not to mention that the sunstroke xml is overall really weird and the way hill decay works makes some gameplay problematic
I propose some way to define rounds in xmls, how the next round starts and what on the map resets. options being items, other entities, blocks , objectives. So you would be able to choose if blocks placed on the map reset or not.
In the case of hills (which currently can kinda reset) it should be a better option than decay and captured-decay. it should just fully be based around if a round has ended or not for the objective to reset.
Then the option to determine if rounds are blitz/ if you can respawn during a round should exist.
Also you should be able to define when the next round starts. If thats only via an objective being captured or in the blitz case when only one team is alive so they dont have to go on completing the objective when they already killed everyone.
The text was updated successfully, but these errors were encountered: