Search Unity

Online FPS: Am I biting off more than I can chew?

Discussion in 'Getting Started' started by adamdonovan88, Apr 26, 2017.

?

Worth the pay off?

  1. Yes

    0 vote(s)
    0.0%
  2. no

    0 vote(s)
    0.0%
  1. adamdonovan88

    adamdonovan88

    Joined:
    Mar 9, 2017
    Posts:
    3
    Hello, I don't post to these forums often, but they have given me great wisdom in the past.

    For years I've had a side project in my head that I decided to start working on about a month ago. The basic idea is that I am a design snob, my friends are design snobs, and every year it feels like another FPS comes out that looks like it's going to solve old issues, but it doesn't. We have a list of complaints that seems to come up a lot, so I always thought it would be cool to make an online FPS that we can tweek whenever we wanted. We have the skills, why not?

    Here's the thing, I have the game 90% functional, I've even tested it on split screen a few times, but I have literally no experience with networking. I've watched a lot of videos (probably about 15, each at least 20 minutes long), and I go "ok, this looks like no big deal", but am I missing something? Am I biting off more than I can chew?

    Here's some specific concerns:
    1) Big maps. not Skyrim big, but as big as certain Battlefield maps,, or Halo Reach's Forge World.
    2) I haven't added them yet, but I'm thinking about certain destructible environments
    3) there is a crafting element and base building element
    4) I don't plan to go crazy with particles, but I would love to incorporate smoke bombs, and smoke trails.
    5) There's no documentation on private servers for Unity, is it similar to public one?
    6) and anything else I may not be thinking

    Keep in mind, there is no match making, and games will only exist if I text my buds together on a saturday. Imagine a LAN party, but for dude in their 30s that have wives and kids and can't leave home.

    Any and all context is appreciated. Thanks!
     

    Attached Files:

  2. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,512
    If you're building an online FPS and haven't written any network code, I suspect you're not even close to 90% finished. I think the number may be closer to 9%. I could be wrong. Maybe you'll just be able to slap some network code in there and everything will fall into place. After all, my limited experience was with a turn-based game using Apple's GameKit API, but I had a nightmarish time converting my single device prototype to network-compatible code. A year of cobbling things together later and I promised myself that any future online multiplayer endeavors I undertook would be written from the ground up with the network code in mind.

    Your list of concerns are all great things to be concerned about, and I think each and every one of them will be an obstacle in their own way when you get to them.

    I would recommend starting a new project to get the basics of networking implemented. Start with an empty scene that allows multiple clients to connect and just logs a message when a player joins or leaves. Then add in standard FPS controllers that represent the player and their Transform as it moves around. Then add things like when a player presses the space bar, an object is spawned and moves towards the other player. Then modify it so the object disappears and logs a message once it touches the other player.

    Work your way up until you have things working the way they need to from a network side, then start patching your work from your current project into that framework. That's how I'd do it, anyway.

    I'd love to see some screenshots of this 90% complete project, though, just out of curiosity!

    Good luck!
     
    Kiwasi likes this.
  3. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,519
    90% basically means "done", but you have one post, no screenshots, are missing the core component of the reason behind your game and the post-smell of idea guy syndrome.

    To answer your question though, Networking as an afterthought is not really a thing. It is significant work and should begin at the start of the project.

    Also, why is there a picture of a guy on a bike attached to your post?
     
  4. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,512
    I assume for the same reason 90% of first posts have a poll to go along with them. The option is there, so why not throw something in there for the hell of it! :p
     
    Kiwasi and LaneFox like this.
  5. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,519
    I see, because that makes total sense!
     
  6. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    I thought that was because people didn't realise they could leave the poll section blank... which always bodes we'll for someone starting programming. :p
     
    Last edited: Apr 27, 2017
  7. adamdonovan88

    adamdonovan88

    Joined:
    Mar 9, 2017
    Posts:
    3
    Haha, you guys are probably right, it's probably no where near 90%. But I have been trying to do things in a puzzle piece fashion so that I can carry pieces forward as I need to rebuild. Also,I didn't need advice on basic game mechanics, because that part has been moving forward at a steady pace.

    I've followed Unity Forums for a few years now, and I have been able to learn most things I've wanted from past posts. But I had some general networking advice questions that I needed to ask, so I decided to post them.

    I was also 100% aware of how the Unity's forum community acts towards people that are new, which is a standard "give up and go home"... But I didn't really need a parental lesson, I needed advice and resources...

    I suggest reconsidering this attitude. With the amount of resources online and in the Asset Store, the barrier to entry is lower than ever.

    Anyways, like I said, I've sunk a lot of time into watching videos, and my knowledge is not really expanding much on the network subject. I really appreciate Schneider21's first reply, it was helpful and it has expanded my search. Let's be honest, everything else was about trying to shame me. Not really an encouraging first first post.

    -And if anyone is actually curious, I kept getting an error when trying to post, so I thought I'd drop an image in the field and it posted right away.
     
  8. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,512
    I had a really bad morning yesterday, so even my responses were a bit rougher than I usually strive to be. However, if you've been following these forums for a few years, you should recognize that "give up and go home" is a relatively recent trend in advice. Honestly, I think it's because the same group of people have been giving out the same advice to the same questions being asked by newcomers over and over again. With time, it starts to get to you... like, why am I even bothering giving advice and information when a) nobody is going to follow it anyway, and b) they didn't bother searching to see that the same or very similar question was asked hundreds of times already.

    Some members are a bit more prickly than others, but generally speaking this forum is hands-down the most supportive online community I've ever seen. I think the trigger in this case was the "90%" thing, which suggests a lack of awareness as to how much work you actually have to do still and a reductive attitude toward the tasks you did identify. Couple that with the unnecessary poll and attached photo, and it was practically like painting a target on yourself. :p

    That said, the comments in this thread are super mild and more akin to playful ribbing than spiteful or malicious. It'd be prudent to toughen that skin up awhile if you want to create games others are going to play, because they don't hold back at all with criticism or complaints.

    I'm in a fantastic mood today and feeling very helpful. I really would love to see some shots of your progress and a bit more info on what kind of features you have. And if you decide to take the approach I suggested in my first response, I'm interested in keeping track of your progress with converting a single-client game into a networked one.

    Keep at it, and keep us posted!

    Edit: Grammar
     
    Steve-Tack and Ryiah like this.
  9. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,145
    We try to maintain a positive attitude in the Getting Started section of the forums (General Discussion has an almost entirely different group of people frequenting it and is almost like an entirely different forum), but far too often we see people show up with only an idea for a game.

    An idea on its own is to be expected and encouraged because often that idea led them to become interested in game development, but what about ideas that are completely unrealistic? We've had people show up all sorts of ideas including building the next big MMO on par with World of Warcraft. Yes, it does happen.

    Are we supposed to pat them on the back while offering words of encouragement? Realistically we who have been at it for a very long time know that it is simply out of the reach of a developer - regardless of how skilled they may be - to create a game of that magnitude. Some of them even come to realize this themselves, while the remainder fruitlessly find out the hard way.
     
    Kiwasi, Schneider21 and LaneFox like this.
  10. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,519
    To add to that, its important to note that while the entry barrier is low, the barrier to closure is not and it scales with the scope of the project. So when people arrive with ideas of grandeur, basically nothing to back it up and a list of assets they're going to stitch together to make a franken-game... it can generate some hysteria.
     
    aer0ace and Schneider21 like this.
  11. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,145
    Under the hood Unity uses single precision floating point numbers. If you intend to have a large complex world you may need to use a floating origin to counteract the disadvantages this brings with it (eg wonky physics).

    Last I checked there simply weren't that many assets available for destructible environments and out of those about the only one I was aware of with good features has now been abandoned. It includes source code and was designed to be networking friendly, but the reviews make it apparently that it no longer works out of the box.

    https://www.assetstore.unity3d.com/en/#!/content/31100

    Base building in the style of Fallout 4 where you place premade meshes down would be fine, but anything more complex brings us back to the same problem as with destructible environments.

    You won't have any problems here.

    Just for clarification are you referring to private vs public? Or dedicated host vs player host? If you're referring to the former then the difference is one often has a password or is limited to people on a list (eg Steam friends list). Outside of that private is basically the same as public.
     
  12. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    You do realise noone actually said that to you right? The advice amounted to 'Start a new project with networking, and incorporate you existing features one at a time'. That's solid advice for any project wanting to add networking.

    If you want to change community attitudes, the best way is to become a part of the community. Participating will change attitudes faster then complaining. But be careful, we might rub off on you. ;)

    Videos tend to be aimed squarely at the beginner market. You are going to want to dive into the text documentation. Despite the advertising, networking is far from a beginner topic.

    Your posts indicate you have a long way to go. That's fine. Accept that and start the journey. A multiplayer FPS is within the grasp of a single dev, which gives you a leg up on most beginners.
     
    LaneFox and Schneider21 like this.
  13. adamdonovan88

    adamdonovan88

    Joined:
    Mar 9, 2017
    Posts:
    3
    So I'll be honest, I wanted to reply with a knit pick of a few things said here and there, but it only took me a breath to realize that's not right. Even though I didn't like feeling mocked for admitting my ignorance, I can see everyone here has a lot of passion for this community. And it was genuinely delightful to see no one shrugged off my comment like it didn't matter.

    @Ryiah I appreciate the breakdown, and I will get back to you on some of it when I'm off work.

    @BoredMormon on your second point. You're right, I'll try to jump in where I can.

    And I hate describing myself, but I have been doing freelance Web Development for a long time (since High School, so like 10 years now). I know HTML, CSS and Javascript well enough to do basically anything I need, and I have dabbled enough with PHP to be able to pass it off to a friend or expert. I have been trying to learn Java for a few years now, but truth be told, I hate coding... My ADD constantly has me jumping to the nearest blog or YouTube video for a distraction (see above as to why I have so much dumped into learning that way). Not to say I don't understand it, but writing is a bitch... Lastly, I'm working on a Support Team for a financial software, and it just doesn't feel like any of this leads me toward my passions. I mostly fancy myself a UX designer, and I really only care about moving projects through to success. And that's what this is, another project.

    So, yeah, you called my bluff, 90% is not accurate, but it kinda is... I have basic mechanics for movement, guns, and health. I have demo areas to run around in. I've fiddled with some split screen stuff. And for an MVP, that's 90% for me. Now I'm to the point that I need to prove that I can link to my buddy and shoot each other. That's a lot to prove with my limited attention span, lack of time, and limited Java/C# under my belt. That being said, I'm really good at forcing myself to learn something.

    This isn't something I'm selling, it doesn't need to be pretty, I'm willing to change my expectations based on my limitations, I understand the concept of an MVP, I know things take 5 times long than you expect at the beginning, and I know I'm an under equipped one-man-army. But I still have to find out how to get this puppy connected to a server.

    Also, TBH, I'm hoping this has made me a little more recognizable to all of you, because I've seen fantastic answers to questions on the board here from a few of you in the past. Hope I didn't spoil my reputation for you guy on day 1.

    Thanks!
     
    Schneider21 likes this.
  14. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,512
    We all start somewhere. It's natural to get defensive when confronted directly, but your attitude in that last post suggests you've got what it takes to handle it properly! I'll admit, in the past I haven't been great with this.

    I like you. I think you're gonna be a good addition to the forums. :p

    - - -

    Anyway, back to the topic at hand. I think we also all assumed you were trying to make the next Call of Duty, based on your statement about having problems with every other shooter you've played and suggesting your game would fix those issues. However, if your goal really is just to get a basic shooter up and running that runs like crap, controls horribly, and has next to no features, but is something you can add on to and make better over time, then you've got the right idea!

    In fact, if your MVP is just a bare-bones, ugly shooter with LAN connectivity, you may be further along than we all assumed. Maybe not 90%, but maybe around 40-50%, which isn't bad at all. Again, I recommend going through the method I described and seeing where you land.

    Additionally, as a guy in his 30s with a wife and a kid (and a second one on the way), I love the idea of making a private multiplayer game to share with my friends. Unfortunately, nobody in my family/friend circle will commit to learning this crap, so I'd be working on it alone, and I've got bigger fish to fry!
     
    Tset_Tsyung and Kiwasi like this.
  15. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    It's always good for us to have new blood. Some of us forum veterans can get fairly stuck in our ways, and sometimes it's hard to see the effect our posts might have on new comers.
     
  16. methos5k

    methos5k

    Joined:
    Aug 3, 2015
    Posts:
    8,712
    For what it's worth, I read this post yesterday, and I think if you just want to have some fun and add a small multiplayer aspect to your game, sure ya can do it :) Networking is one of my fav. things, and even though I'm not a super expert, getting your game to work with a few people could be a lot of fun.
    Not sure what else to add at this point, but perhaps I will see a follow up post someday in the future where ya have it working :)
     
  17. Tset_Tsyung

    Tset_Tsyung

    Joined:
    Jan 12, 2016
    Posts:
    411
    Hey Adam,

    Welcome on board, bud.

    I actually love everything about this thread, everyone is just awesome. [smiles like he's high, goes to give everyone a hug - run, RUN, like you're life depends on it!!!]

    Ahem, anyway. Just wanted to add a few things about networking and destructible terrain and my experiences.

    First I have no official education in GameDev, everything I know I've learnt since I started using Unity last year. But I'm loving the learning.

    The Unity networking frustrated me so much as there was (for me at least, with the way I learn) no real way to understand how to implement what I'd learnt into a game - however that was ages ago, I don't know what the situation is now. And even at the time I learnt a heck of a lot from it, and got a basic semi-completed concept of a game running that my mates and I loved playing! If you would like any help/source code I'd be glad to assist.

    As for destructible terrrain, this is a side project/tech demo that I'm ACTUALLY working on at the moment (taken a break to read this post). I suggest that you brainstorm/experiment with enabling/disabling bricks in a wall (i.e. when wall takes enough damage turn all the rigidbodies of bricks on), with model substitution (switching out a whole brick for 2 previously shattered bricks done in blender) and finally, check out this article on slicing meshes:
    https://gamedevelopment.tutsplus.co...namically-slice-a-convex-shape--gamedev-14479

    It's taken me almost 2 weeks, but I've got it working... just need to finish it off the polish of the final objects. I had to go and learn some of the maths at Khan Academy, but was a brilliant experience for me to get this working.

    As always, I hope I haven't come over at all preachy (I am a noob after all) and look forward to seeing how you game comes along!

    (Why do my posts always end up long?)