Duke4.net Forums: jwaffe - Viewing Profile - Duke4.net Forums

Jump to content

Hide message Show message
Welcome to the Duke4.net Forums!

Register an account now to get access to all board features. After you've registered and logged in, you'll be able to create topics, post replies, send and receive private messages, disable the viewing of ads and more!

Reputation: 26 I seem to be liked
Group:
Junior Members
Active Posts:
4 (0 per day)
Most Active In:
Everything EDuke32 (3 posts)
Joined:
13-February 16
Profile Views:
1,826
Last Active:
User is offline Private
Currently:
Offline

My Information

Age:
Age Unknown
Birthday:
Birthday Unknown
Gender:
Male Male

Contact Information

E-mail:
Private

Posts I've Made

  1. In Topic: MP—What's broken?

    25 January 2019 - 02:56 PM

    Hi there, I'm 75 AKA Jwaffe,

    Take a look at this post I made a while back it's still pretty much up to date as far as the main issues the c/s netcode is facing right now: https://forums.duke4...988#entry309988, since then my work has been merged into mainline, it's no longer on a private repo.

    Quote

    What's actually broken? Does the code buggy, or an actually totally broken WIP mess full of //TODOs?

    - The netcode is functional as in you can launch it and play it, but it's not very stable unfortunately
    - The sync code is done in that it can sync pretty much any change in the map except gamevars (I held off on those for now but I have a plan)

    Most of the work left relates to integrating that sync code in with the rest of the engine, right now there are significant parts of the engine that I have trouble converting from p2p to c/s. While the netcode is in net.cpp, other files like premap.cpp could use some work (G_EnterLevel, for example)

    Here are some of the main issues still present:

    - Players joining and leaving mid-game isn't reliable
    - Some sector effectors don't work well yet with the c/s netcode
    - Animation smoothness can be improved in general, there's some sector movements that aren't interpolated that really should be
    - Map transitions don't work most of the time
    - Usermaps don't work correctly, I think this problem's related to the map transition problems (i.e., the player sprite code on startup doesn't quite work right in c/s)
    - The player position sync code is vulnerable to speedhacking

    Quote

    What would it take for us to get it working?


    - Adjust the startup code / map loading code so that player sprites are allocated in a way that allows midgame joining
    - Investigate some of the SEs and find out special cases where the game should ignore some stuff like t_data values that should be interpolated instead of directly synced

    Also, if there's any volunteers:

    Quote

    At this point what would really help is:
    - If somebody could help me work with the map loading / startup code because I have had a lot of trouble figuring out how to implement some of the map change / initialization code for the netcode.
    - If somebody who is really knowledgeable with Duke3D (somebody who's worked with the Duke3D source for a long time, or perhaps a really good modder) could go through and find more struct fields that should / shouldn't be synced for certain SEs, picnums, etc.


    I've been trying to fix the startup code / map change code for a while but nothing I've done seems to have worked; I'm hoping that after IM ships somebody who's worked with that part of the code more can help me figure out what I'm doing wrong.
  2. In Topic: How much damage has lack of multiplayer and general IP incompetence caused?

    28 November 2018 - 05:46 PM

    Hi there, I also go by 75. I'd like to take this chance to give a brief status update on the C/S netcode; sorry for not replying earlier, I must have missed this thread. I'm usually on Discord if you want to reach me.

    - It's still being worked on in a private repo, what's on there is significantly better than what's on the mainline SVN, but it still has some major issues that need to be worked out
    - The game array data gets synced over the network (sprites, sectors, walls, actors, etc) but gamevars aren't synced yet, I have a plan for them but I haven't implemented it yet
    - There are some choppy movements and animations in the netcode that need to be smoothed out. I started out with every field of every struct getting synced but I noticed that it's best to just let the client handle some fields over time. NY00123 helped find a bunch of other cases which was really helpful.
    - The current code has issues with players joining mid-game and running maps with more players than spawns. It also has issues with usermaps. These problems have been particularly challenging to fix, I tried a bunch of different fixes for this but they have been hard to integrate into the existing code.
    - Map transitions are buggy, I've also had a hard time fixing these bugs on my own.
    - Terminx and I have talked about merging in what I have right now into mainline, but I want to do a couple things like making sure there are no warnings when building under GCC, and some other cleanup work.
    - Some of the older parts of the netcode (e.g., the player updates) is vulnerable to hackers. I have a plan for this but other issues with handling players make this tricky.

    This is just a reminder, but when the netcode is merged into the SVN, things might still change. I wouldn't recommend starting to make mods on the way it behaves now.

    And less pressing issues,

    - There is a lot of optimization work to be done as far as how much memory the netcode uses and how fast it runs, I would like to play with how often the game creates and sends snapshots to see if I can reduce bandwidth usage, too.
    - There is a lot of testing to do as far as how well it works with very high latency conditions (we're not ready to start testing that yet, though)
    - ... and some other bugs and missing features, I'll go into more detail on that later.

    At this point what would really help is:
    - If somebody could help me work with the map loading / startup code because I have had a lot of trouble figuring out how to implement some of the map change / initialization code for the netcode.
    - If somebody who is really knowledgeable with Duke3D (somebody who's worked with the Duke3D source for a long time, or perhaps a really good modder) could go through and find more struct fields that should / shouldn't be synced for certain SEs, picnums, etc.

    Quote

    I am willing to contribute. I am a C#, Python, Numpy, Julia, SQL programmer. I dont know C++ but I could learn.


    As somebody who knows C, C++, Python, and C#, I appreciate your enthusiasm but note that Python/C# and C/C++ are very, very different languages and have totally different memory management strategies. Feel free to PM me if you'd like to get involved, though.
  3. In Topic: Coop in both Original Campaign and Custom levels

    06 October 2017 - 07:20 PM

    View PostMaisth, on 06 October 2017 - 06:26 PM, said:

    When i use the command method i spawn under the floor and died and i can't get out, is there anyway to fix this?

    also to play with Dukematcher do i need portforwarding or i can use Hamachi?


    The C/S code is still being worked on, Eduke32-OldMP is probably your best bet for right now. Check out this topic:

    https://forums.duke4...-eduke32-oldmp/
  4. In Topic: [CODE]Multiplayer Hack/workaround for instant death on spawn on host.

    01 October 2017 - 07:52 AM

    Sorry, probably should have replied to this sooner, I've been working on the new netcode (I also go by 75). Some RL stuff got in the way for a while but I've been working on it consistently after I graduated.

    I've been working on a major fix for the netcode for a good while now, it's not done yet. The code for syncing structs (actors, walls, and sectors) is done but it's been a lot harder to integrate into the main engine than I thought. I still need to do gamevars and the player struct too, and I'm still working out the details on the best way to handle clientside actors in CON.

    There's been a ton of work done but it's mostly happened in a private repo -- I haven't released anything publicly from that yet mostly because I don't want people to mess with their mods to try to work around limitations that won't be there later on (also, things might change at this point). When it gets stable enough to release, I'll let you guys know.

    As for r6459 (9/27/2017) we added some quick fixes to make multiplayer a bit more functional for the time being (mostly just to fix the spawn kill glitch mentioned in the thread). It's somewhat playable but the new protocol I'm working on will take care of a lot of the desync issues when it's done.

Comments

jwaffe has no profile comments yet. Why not say hello?


All copyrights and trademarks are property of their respective owners. Instead of reading this text, you could be playing Ion Maiden! ;) © 2018 Voidpoint, LLC

Enter your sign in name and password


Sign in options