Hi there!
As soon as I’ve seen this, I made a new unity project using the template, to test it out!
Here’s my feedback in the order that I’ve encountered it.
The initial project creation took far longer than a regular empty unity project, with the initial domain reload being almost a whole minute. I was concerned that this would be the expected behavior with the involvement of Burst but it seems we’re fine. I’ve later opened the project and poked a file to trigger domain reload, clocking under 20 seconds.
- I love that the project settings come with ‘run in background’ ticked, ‘do not reload domain or scene’ though!
- After the first domain reload, I got a warning
Missing types referenced from component BuildProfile on game object DGS-Linux-Build, I assume this is for people who’d like to build Linux, harmless enough even though I don’t like seeing warnings on opening a new project. - I noticed the Multiplayer Center package is installed in this template, isn’t this redundant? the project already leverages NFE…
I followed the popup tutorial diligently and had these notes.
- When asked to open the playmode tools window, it looked like a button to a degree, I got slightly thrown off by that.
- I liked that the tasks auto-detected completion and moved on.
- I liked the highlights of the relevant panels and buttons including the ‘enter playmode’ button being highlighted, even though it was so tiny that the highlight was meaningless - it was doing its best!
- When the tutorial in playmode asked me to set
Num Thin Clientsto 1 and I did so, the editor paused playmode and reached the tutorial’s conclusion. ClickingDoneat that point closed playmode, which means I never got to interact with the thin client or see its effects. I recommend adding an extra step here so people can familiarize themselves with the thin client and see it in game.
Then, I began exploring on my own. I opened Multiplayer Play Mode, and made a second client successfully. Then everything started breaking.
It seems that every time the editor has any reason to pause, it makes multiplayer error out. Even simple things like dragging the playmode tools floating window around causes playmode to pause due to error.
On top of that, any pause for shader compilation that happens as objects load on the fly caused an error due to ‘bad client performance’ and shut down my ability to operate the multiplayer playmode session properly. This happened a lot as the weapons were randomized with unique projectile vfx and impaired my ability to enjoy the template.
In terms of quality of life, I wish that in the pause menu ingame, pressing on the outside area of the buttons panel would go back in game. Or that pressing ‘escape’ again would undo the pause. Currently you have to manually press ‘resume’ to continue.
I love the info panel that each client starts with - that one is a keeper!
The code for the FirstPersonPlayerInputsSystem.OnUpdate surprised me for a bit - there’s a mention of elapsedTime but it goes unused.
FirstPersonPlayerSystems.cs was a very nicely named file. I like seeing the separation of the two systems in there.
CharacterWeaponVisualFeedbackJob was rather long to read, though well commented - I wish the methods were extracted out for each adjustment.
In terms of content variety - I like that weapons of all the important types were included - between the shotgun spread, the hit scan weapon, the projectiles, and the explosives, it feels like a solid template to work up from! The ECS jobs are well made and I didn’t feel overwhelmed by any of the classes I’ve read, though the amount of boilerplate feels staggering. I hope Unity NEXT removes some of that croft…
Thanks for the template!!
Edit: It seems 465 out of 550 MB of this template is the VFX textures of Assets/Art/VFX/Textures… rather painful to look at.