Search Unity

What is FPSSample trying to show?

Discussion in 'FPS.Sample Game' started by chrisk, Oct 30, 2018.

  1. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    704
    Hi, Unity team,

    When I first saw the sample, it was way more than what I expected as a sample. My initial impression is that you really want to include everything, like how good Unity game can look instead of focusing on the Multiplay. It was a pleasant surprise and I'm happy as long as it does everything. But examining the sample closer, I quickly realize it's still a very early stage and it faces some issues for the future. I guess there are two approaches you can take and I'm trying to understand what is that you are trying to achieve.

    1. Make a serviceable game: I wrote a post below, https://forum.unity.com/threads/to-fpssample-development-team.574216/ . Unity as a game engine company needs to learn what it's like to make a real game. Don't stop at the sample but operate a live server. You own the hosting company Multiplay and working with Google and why not actually run the game? kind of like Unreal Tournament? You will never understand the real issues dealing with many network related problem unless you experience it. I hope Unity really do.

    2. Make a lightweight sample, just focus on the multiplay feature: If users are interested in how to make a pretty game, HRDP and such, they can learn from the different project. FPSSample is really heavy for a sample and it took me a half a day to get it setup. It's not a good sample to learn about the multiplay if you are just interested in multiplay.

    I don't really expect Unity to make a commercial quality game and to operate a game service themselves so #1 will be out of the question. However, I really wish they do in the future.

    The worst scenario will be, they make a heavyweight sample that is not either #1 or #2 and they stop short on the way. It's highly possible that this project is headed toward that way, given how heavy the sample is, if it continues like this. If your plan is not to make a serviceable game, please stop adding more graphics contents. What's the point having several more of the samething? I'm not really interested in learning how beautiful the environment can look in this FPSSample. I have other examples to learn from that are focused on certain features.

    I don't mean to put down the whole team. I think they did a very good job making the pretty sample but that's shouldn't be the only focus of the sample.
    Unless you are going to make serviceable game, here is what I would do.
    Branch off without the all the heavyweight graphics contents and focus on the multiplay functionality. Therefore, one branch(base branch) without heavy-weight graphics, and another branch(with all eye-candies) that builds on top of the base branch so that both can peacefully coexist.

    So, even if you stop improving the eye-candy branch, the base branch can still evolve, and eye-candy branch can still benefit. Also, the base branch can evolve fast without having to wait to eye-candies are ready to show. I'm saying this because making the good graphics takes most of the development time.

    Cheers!
     
    Last edited: Oct 30, 2018
  2. Vestergaard

    Vestergaard

    Unity Technologies

    Joined:
    Oct 20, 2016
    Posts:
    31
    Actually, the project schedule was limited by developer time, not art creation time. Art creation is highly parallelizable, programming is typically not.

    Internally this sample serves as vertical slice development, dogfooding our technology and highlighting issues on a more horizontal level across all features, be they design or UX inconsistencies, performance problems, or other disparities. It's impossible to put ourselves in the shoes of our users without tackling the concrete problems that follow from choosing things like art direction, animation style, multiplayer etc. and seeing how your tools tackle concrete problems that you've committed yourself to solve, almost no problem lives in a vacuum on a full production, everything uses the CPU to some extent and has to achieve a balanced weighting.

    Externally it serves as a more holistic view than what we usually provide of how to build full games in Unity, and the compromises that bring to the table, a vertical slice showing the intersections of all our technologies and how they interact to the hopefully best of their potential. We expect users to scavenge the parts of our project they can find a use for in their own products, but we do not consider it a 'template', more like a safe project bootstrapper, remember all content in here is safe to use commercially in unity based productions.

    If we did all the work in isolation on each our little template examples, we would never discover and document the user pains of working as a team with unity full stack, and that is our prime directive. That the outcome happened to be a multiplayer game was a choice made to challenge ourselves in that direction, we could have done a single player RPG and gotten different but equally valuable learnings. In the future, we do intend to continue to up the challenges and building a fully serviceable hosting environment for the game in collaboration with multiplay could be one such challenge to chose.

    At the end of the day, this is the first drop along with some kind of journey that is not fully mapped, we could have chosen not to share until every stone had been left unturned but that would seem pointless as I am sure there are people benefitting from what we have done already.
     
    Last edited: Nov 1, 2018
  3. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    704
    Hi, @Vestergaard, I respect your sincerity and what you are trying to do. I'm just a bit worried that a nice project such as this will stop short during the course of the development. Unless your goal is to make a serviceable game, you will stop short for sure because priority can change at all times.

    I mention two branches because from user's point of view, branching base layer and contents layer will still be beneficial for those who want to learn the multiplay part of the project. I still think multiplay part should be a focus of the project and we can many other samples to learn about other aspects of making a pretty game. You said programming takes more time, then, I must say that it will also help Unity programmer to focus on programming. It will be much faster to develop and test with a less heavy project.

    I'm glad you mentioned dogfooding your own technologies. I mentioned it several times that you guys really should. If you decided to do it, go all the way. Don't stop in the middle and say it's good enough. There is a day-and-night difference between making a demo and a live game. Operate a live server with users from the global. You will face all kinds of issues and find bugs or ways to make improvements to your game/library constantly. If you already have serviced an online game before, you will know what I mean.

    Assuming you are going to make a serviceable game, I would like to propose the followings.

    1. Make a base branch with game cores. This core can be used not only for FPSSample for other foreseeable games that you are going to build. It will have minimum contents to show the basics but it will still have the full functionalities as a live game.

    2. Make a content branch that uses the base branch. Basically, you will just replace the sample contents in the base branch with all the bells-and-whistles. And the goal should be to make a live game. And please go all the way and operate the live game to really show all aspects for Unity tech. And who knows, you may one day go a step further make a really successful commercial game.

    Cheers!
     
  4. RickWilliams

    RickWilliams

    Joined:
    Aug 10, 2017
    Posts:
    4
    I have to agree with Chrisk that picking this example apart is rather daunting. It's a process to even figure out where to begin looking for the new Networking behaviours (which is my primary interest regarding this project). I am appreciative that there is an example at all of the new transport layer, but there is a lot of superfluous content in this project to sift through before getting there.
     
  5. @chrisk @Trensharo
    I don't agree with your assessment, because this project carries way much more value than you associate with it at first sight. They said they want to develop it as a serviceable slice. Which means you can learn from it a lot, not just the networking, not just the animation handle or whatever, you can learn the subsurface scattering, the project architecture and many more things. I assume this won't replace the tutorials and other materials when it comes to specific stuff like networking. But if you want to see it a living and working and actually serviced project, here you go.

    You're expecting other kind of material.
     
  6. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    704
    @LurkingNinjaDev, I'm not saying you shouldn't do that. I'm all too happy if they can do that but the split the project into the two. Basically, all codes are put into the base layer, such as network, gameplay, and etc without the heavy-duty graphics contents. And all nice graphics stuff can go the eye-candy layer. Eye-candy layer will directly sit on top of the base layer. Therefore you are not missing anything. This will help Unity programmers iterate much faster.
     
  7. Yeah, they should do that. But only if it's beneficial from the software point of view. And not just yours. Because the reason of this entire stuff is to showcase how to create a real game.
    If your layering causes any trouble, then they should not do it. At this point only they can safely determinate that, since they know what they want to do with this.

    Because we want to learn how to do this type of game. For real. Not in an artificial test bed. We have tutorials and documentation for that kind of abstract stuff.
     
  8. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,659
    Please note that this project is not intended as a 'getting started with Unity networking' sample, which is what it sounds like some of you are really looking for. I'm sure that the Networking team will create learning materials for their new features soon; if you're interested in seeing an example of using the networking tech in the context of a whole project then you're in the right place, but if you are only interested in the networking tech and don't want to dissect an entire project then you may be better off waiting.
     
    Lurking-Ninja likes this.
  9. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Really, people moan for years that Unity doesn't make their own games and now they do...
     
  10. chrisk

    chrisk

    Joined:
    Jan 23, 2009
    Posts:
    704
    So are they really making a real game? I mean a REAL game that they are going to go all way and have live experiences? If you had an experience servicing live online game, you will know it's like. It's day and night difference. You will run into all kinds of issues(network related, both internal and external) that you never thought of and constantly improve your game. If they are going to do that, I'm all for it.

    The problem is that they have not shown what they are going to do with it. I really hope they eat their own dogfood this time. Is that what Unity is saying? I guess that's what they want to say but not committed.
     
    Prodigga likes this.
  11. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    I think so yeah. They won't be selling it but the idea is this is a living project that will go on for a couple of years. Surprising to me as well :p
     
  12. Prodigga

    Prodigga

    Joined:
    Apr 13, 2011
    Posts:
    1,123
    I certainly hope so, but unless explicitly confirmed I don't think so. It seems like this is 'it' - I am sure it'll be patched/maintained moving forward to make sure it is compatible with the new version of Unity but I don't see it being treated like a 'real game', where the Unity dev's have to find solutions to rolling out patches, updating servers, pushing out new content, etc. I worry that it is just 'here is the vertical slice that we made, we'll make sure it doesn't horribly explode for the next few major unity versions but other than that we are done'.
     
    Last edited: Nov 4, 2018
  13. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,534
    People seem way too concerned with what unity sample team is building and not concerned enough with their own projects.
     
    Lurking-Ninja and teutonicus like this.
  14. Prodigga

    Prodigga

    Joined:
    Apr 13, 2011
    Posts:
    1,123
    You are right, it's not like the discoveries made by the Sample Team will drive the development of new features that help relieve pain points and bring improvements to the editor that actually apply to our own real world projects!

    Oh wait.
     
    AlleywayNick likes this.
  15. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,659
    The team is very definitely not 'done.' :)
     
    Last edited: Nov 4, 2018
    Prodigga likes this.
  16. Prodigga

    Prodigga

    Joined:
    Apr 13, 2011
    Posts:
    1,123
    Sweet, thanks for the clarification - I misinterpreted that as "we will make more samples" haha. Excited to see what future improvements will be brought into Unity thanks to FPSSample :)
     
  17. Lewnatic

    Lewnatic

    Joined:
    Sep 29, 2012
    Posts:
    209
    Is it possible to get the Subsurface scattering shaders of this demo somewhere? Im looking for only the shaders.
    Thanks.
     
  18. karstenv

    karstenv

    Joined:
    Jan 12, 2014
    Posts:
    81
    Cant you just copy it into your own project?
     
  19. Lewnatic

    Lewnatic

    Joined:
    Sep 29, 2012
    Posts:
    209
    I dont want to setup github and download a 30GB project just to get a ~10KB file. I currently have terrible internet.