OpenXRay / xray-16

Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. Join OpenXRay! ;)
https://discord.gg/sjRMQwv
Other
3.02k stars 454 forks source link

Stable AI In Multiplayer #717

Open tyabus opened 3 years ago

tyabus commented 3 years ago

It would be great if game logics supported spawning mutants/stalkers in multiplayer without crashes/misbehavior and with proper sync

PsiKnapp commented 3 years ago

Hey there. I'd love to work on this if someone can give some pointers in where to get started in the code. I'm fairly new to the codebase but am experienced in c++. I have some experience in graphics for bones and animation but not sure if that will be needed here. I also have some networking experience.

I have the code and can build and run in COP.

tyabus commented 3 years ago

Hey there. I'd love to work on this if someone can give some pointers in where to get started in the code. I'm fairly new to the codebase but am experienced in c++. I have some experience in graphics for bones and animation but not sure if that will be needed here. I also have some networking experience.

I have the code and can build and run in COP.

Join openxray discord server, https://discord.gg/sjRMQwv There should be guys that could point ya into right direction.

PsiKnapp commented 3 years ago

Hey there. I'd love to work on this if someone can give some pointers in where to get started in the code. I'm fairly new to the codebase but am experienced in c++. I have some experience in graphics for bones and animation but not sure if that will be needed here. I also have some networking experience. I have the code and can build and run in COP.

Join openxray discord server, https://discord.gg/sjRMQwv There should be guys that could point ya into right direction.

Thank you, I have been a part of the server for a bit. I'm just a bit shy on that front while I'm looking into how all the code works. If I run into questions I would definitely look there for help, but right now I'd like if someone could give me a run-down of what I would need to update and where.

For example: While I know you can add the alife parameter when starting a server up, I'm not sure the best way to get that started in multiplayer or if any of the existing mp maps have the AI pieces baked in. I also am not sure about how I would spawn the creatures in to test, ideally from console command. I haven't found where in the scripts the multiplayer server starting commands are where I could inject the alife command, though I suppose I could just comment out the parameter check and always start a server with it but I don't know what the side effects of that would be.

I'll continue looking at the code for now and see what I can find but I don't know how much progress I'll be able to make without more guidance there. If I run into anything that I can't find a way to get around, I'll ask in the discord.

tyabus commented 3 years ago

Hey there. I'd love to work on this if someone can give some pointers in where to get started in the code. I'm fairly new to the codebase but am experienced in c++. I have some experience in graphics for bones and animation but not sure if that will be needed here. I also have some networking experience. I have the code and can build and run in COP.

Join openxray discord server, https://discord.gg/sjRMQwv There should be guys that could point ya into right direction.

Thank you, I have been a part of the server for a bit. I'm just a bit shy on that front while I'm looking into how all the code works. If I run into questions I would definitely look there for help, but right now I'd like if someone could give me a run-down of what I would need to update and where.

For example: While I know you can add the alife parameter when starting a server up, I'm not sure the best way to get that started in multiplayer or if any of the existing mp maps have the AI pieces baked in. I also am not sure about how I would spawn the creatures in to test, ideally from console command. I haven't found where in the scripts the multiplayer server starting commands are where I could inject the alife command, though I suppose I could just comment out the parameter check and always start a server with it but I don't know what the side effects of that would be.

I'll continue looking at the code for now and see what I can find but I don't know how much progress I'll be able to make without more guidance there. If I run into anything that I can't find a way to get around, I'll ask in the discord.

Spawning stuff: g_spawn (don't work in mp due check) Adding new command line parameters: try to grep codebase for existing parameters

tyabus commented 3 years ago

Maybe @Xottab-DUTY could point you into right direction? Because i'm not familiar with x-ray engine codebase too.

PsiKnapp commented 3 years ago

I can add some new parameters. I have seen where the mp commands are held. I still need to look through the alife code and fix what crashes on trying to run it in an MP server.

I'll try to respond back in a week with however far I get.

PsiKnapp commented 3 years ago

Progress going ok. No major blocks yet. Took a bit to get a lot of the getting started hurtles out of the way.

Currently I can start a server with alife enabled. I'm using the all.spawn file for the ai for now, but that might have some side effects. I'm not certain yet on that front. Server appears be starting, however the client gets spammed with a bunch of models and files from spawns that look a lot like garbage memory. There's a lot of code that expects ai information to be baked into saves or have existing data which might also need to be modified. For now I'm just pretending it's a new game to see if I can get anything to work.

I created a test ai level so I should be able to make sure I have everything I need on the level from here on regarding testing.

I'll post again once I have any progress to show off.

If anyone is interested in the changes, I have them on a branch in my fork for now: https://github.com/PsiKnapp/xray-16/tree/multi-alife

pavelspitsin commented 3 years ago

Hello. We've fixed stalkers and mutants in multiplayer, of course there are some bugs. See https://github.com/xray-omp/omp-engine. This is based on the original engine, not Open X-ray. And all comments are in Russian. Sorry.

PsiKnapp commented 3 years ago

Nice! Still good to see someone working on it even if it's not a direct branch off this repo. I've been pretty busy with work this year and haven't had much time to spend on it.

If that repository fixed some of the networking issues I ran into while updating Open X-Ray I may be able to use it as reference for updates to make to Open X-Ray.