Author Topic: PC Version Multiplayer - Online Modification  (Read 38285 times)

Offline PermaNull

  • Raptor
  • ***
  • Posts: 52
  • T:REP 187
    • View Profile
Re: PC Version Multiplayer - Online Modification
« Reply #100 on: September 27, 2017, 02:53:46 AM »
Progress for tonight:

I was able to confirm I'm able to spawn more than 3 players ( meaning we can play more than 4 man games ).
I was able to disable control to other players and only control my player specifically, meaning we're right on track.


Offline Duke64

  • Administrator
  • *****
  • Posts: 2083
  • T:REP 7139
  • Sixty Four
    • View Profile
    • Duke64Nukem.com
Re: PC Version Multiplayer - Online Modification
« Reply #101 on: September 28, 2017, 01:27:12 AM »
Nice job really good progress!
Dinosaur Hunter
"Its time to make tracks"
"You are tiny grasshopper"
"Suck it down"
"Boo, No soup for you"
"Arrrgghhhh"
"I live again"

Offline PermaNull

  • Raptor
  • ***
  • Posts: 52
  • T:REP 187
    • View Profile
Re: PC Version Multiplayer - Online Modification
« Reply #102 on: September 28, 2017, 05:54:42 AM »
More progress...
I've reverse engineered a majority of the player classes/structures in order to find ways to use the animations, force the player to fire, move (actually walk not slide like seen in previous videos).

And I'm happy to say it's all working out quite nicely...

Enemy I first gave a flame thrower, then forced their weapon switch entire from code.


I've also actually generated headers for the C side of things so I can no control players in a pretty simple manner,

Here's an example of giving the enemy a flame thrower and making him walk forward/then stopping him.

Code: [Select]

if (count == 3)
{
DMPlayer* pPlayer2 = TurokEngine->pT4Game->pEngineObjects->pCameraArray[1]->pActor->pDMPlayer;
pPlayer2->pWeaponWheel->FlameThrowerAmmo = 500;
pPlayer2->pWeaponWheel->bFlameThrower1 = 1;
pPlayer2->pWeaponWheel->bFlameThrower2 = 1;
pPlayer2->pWeaponWheel->bFlameThrow3 = 1;

//pPlayer1->pos.y = 30;

pPlayer2->WeaponSwitch = -1;
pPlayer2->TimeTillSwitch = 0.1f;
}

if (count == 4)
{
DMPlayer* pPlayer2 = TurokEngine->pT4Game->pEngineObjects->pCameraArray[1]->pActor->pDMPlayer;
pPlayer2->WalkForward = 1.0f;
}

if (count == 5)
{
DMPlayer* pPlayer2 = TurokEngine->pT4Game->pEngineObjects->pCameraArray[1]->pActor->pDMPlayer;
pPlayer2->WalkForward = 0.0f;
}

I should start syncing things over network in no time.

Things left to do outside of just syncing to the network/over the network.

  • There's still ammo and health huds being rendered by the enemy players on the screen, this should be resolved. - Weapon pickup notifications or such are also displayed it seems.
  • I have no way to detect, sync, or control crouching or jumping (yet).
  • There are various crashes in relation to damaging the enemy, opening the pause menu while in-game, and picking up power-ups these all need to be resolved before this is remotely playable.
[**] With this one I don't know if the frag count will actually update after my fixes so I may have to write something custom to handle the frag counts.

  • I have currently not found any information related to power-ups such as (speed increase, jump boots, or etc) meaning these do not properly sync over multiplayer (mostly just visual stuff would be missing as the players would still be able to perform the actions.)
  • I currently have no idea how the joining of games will work and have no way to automatically force the game into a world/level in order to 'start' the game without going through the menus, that being said I know it should be entirely possible to do with some tweaking.
  • Currently when I spawn players I do not use the traditional spawn points, I plan to look into this though.
  • Fly modes absolutely will not work...
  • No co-op (yet).
  • AI does not sync on the tree house map.
  • There may be issues with those turret guns on the d-day style map, as well as the nukes that get fired due to the fact I'm not currently planning on syncing their projectiles.


All of the above being said I'm hoping to take care of a small portion of this by this weekend, and I will be going with Google Protobuf in order to serialize data for sending, and I'll probably write a hook inside one of the main game loops in order to handle the network traffic.


Edit:

Some short gifs demonstrating spawning, weapon switching and player walking...
https://gyazo.com/28b68ff2e24228d4cb322f053d1da0d5
https://gyazo.com/a0d188e044c72031d9ee2f9a0158c42d
https://gyazo.com/00035ba9fc739111a62b563a5e3599fb
« Last Edit: September 28, 2017, 06:01:28 AM by PermaNull »

Offline Jay Doomed

  • Global Moderator
  • *****
  • Posts: 992
  • T:REP 3072
    • View Profile
