Staredit Network > Forums > SC1 UMS Theory and Ideas > Topic: [EUD] Multiplayer Aiming System
[EUD] Multiplayer Aiming System
Jul 30 2010, 10:12 pm
By: Cinolt  

Jul 30 2010, 10:12 pm Cinolt Post #1



Other than FRAGS, which suffers latency and distance problems, and the Elementa aiming system which requires identical arenas for each player, the only other multiplayer aiming systems involved unit direction. This system revisits the unit direction system as well as detection of the patrol now any command, giving it a much better aiming feel. Essentially, it just detects when the unit has issued a command and its direction at the time, which would be toward the destination. With the direction many things can be done, such as a gunshot. An experimental map I made is posted below, it could be improved, but it's just to show the concept.

http://www.staredit.net/?file=2275

Post has been edited 2 time(s), last time on Jul 31 2010, 12:08 am by yoonkwun.



None.

Jul 30 2010, 10:42 pm payne Post #2

:payne:

4,8k triggers :crazy:



None.

Jul 30 2010, 11:00 pm Magicide Post #3

Sleeping wolves wake hungry.

This can be implemented in multiplayer?

Interesting concept. I might have to try it.




Jul 30 2010, 11:46 pm ImagoDeo Post #4



Quote from Magicide
This can be implemented in multiplayer?

Interesting concept. I might have to try it.

Probably won't work on Macs, or might crash them, but since when has that stopped us? :P

Yet another amazing EUD map by Yoonkwun. I appreciate all your hard work. ^^



None.

Jul 31 2010, 5:45 am rockz Post #5

ᴄʜᴇᴇsᴇ ɪᴛ!

Note that EUD Actions make for a much better aiming system, since you can just use a really fast air unit.

This is 16 directions, correct? Does idiotic unit movement cause problems often? How about turning radius? I suppose that the shared multiplayer aspect delays it enough so that you won't have turning radius be a factor.



"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"

Jul 31 2010, 6:25 am Cinolt Post #6



Even so, you still have to press a hotkey then order it, then hotkey back to your unit. With EUD actions, the best aiming system is direction detection through difference of unit coordinate and order coordinate (obtained with EUD Binary Countoffs), detecting the order, then using a 1-location pixel grid by setting the location boundaries manually.

The map uses 16 directions, but it can be utilized for all 256. Anomalies in aiming occur more frequently when the unit is ordered large distances; there's no fix for this, however it can be viewed as analogous to human error when trying to aim far away. I've found that there should be 3 hyper cycles between the order detection and firing of the effect. I guess for optimal speed it could check for the same direction between 2 cycles and fire then.



None.

Aug 4 2010, 11:34 pm samsizzle Post #7



Could you share the EUD addresses?



None.

Aug 5 2010, 12:10 am Cinolt Post #8



Unit direction is already documented somewhere. For the command EUD, the address itself is the same as the unit owner:

Code
Address: 0x59CCF4
EP: 19044


It's on the unitnode struct so you can convert it accordingly.

The format for the DWORD:

Code
WW XX YY ZZ
WW = Unit Owner (0-based player ID)
XX = Command ID
YY = Command State (0 or 1)
ZZ = Unknown, something to do with spell commands


Quick reference:

Code
STOP - Memory(19044, AtLeast, 768);
Memory(19044, AtMost, 768+11);

MOVE -  Memory(19044, AtLeast, 67072);
Memory(19044, AtMost, 67072+11);

ATTACK -  Memory(19044, AtLeast, 69120);
Memory(19044, AtMost, 69120+11);

PATROL -  Memory(19044, AtLeast, 104448);
Memory(19044, AtMost, 104448+11);

HOLD POSITION -  Memory(19044, AtLeast, 92928);
Memory(19044, AtMost, 92928+11);


A lot of the spell commands can be detected but they seem to erratically mess with the Unknown byte which unfortunately is the highest-order byte. Dark Swarm/Plague would actually fit really well for the aiming purpose, from what I tested a while back it only changes the Unknown byte to 2 or 0.

Post has been edited 1 time(s), last time on Aug 5 2010, 12:40 am by yoonkwun.



None.

Aug 5 2010, 12:37 am samsizzle Post #9



thanks a lot



None.

Aug 12 2010, 2:23 pm stickynote Post #10



How would you use EUD actions?



None.

Aug 12 2010, 4:05 pm O)FaRTy1billion[MM] Post #11

👻 👾 👽 💪

http://www.staredit.net/topic/10525/



TinyMap2 - Latest in map compression! ( 7/09/14 - New build! )
EUD Action Enabler - Lightweight EUD/EPD support! (ChaosLauncher/MPQDraft support!)
EUDDB - topic - Help out by adding your EUDs! Or Submit reference files in the References tab!
MapSketch - New image->map generator!
EUDTrig - topic - Quickly and easily convert offsets to EUDs! (extended players supported)
SC2 Map Texture Mask Importer/Exporter - Edit texture placement in an image editor!
\:farty\: This page has been viewed [img]http://farty1billion.dyndns.org/Clicky.php?img.gif[/img] times!

Aug 12 2010, 6:49 pm stickynote Post #12



I meant for an aiming system, farty. Poor wording on my part.



None.

Aug 12 2010, 10:33 pm Cinolt Post #13



http://www.staredit.net/files/2161/

Quote from name:yoonkwun
With EUD actions, the best aiming system is direction detection through difference of unit coordinate and order coordinate (obtained with EUD Binary Countoffs), detecting the order, then using a 1-location pixel grid by setting the location boundaries manually.

The only difference in the above map is that it uses the mouse rather than order coordinate, which means it's not multiplayer. The concept is the same though, just use binary/quaternary countoffs to find the difference in distance of the unit coordinate and the order coordinate for both axes and direction can be determined easily. I'm sure there's several paths for slope interpolation but the easiest and slightly inaccurate method is to set the dominant axis to a certain length (eg 16). Then multiply the recessive axis length by 16, divide by the original dominant axis to get your new recessive axis (eg 16, 8). Move a 1x1 location ontop of your unit, then add/subtract its X coordinates by 16, add/subtract its Y coordinates by 8. Just be careful as the Bring glitch is highly susceptible when directly modifying a location's coordinates, make it move ontop of itself when you want to check Bring.

SCMDraft 2 doesn't support text EUD Actions so you're forced to use FastTrig, which is still inefficient.



None.

Aug 12 2010, 11:23 pm Ahli Post #14

I do stuff and thingies... Try widening and reducing the number of small nooks and crannies to correct the problem.

Quote from name:yoonkwun
SCMDraft 2 doesn't support text EUD Actions so you're forced to use FastTrig, which is still inefficient.
Why isn't the Memory condition in the text based trigedit working?

edit:
oh, yes. I see I'm stupid. :)

Post has been edited 1 time(s), last time on Aug 12 2010, 11:46 pm by Ahli.




Aug 12 2010, 11:39 pm Cinolt Post #15



It is, but we're talking about EUD binary/quaternary countoffs. We need to use SetDeaths on extended players/units which the current SCMDraft2 doesn't support in its text trigedit.



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[07:23 am]
KrayZee -- What happened to his latova website?
[04:16 am]
jjf28 -- he sometimes pops in discord
[04:15 am]
jjf28 -- we hung out with him the other week at SENCon
[03:38 am]
dumbducky -- Whatever happened to MIke Lat?
[02:07 am]
Corbo -- Nice cats
[09:12 pm]
IlyaSnopchenko -- Miau
[09:11 pm]
Suicidal Insanity -- "Open wide"
[07:24 pm]
IlyaSnopchenko -- Will do... Though only tomorrow i guess
[07:19 pm]
Pr0nogo -- check images.dat, compare that to other attacking buildings
Please log in to shout.


Members Online: Roy, KrayZee, IlyaSnopchenko