MantisBT - Zandronum |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0001158 | Zandronum | [All Projects] Suggestion | public | 2012-10-30 23:30 | 2013-01-21 20:04 |
|
Reporter | Dusk | |
Assigned To | Dusk | |
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | closed | Resolution | denied | |
Platform | | OS | | OS Version | |
Product Version | | |
Target Version | | Fixed in Version | | |
|
Summary | 0001158: ACS network variables |
Description | This 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. |
Steps To Reproduce | |
Additional Information | |
Tags | No tags attached. |
Relationships | |
Attached Files | |
|
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 | bug_revision_view_page.php?rev_id=2877#r2877 |
2012-10-31 00:24 | Dusk | Note Added: 0005261 | |
2012-10-31 00:30 | Dusk | Note Edited: 0005261 | bug_revision_view_page.php?bugnote_id=5261#r2879 |
2012-11-09 18:12 | Dusk | Note Added: 0005341 | |
2012-11-09 18:39 | Dusk | Note Edited: 0005341 | bug_revision_view_page.php?bugnote_id=5341#r2932 |
2012-11-09 18:39 | Dusk | Note Edited: 0005341 | bug_revision_view_page.php?bugnote_id=5341#r2933 |
2012-11-09 18:41 | Dusk | Note Edited: 0005341 | bug_revision_view_page.php?bugnote_id=5341#r2934 |
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 |
Notes |
|
(0005261)
|
Dusk
|
2012-10-31 00:24
(edited on: 2012-10-31 00:30) |
|
|
|
(0005341)
|
Dusk
|
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?
|
|
|
(0005811)
|
Dusk
|
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. |
|