Project overview

Hi, first of all a big thank you for this awesome project!
(mainly referring to the code) Do you have any kind of documentation (graphics, video, image, mockup, etc.) that provides a view of the whole project and shows how things interact and work together? Something that shows who refers to who, who creates who, who is responsible for what, etc.
Because at this moment the code is rather difficult to read and to follow, so that kind of documentation would be a great help to understand the projectā€¦

I donā€™t know if you have seen this.
Theyā€™ve added a small documentation:

But itā€™s not really deepā€¦
There are also some videos from Unite LA on youtube about the FPS Sample:

1 Like

Yes, Iā€™m aware of thoseā€¦
But what Iā€™m asking for is something less theoretical like a sketch / class diagram. For example, the second video you mentioned explains the network approach used in the project, but lacks to provide an overview of how that approach has been translated into code. I think this is a great project for all of us, but it is still at an early stage and as long as it will not have a great refactoring it will remain difficult to read and understand ā€¦

Yep that is correct.

Source code especially the net code is really hard to read.
Iā€™m currently fighting with the HuffmanStream, Deltacompression and so onā€¦ and I make really small steps on theseā€¦

They are also still very active in designing the network code, they mentioned moving above 16 playersā€¦ so it may be re-worked vs what is in right now. I donā€™t get the impression Unity is ready for us to use the FPS Sample for release projects. I think they are more or less, giving us the samples to learn along with them, as they mature the offering. SO ā€¦ hang on for the ride, right? :smile:

Iā€™ve crunched trough the code, if you got a specific question I might be able to anwer it.

Iā€™d like to edit the character prefabs and attach custom components to them, Iā€™d also want to change the audio based on where itā€™s hitting(different for hitting players, floors, walls) and create a navmeshagent of one of the characters for single player gameplay. Thanks.

character prefabs at Assets/Prefabs/Characters
all the audios and systems you want to change you can find through SoundSystem.cs
about navmesh there are no something special, just create new char(or copy existing and modify it)

1 Like

I canā€™t find a reference to the weapon sound, which is created as an emitter and played at a point, Iā€™d like to change the pitch, volume of this emitter at gameplay.

look at TerraformerWeaponA.cs

Still not possible to change the audio value from that, also the character prefab to select is *_A_1P I canā€™t choose this as a NavAgent since itā€™s just the hands or say the weapon. Which prefab should I use for this? I donā€™t see any animators attached to any of the prefabs. Thanks for helping but Iā€™m unfortunately unable to find the correct prefab.

For sounds Iā€™m hacking my way by playing a sound superimposed to the shot noise as a separate component.

Hey Hey!

Think of the client/server setup of this sample like a TV show, the action happens back at the TV station, and is then broadcast out to your TV/PC at home. So when a client shoots at the TV show, your PC just plays the actions you need to see.

What I am saying here, is that the sample splits up the server"clinet-characters" into pieces, which is update on their positions out to the remote client applications.

On one of the main server-side client representations is a ā€œclient positionā€ vector3 that is public, that is where it updates the clients to know that character is. I want to use cars, hence parent the characters, so I know I need to find out where this script isā€¦ then modify it to include my car transforms each update.

If you launch a game, with a client, and run the editor as the server. One of the clientā€™s prefabs has that vector3 exposed on it, so look them over.Itā€™s not the transform, its an actual public vector3 that is named like ā€œlocationā€ or ā€œpositonā€ character positon whatever.

So nothing besides input collection, happens at the client. The Client application is just a player/viewer/tv screeen. This may help you to understand that everything ā€˜happensā€™ at the server, and the clients are just showing you that/predicting what happens.

Cheers and Good Luck
Micah