Re: PC Version Multiplayer - Online Modification
« Reply #103 on: September 29, 2017, 10:04:36 AM »
I see you're making good progress pretty quickly nice job. And cool that Edward helped you in some understanding too.
"Whatever it is, it doesn't belong in this world."

Offline PermaNull

  • Raptor
  • ***
  • Posts: 52
  • T:REP 187
    • View Profile
Re: PC Version Multiplayer - Online Modification
« Reply #104 on: September 30, 2017, 05:44:32 AM »
 :you're kidding, right:

Progress is starting to slow down but still making my way through it.

I've managed to fix crashes related to damaging the other player or the other player dying/the other player damaging me.

https://gyazo.com/5f49f51effe24e340895de706c4ec659
https://gyazo.com/ca7195ef6809065998b222acabc617c8

I'm able to make the other player fire/shoot as seen above via code with any weapon this was what a majority of the work today went into as well as finding a way to make the player uncrouch after crouching, and I can successfully make the player respawn.

So we're getting close to having everything we need to start synchronizing the data over the network and doing some testing with people online playing vs just controlling the player via local code.

There are still minor issues I want to fix before getting to that point such as:

  • I've noticed slowdown when switching to the rocket launcher while the second player was holding it, like actual frame lag/game freeze for a half a second or so... need to determine if this is related to the second player in any way... it's possible there's some game lag in relation to secondary rendering occurring.
  • Player death messages and other hud elements such as health and ammo for the other player still appear on the first screen, I have an idea of where to look to resolve this but have not done it yet.
  • Player hud elements such as health, and pickups are still appearing currently but will be fixed.
  • Powerups (Damage increase, power boots, speed increase, health regen, etc) is still not something I've been able to synchronize or determine how they work, there will be de-sync issues with this.
  • When the 1st player dies they control every player in the game. I have an idea on why this is happening and just haven't really decided on how to go about fixing it yet.
    Example: https://gyazo.com/839ad45aa3a64bd9a922144bcc233f72

    If I can think of anything else I need to add to this list before I think this is ready for any kind of testing I'll be sure to do so, these things are not major issues so hopefully I'm able to fix them within a few hours tomorrow and start working on networking side of things.

    EDIT:
    Discovered a new bug...
  • When there's more than 2 additional players spawned into the game when a player is re-spawned their 'first person' weapon spawns/is visible for some reason.


Now working towards integrating networking and coming back to the rest of the bugs over time.
« Last Edit: October 01, 2017, 03:06:49 AM by PermaNull »

Offline djdduty

  • Iguana
  • *
  • Posts: 45
  • T:REP 135
    • View Profile
Re: PC Version Multiplayer - Online Modification
« Reply #105 on: October 01, 2017, 03:33:48 AM »
It's alive! Awesome that you're making some progress on this! I'll have to check things out again soon.

Offline PermaNull

  • Raptor
  • ***
  • Posts: 52
  • T:REP 187
    • View Profile
Re: PC Version Multiplayer - Online Modification
« Reply #106 on: October 01, 2017, 04:31:10 AM »
It's alive! Awesome that you're making some progress on this! I'll have to check things out again soon.
Holy crap you're alive, you disappeared on Skype lol, as I'm sure you've seen I've made humongous amounts of progress lol.
« Last Edit: October 01, 2017, 04:31:33 AM by PermaNull »

Offline djdduty

  • Iguana
  • *
  • Posts: 45
  • T:REP 135
    • View Profile
Re: PC Version Multiplayer - Online Modification
« Reply #107 on: October 01, 2017, 05:10:33 PM »
Holy crap you're alive, you disappeared on Skype lol, as I'm sure you've seen I've made humongous amounts of progress lol.

Have you been messaging me there? I still get online on skype but I haven't seen any missed messages.

Offline Dinomite

  • Chronoscepter
  • ******
  • Posts: 2902
  • T:REP 8889
    • View Profile
Re: PC Version Multiplayer - Online Modification
« Reply #108 on: October 01, 2017, 05:28:19 PM »
Holy crap you're alive, you disappeared on Skype lol, as I'm sure you've seen I've made humongous amounts of progress lol.

Have you been messaging me there? I still get online on skype but I haven't seen any missed messages.
You havent responded to me in ages either. Lol

The most hated person on the internet.

Offline djdduty

  • Iguana
  • *
  • Posts: 45
  • T:REP 135
    • View Profile
Re: PC Version Multiplayer - Online Modification
« Reply #109 on: October 01, 2017, 05:37:13 PM »
You havent responded to me in ages either. Lol

Well now I feel bad, there was a period where I didn't have skype installed, but I've been using it again for a while now and haven't had any missed messages. I'm easier to contact on discord since I use it for other things probably.