Zandronum Chat on our Discord Server Get the latest version: 3.1
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001158Zandronum[All Projects] Suggestionpublic2012-10-30 23:302013-01-21 20:04
ReporterDusk 
Assigned ToDusk 
PrioritynormalSeverityfeatureReproducibilityN/A
StatusclosedResolutiondenied 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0001158: ACS network variables
DescriptionThis has been a little pet project of mine for a while. The idea is to make a standardized way of updating variable information from server to client instead of relying on hacks to call clientside ACS from the server to pass variable data. I've ended up using those hacks.. that stuff really gets REALLY messy, especially when you need to send stuff to newcomer clients.

So what's going on is that you declare a variable as net with:
net int x;

and then change its value in a script, and zandronum would update the clients with the new value. The values are checked every tic against the last values to keep bandwidth use minimal.

I've had the netcode in place for a while and just now got the compiler to stuff the netvar info into the object file. Now I'm piecing this together.

One little concern of mine is that right now you can also declare world and global vars as net. I'm not sure if it's a good idea, as one module could potentially declare a world/global var as net while another would not.. I don't think it'd be adding much anyway and the code would be a lot simpler without them. Would there be need for synchronized world/global vars? I know synced global vars would make GlobalVar/GlobalArray selectors of SBARINFO's DrawNumber actually usable online, but I can't think of anything besides that.

Naturally I'm planning to have this tested throughly with neurosphere when this is completed.
Attached Files

- Relationships

-  Notes
User avatar (0005261)
Dusk (developer)
2012-10-31 00:24
edited on: 2012-10-31 00:30

'https://bitbucket.org/CrimsonDusk/neurosphere/changeset/702d9aebd40d502b289195078c4537a9 [^]'
Here's what I have so far, aside from the compiler changes of course.
Again, I'm not sure whether world/global vars should be kept.

EDIT: edited compiler, sources and win32-binary
'https://dl.dropbox.com/u/66055976/acc-netvars-src.zip [^]'
'https://dl.dropbox.com/u/66055976/acc-netvars-bin32.zip [^]'

User avatar (0005341)
Dusk (developer)
2012-11-09 18:12
edited on: 2012-11-09 18:41

Update:'https://bitbucket.org/CrimsonDusk/neurosphere/changeset/b8593c94bd3abd7e24bb809ab801eb12 [^]'
Decided not to have net world or global vars because I don't think it's worth the additional trouble to have such things around. Earlier revisions have the code though in case I'm proven otherwise.

Now I guess I just have to update the compiler again. I'll keep dummy world and global sections in the bytecode just in case. They'd just be two bytes anyway (one zero to mark no net world vars and one zero for no globals, this way we'll be future compatible in case we decide to have net world and global again)

EDIT: Compiler diff here:'https://dl.dropbox.com/u/66055976/acc-netvars.diff [^]'

This is pretty much ready for testing. Anything to note here?

User avatar (0005811)
Dusk (developer)
2013-01-21 20:04

I've been thinking about this issue and came to the conclusion that having netcode for ACS variables would be bad design. The current implementation can only do server->client and is restricted to ACS only - this is useless for DECORATE unless hacks are used and we don't want that...

I'll try come up with something better.

Issue Community Support
This issue is already marked as resolved.
If you feel that is not the case, please reopen it and explain why.
Supporters: ZzZombo
Opponents: No one explicitly opposes this issue yet.

- Issue History
Date Modified Username Field Change
2012-10-30 23:30 Dusk New Issue
2012-10-30 23:30 Dusk Status new => assigned
2012-10-30 23:30 Dusk Assigned To => Dusk
2012-10-30 23:56 Dusk Description Updated View Revisions
2012-10-31 00:24 Dusk Note Added: 0005261
2012-10-31 00:30 Dusk Note Edited: 0005261 View Revisions
2012-11-09 18:12 Dusk Note Added: 0005341
2012-11-09 18:39 Dusk Note Edited: 0005341 View Revisions
2012-11-09 18:39 Dusk Note Edited: 0005341 View Revisions
2012-11-09 18:41 Dusk Note Edited: 0005341 View Revisions
2012-11-09 18:41 Dusk Status assigned => feedback
2013-01-21 20:04 Dusk Note Added: 0005811
2013-01-21 20:04 Dusk Status feedback => assigned
2013-01-21 20:04 Dusk Status assigned => closed
2013-01-21 20:04 Dusk Resolution open => denied






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker