[Feature Request] Gravity Syncing

Everything about HD, MD, and their mods.

Moderator: Halo Moderators

Post Reply
DrakeWasHere
Newbie
Posts: 13
Joined: Sun Aug 28, 2016 1:20 pm

[Feature Request] Gravity Syncing

Post by DrakeWasHere » Mon Sep 19, 2016 2:02 pm

Hello all!

With the new version of SAPP available, gravity is a mutable value that can be changed on-the-fly by an admin.

As of now, there is no way to support syncing this change with HaloMD clients, as the HAC2 changes that allow server-client gravity syncing are not available to use on Mac in its current form, nor does the dev on HAC2 seem to have any interest in working on support for HaloMD.

I was hoping someone with experience writing plugins for HaloMD, or in making changes to MD in general, could comment on the feasibility of such a feature, if there is any work planned to incorporate it, and if not, could provide more information on plug-in development.


I am a software engineer myself, and would be interested on working on this problem, but as of now have no experience with HaloMD's source code, or it's plugins. Any guidance would be appreciated.

Best,
Drake

A Stick
Newbie
Posts: 19
Joined: Sun May 22, 2016 5:18 pm
Contact:

Re: [Feature Request] Gravity Syncing

Post by A Stick » Mon Sep 19, 2016 2:44 pm

How did you get a server on Mac?
IGN: a stick
Discord: Stick#9145

DrakeWasHere
Newbie
Posts: 13
Joined: Sun Aug 28, 2016 1:20 pm

Re: [Feature Request] Gravity Syncing

Post by DrakeWasHere » Tue Sep 20, 2016 8:46 am

A Stick wrote:How did you get a server on Mac?
My first server was hosted in a VM on my mac, and given a bridged connection in the VirtualBox settings so that I could properly port forward. Trying to mess around with Wine was just too much work when I already had an ISO of windows XP for a VM.

My current one is a dedicated Windows 7 box that I had an extra of.

If you want any help setting up a server, feel free to PM me.

swampy
Newbie
Posts: 19
Joined: Mon Sep 12, 2016 5:56 am

Re: [Feature Request] Gravity Syncing

Post by swampy » Wed Sep 21, 2016 6:37 am

DrakeWasHere wrote:
A Stick wrote:How did you get a server on Mac?
My first server was hosted in a VM on my mac, and given a bridged connection in the VirtualBox settings so that I could properly port forward. Trying to mess around with Wine was just too much work when I already had an ISO of windows XP for a VM.

My current one is a dedicated Windows 7 box that I had an extra of.

If you want any help setting up a server, feel free to PM me.

I have Virtual box and also a copy of Parallels . What would be best for Win7? Also I*'m on an old Mac Pro, so I was thinking of just doing a separate h/d and running Windows full speed ahead because I want to set up a good Steam machine.

DrakeWasHere
Newbie
Posts: 13
Joined: Sun Aug 28, 2016 1:20 pm

Re: [Feature Request] Gravity Syncing

Post by DrakeWasHere » Wed Sep 21, 2016 1:54 pm

swampy wrote:I have Virtual box and also a copy of Parallels . What would be best for Win7? Also I*'m on an old Mac Pro, so I was thinking of just doing a separate h/d and running Windows full speed ahead because I want to set up a good Steam machine.

If you want to use it as a steam machine as well, definitely go the BootCamp route. If you just want to host a server in the easiest possible way without messing with Wine, just install a VM and run it on that.


Again, if you want to talk about hosting / running a server, and do not have any insight on gravity syncing in HaloMD, please just PM me.

nil
Halo Moderator
Halo Moderator
Posts: 1090
Joined: Sat Jul 05, 2008 8:38 am
Location: null zone

Re: [Feature Request] Gravity Syncing

Post by nil » Wed Sep 21, 2016 4:21 pm

DrakeWasHere wrote:Hello all!

With the new version of SAPP available, gravity is a mutable value that can be changed on-the-fly by an admin.

As of now, there is no way to support syncing this change with HaloMD clients, as the HAC2 changes that allow server-client gravity syncing are not available to use on Mac in its current form, nor does the dev on HAC2 seem to have any interest in working on support for HaloMD.

I was hoping someone with experience writing plugins for HaloMD, or in making changes to MD in general, could comment on the feasibility of such a feature, if there is any work planned to incorporate it, and if not, could provide more information on plug-in development.


I am a software engineer myself, and would be interested on working on this problem, but as of now have no experience with HaloMD's source code, or it's plugins. Any guidance would be appreciated.

Best,
Drake
Have you built HaloMD from source using Xcode before? There is a couple of built-in plug-in targets as examples. See MDPlugin.h for some documentation. I don't have a template plug-in project right now with me, but you can look at the build settings for the plug-in targets. If you Reveal Mods in Finder, and go up a folder or two, there should be a couple directories for installed plug-ins.

002 informed me that btcc22 didn't add a feature to HAC, but I don't know how the gravity thing works, or why the value needs to even be synced.
(MGM IRC Chat)
[09:31:39] <Zero2r> oh
[09:31:50] <Zero2r> well I did write a plugin that allows one to set an arbitrary gravity constant
[09:33:05] <Zero2r> by default it's 0.997 G (well it's 1/3.048/30/30 world units per tick squared)
[09:33:31] <Zero2r> 10/3.048/30/30*
[09:34:07] <Zero2r> basically if you're in the air, it subtracts that much from your Z velocity every single tick
[09:35:08] <Zero2r> if you're talking about the gravity constant thing
[09:35:38] <Zero2r> it's easy to find. bit slicer can easily do the job by monitoring your Z coordinate
[09:36:17] <Zero2r> I gave this information to sehe who incorporated it into SAPP. I don't know how it communicates with HAC2, so that's what needs to be found
[12:10:41] <Zero2r> oh it doesn't communicate with HAC2
[12:10:56] <Zero2r> as I suspected, btcc22 never actually added the feature to hac2
[12:10:59] <Zero2r> it's just an anticheat feature
I am no longer active to Halo or MGM, and don't guarantee a response on the forums or through email. I will however linger around the discord room for general chatting. It's been fun!

002
Ranger
Posts: 944
Joined: Wed Aug 16, 2006 5:48 pm
Location: ::1

Re: [Feature Request] Gravity Syncing

Post by 002 » Wed Sep 21, 2016 8:09 pm

I poked around in Bit Slicer for you. You'll find the gravity constant at 0x37B600 in Bit Slicer. It's a 32-bit floating point number.

It's equal to about 0.003565 world units per tick squared. Basically, this number is subtracted from every objects' and particles' Z velocity every tick while in the air.

If you want to convert this to meters per second squared, 1 world unit equals 10 feet which equals 3.048 meters, therefore 1 world unit equals 3.048 meters. 1 ticks is 1/30 of a second, so 1 tick squared equals 1/900 seconds squared. Up to you on how you want to deal with this constant, really.

DrakeWasHere
Newbie
Posts: 13
Joined: Sun Aug 28, 2016 1:20 pm

Re: [Feature Request] Gravity Syncing

Post by DrakeWasHere » Fri Sep 23, 2016 9:46 am

nil wrote:Have you built HaloMD from source using Xcode before? There is a couple of built-in plug-in targets as examples. See MDPlugin.h for some documentation. I don't have a template plug-in project right now with me, but you can look at the build settings for the plug-in targets. If you Reveal Mods in Finder, and go up a folder or two, there should be a couple directories for installed plug-ins.

002 informed me that btcc22 didn't add a feature to HAC, but I don't know how the gravity thing works, or why the value needs to even be synced.
I have not done any work with the HaloMD source code before, nor with the plugins, but I will be checking out the plugin stucture this week.

Well I don't think that it was an added feature so much as something that *just works* with anticheat and SAPP that SAPP implemented, but I could be mistaken.

I tested out the gravity feature on my own servers, and in MD it shows a lag like jumping between server position and client position, so something definitely needs to be synced.
002 wrote:I poked around in Bit Slicer for you. You'll find the gravity constant at 0x37B600 in Bit Slicer. It's a 32-bit floating point number.

It's equal to about 0.003565 world units per tick squared. Basically, this number is subtracted from every objects' and particles' Z velocity every tick while in the air.

If you want to convert this to meters per second squared, 1 world unit equals 10 feet which equals 3.048 meters, therefore 1 world unit equals 3.048 meters. 1 ticks is 1/30 of a second, so 1 tick squared equals 1/900 seconds squared. Up to you on how you want to deal with this constant, really.
So I played around with changing the values on the server and my own MD client using that address, and as long as the values are the same there is no syncing issue.

Looking through the plugin structure, it should be trivial to set that value as needed. Right now I just cannot figure out how to get that gravity value from the SAPP server without being/asking admin

DrakeWasHere
Newbie
Posts: 13
Joined: Sun Aug 28, 2016 1:20 pm

Re: [Feature Request] Gravity Syncing

Post by DrakeWasHere » Mon Sep 26, 2016 8:33 am

Just a quick update, but running memory scans and sniffing network traffic between the server and client hasn't turned up any meaningful results so far.

If anyone knows how SAPP announces changes to the gravity variable to clients, that information would make this plugin one step closer to complete

nil
Halo Moderator
Halo Moderator
Posts: 1090
Joined: Sat Jul 05, 2008 8:38 am
Location: null zone

Re: [Feature Request] Gravity Syncing

Post by nil » Mon Sep 26, 2016 12:45 pm

DrakeWasHere wrote:Just a quick update, but running memory scans and sniffing network traffic between the server and client hasn't turned up any meaningful results so far.

If anyone knows how SAPP announces changes to the gravity variable to clients, that information would make this plugin one step closer to complete
Guessing it could be through the chat system. Anyway seems like an appropriate question to ask the SAPP folk.
I am no longer active to Halo or MGM, and don't guarantee a response on the forums or through email. I will however linger around the discord room for general chatting. It's been fun!

DrakeWasHere
Newbie
Posts: 13
Joined: Sun Aug 28, 2016 1:20 pm

Re: [Feature Request] Gravity Syncing

Post by DrakeWasHere » Tue Sep 27, 2016 1:35 pm

nil wrote:
DrakeWasHere wrote:Just a quick update, but running memory scans and sniffing network traffic between the server and client hasn't turned up any meaningful results so far.

If anyone knows how SAPP announces changes to the gravity variable to clients, that information would make this plugin one step closer to complete
Guessing it could be through the chat system. Anyway seems like an appropriate question to ask the SAPP folk.
I looked at chat data and have not found anything resembling a variable announcement.

I messaged the dev on SAPP, as well as posted on the main forum for features / requests / help, and will report back if I get anything.

DrakeWasHere
Newbie
Posts: 13
Joined: Sun Aug 28, 2016 1:20 pm

Re: [Feature Request] Gravity Syncing

Post by DrakeWasHere » Thu Sep 29, 2016 11:30 am

Anyway, I posted on the SAPP forum and PM'ed a couple people, and so far the only lead has been that it is a feature of SAPP's anti-cheat client plugin and not HAC/HAC2

Talked to the dev on SAPP and apparently it is handled through the chat protocol, but uses specific hooks which he has yet to finalize. -,-

Post Reply

Who is online

Users browsing this forum: No registered users and 54 guests