URI:
   DIR Return Create A Forum - Home
       ---------------------------------------------------------
       Sheep Tag Community
  HTML https://sheeptag.createaforum.com
       ---------------------------------------------------------
       *****************************************************
   DIR Return to: Community Discussion
       *****************************************************
       #Post#: 5998--------------------------------------------------
       Sheep Tag Remake - Technical Discussion
   DIR By: XXXandBEER
       Date: February 27, 2017, 4:40 pm
       ---------------------------------------------------------
       Let's talk about geek stuff here! Chakra has already asked some
       great questions.
       What's it written in?
       Unity and C#
       What platforms will it support?
       Priority: PC
       Secondary: OSx and Linux
       It's made in Unity so it can ideally go anywhere.
       How does path finding work?
       As of now it is being handled through Unity's NavMesh system.
       I'm open to alternatives if someone (chakra) thinks they can
       make something better :)
       What kind of content creation will there be?
       Terrain Editor where players can upload custom maps.
       Developer API for tools, apps, and websites using player and
       game data.
       If you have anything to contribute design wise please do so!
       #Post#: 6002--------------------------------------------------
       Re: Sheep Tag Remake - Technical Discussion
   DIR By: Chakra
       Date: February 27, 2017, 6:00 pm
       ---------------------------------------------------------
       Woo, the important bits!
       Path finding
       I would stick to using Unity's NavMesh. It's top-notch. A
       navmesh actually allows free-form pathfinding, unlike WC3's
       grid-based system. This means it'd 100% support buildings that
       aren't fixed to a grid. I'd advise against this for Sheep Tag,
       though, lol. NavMeshes are slower at grid-based movement, but as
       long as they have space-local optimizations it shouldn't hit any
       problems for a game the scale of Sheep Tag (or even a hundred
       times larger).
       Networking
       Networking is a VERY big thing to think about because it
       stretches from the very low-level to the very high-level. At the
       low-level you have considerations of where entities are and what
       they are doing. In the middle-level you have player
       actions/events. At the high-level you have game state logic
       (such as start playing, cancel, modes, etc). I am entirely in
       the dark on how Unity's base networking system works.
       Here are some major considerations on a networking architecture:
       - Is networking event-driven or poll-driven? It's somewhat a
       spectrum. A pure event-driven system would mean ONLY
       player-events are broadcaster across the network. Theoretically
       every client should be able to run the exact same game (or
       replay) with just events. A poll-driven system would include
       constantly updating state. An event-driven system is generally
       easier on traffic but there is a lot more work in making sure
       everything stays in sync. A poll-driven system really sucks with
       long latency/bad internet (ever play a game where your units
       constantly jitter?).
       - Is there a server? Mostly a dumb question in today's world.
       Generally the answer is yes. The alternative is clients directly
       communicating with each other. Either you'd need port forwarding
       or a STUN-type model, which is never fun.
       - Is the server an authority and how much authority does it
       have? Basically, can we trust what the server tells us? For an
       entirely event-driven networking system the point is moot.
       - Does the server have memory? This is slightly related to the
       next consideration, but is also somewhat independent. If
       networking is event based, new clients could theoretically catch
       up from the events alone (a lot easier if you also have
       "key-frames").
       - Is the server dumb or smart? A smart server essentially runs
       the game itself while a dumb server is simply a relay to other
       players. A dumb server mostly only works if it's event-based due
       to the issue of trust. But even an event-based system could
       benefit from a smart server. A smart server, for example, can
       relay "pseudo" events/state and thus hide things from specific
       players (GOODBYE MAPHACKERS).
       - Is there prediction? Prediction can drastically lower the
       appearance of latency, especially if players/servers cheat a
       little (i.e., player orders a unit to move and if no events had
       occurred in the previous n milliseconds, record the event of
       taking place a tiny bit in the past). The trade-offs are
       generally entirely in the pro column beyond just the work to do
       it. WC3 has no prediction while every modern FPS does.
       Content Creation
       So game-logic is going to be hard-coded? A lot easier, of
       course, but limiting. :P Custom terrains are pretty easy to get
       working, however. A custom terrain simply stores heights,
       cliffs, tiles, and objects.
       #Post#: 6006--------------------------------------------------
       Re: Sheep Tag Remake - Technical Discussion
   DIR By: XXXandBEER
       Date: February 28, 2017, 11:30 am
       ---------------------------------------------------------
       Networking
       You sound pretty knowledgeable in this field. There's no doubt
       I'll probably come to you at some point in the future!
       SheepyTaggerNep was working on his own Sheep Tag, and got
       networking done through the free Photon Networking add-on. I'd
       like to use the new Unity 5 networking multiplayer system UNet
       it supports quite a bit of quality stuff, and is compatible with
       every platform.
  HTML https://docs.unity3d.com/Manual/UNetOverview.html
       
       Yes, there will be a server.
       Smart server sounds better.
       Prediction sounds like a thing I'm going to want.
       Content Creation
       Out of curiosity what would you like to see moddable?
       Legion TD 2 has a cool system where they provide some custom
       triggers, and have integrated the Apex Editor.
       For custom games I was going to give the ability to edit Unit
       Stats, Starting gold, Timers, that sort of thing. There's not
       much Physics in the game if any, just collisions, so I don't see
       why you wouldn't be able to disable colliders on certain objects
       if I add it as a 'stat'. Pathfinding will most likely be
       hard-coded, if I use the NavMesh system (I don't have much
       control over that). Really most of this stuff is easy to change,
       but for the core game I want it to be Sheep Tag. I mentioned in
       another thread the ability to easily make map variants like
       Bulldog, and CTF.
       #Post#: 6010--------------------------------------------------
       Re: Sheep Tag Remake - Technical Discussion
   DIR By: Chakra
       Date: February 28, 2017, 11:04 pm
       ---------------------------------------------------------
       Networking
       UNET looks good. Are you using any physics? That'd complicate
       matters a lot as physics are generally not deterministic
       (Unity's is not); there are ways to get around it, just involves
       some safe desyncing. WC3 has no physics. You could also,
       possibly implement your own deterministic physics engine, but
       they are hard.
       Content Creation
       Ideally I'd love everything to be modifiable. :P That of course
       necessitates open source on the client end. Short of that,
       moving the game logic into the mod, like what WC3 does, gives a
       lot of power. This basically means the core classes, like
       entities, pathfinding, movement, networking etc., are protected
       but anything that controls the real "flow" of it is not. WC3
       actually kind of did it hacky and basically hardcoded melee and
       put in a trigger that says "I'm melee!"
       #Post#: 6023--------------------------------------------------
       Re: Sheep Tag Remake - Technical Discussion
   DIR By: XXXandBEER
       Date: March 2, 2017, 2:50 pm
       ---------------------------------------------------------
       Everything will mostly be handled with raycasts. I'm going to
       try an avoid using Unity  Rigidbodies.
       For content creation I'm going to make the base necessities of
       what makes a Sheep Tag game, and then make as much of that stuff
       accessible as I can. However,  Sheep Tag is the focus here :)
       and honestly if you want complete control we can do it through
       Unity. I'd be willing to put the core of the game on the asset
       store as a package, and then I could hypothetically implement a
       way for people to save out their creation as a playable custom
       mod in Sheep Tag 2, and upload it.
       I did have a question relating to how I should handle the
       client? Should this be an all-inclusive game where the client
       has lobbies, chat, adding friends all built directly into the
       game. Or should it be more LoL style where the client is
       separate from the game. Also, this is something I could use a
       lot of help on. I'm confident I can make the game playable, but
       allowing users to interact with one another is a whole different
       mess I've not yet dealt with. However, I am quite familiar with
       RESTful APIs and that sort of programming.
       *****************************************************
       Page 1 of 1