You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Sep 19, 2022. It is now read-only.
Bring SC-level input (micro-play) to Shotcaller. We’d like to enable this “abstraction of play” as its own module. I.e. controlling an individual Leader unit (and often their summons/copies/..) in the game.
This may not be part of the standard mode of play in Shotcaller, but it’s very useful for enabling alternative modes that more closely resemble the traditional way of playing MOBAs. This will also help us think more carefully about what types and amounts of actions should be available to a bot’s micro-play.
Input still wouldn’t be instant. Playing at the most granular micro-level, controlling a Leader around, all players are subject to the same 2-second latency. As such, you’ll rarely have to rely upon your reaction skills. What really matters is your shortest-term foresight.
Milestone 1
Implement most of text-rts features in Shotcaller:
Select units (left click)
Deselect units (left click empty space or another unit, or press Esc)
M-move (move to destination, ignore enemies)
A-move (move to dest., fight if meet enemies)
Stop order.
Hold position order.
Focus order (move to and attack specific unit)
Auto-groups & quick-selection (see below).
As an example we have a TreePerson leader who can summon a small group of units. Once that group is summoned, the player should be able to hit Tab to switch control over to that group of units (quick-selection). Hit tab again to switch back.
We do NOT need:
drag-selection.
build mode
select all nearby
add units to current selection
Control groups (or rather, control groups should be hardcoded. E.g. Lone druid would come with two control groups).
Camera movement
Milestone 2
Use & targeting of abilities.
Moving camera
...
The text was updated successfully, but these errors were encountered:
I believe that Milestone 1 could be further divided into 3 major steps:
Preparation of environment:
Resource to set game mode. Options could be "default" and "micro-input". Should be change-able in-game and some systems (eg. Creep spawner, simple ai movement) should check it's value before running. Reason is that if micro-input is to be a separate module, then there will be a lot of systems that will be relevant only to this module, and vice versa.
Custom game start/map with no creep spawning and all units idle. Further steps would add unit orders, therefore units should not do anything before any order is given.
Add mouse support and cursor to the font-end. (Kinda works, but has some serious issues)
Unit selection:
Decide on architecture. What part of the game stores what units are selected? Is this information stored in the unit itself, or are selected entity id's stored in a separate container?
Implement selection of single unit
Implement deselect by clicking empty space or selecting another unit.
Multiple unit selection.
Auto control groups (automatically assigned control group for each leader and their summons if available).
Unit orders and unit AI:
OrderQueue component and UnitOrder type.
Review unit AI (units should behave in different ways depending on what their current Order is)
Implement idle order behaviour. Basically unit behaviour when no active UnitOrder is present. At current stage it would be: unit stands in place, moves and attacks enemy if it enters aggression radius.
Implement M-move order.
Implement stop order (clears OrderQueue of all orders, sets current order to idle)
I'm gonna implement mouse support since I'm also gonna build the item buy system #16 that needs this dependency. I checked and bracket-lib has minimal mouse support with position and clicks data. I'm thinking of having a Selectable tag component attached to every selectable entity so we can iterate over it and check if the mouse position == entity position and then spawn a SelectEvent.
Bring SC-level input (micro-play) to Shotcaller. We’d like to enable this “abstraction of play” as its own module. I.e. controlling an individual Leader unit (and often their summons/copies/..) in the game.
This may not be part of the standard mode of play in Shotcaller, but it’s very useful for enabling alternative modes that more closely resemble the traditional way of playing MOBAs. This will also help us think more carefully about what types and amounts of actions should be available to a bot’s micro-play.
Input still wouldn’t be instant. Playing at the most granular micro-level, controlling a Leader around, all players are subject to the same 2-second latency. As such, you’ll rarely have to rely upon your reaction skills. What really matters is your shortest-term foresight.
Milestone 1
Implement most of text-rts features in Shotcaller:
As an example we have a TreePerson leader who can summon a small group of units. Once that group is summoned, the player should be able to hit Tab to switch control over to that group of units (quick-selection). Hit tab again to switch back.
We do NOT need:
Milestone 2
The text was updated successfully, but these errors were encountered: