+-

Elder Scrolls


Author Topic: Sheep Tag Remake - Technical Discussion  (Read 150 times)

XXXandBEER

  • Runtag Supremo
  • *****
  • Posts: 324
    • View Profile
Sheep Tag Remake - Technical Discussion
« on: February 27, 2017, 11:40:42 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!

Share on Facebook Share on Twitter


Chakra

  • Runtag Supremo
  • *****
  • Posts: 279
    • View Profile
    • Chatcraft
Re: Sheep Tag Remake - Technical Discussion
« Reply #1 on: February 28, 2017, 01:00:24 am »
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.

XXXandBEER

  • Runtag Supremo
  • *****
  • Posts: 324
    • View Profile
Re: Sheep Tag Remake - Technical Discussion
« Reply #2 on: February 28, 2017, 06:30:00 pm »
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. 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.


Chakra

  • Runtag Supremo
  • *****
  • Posts: 279
    • View Profile
    • Chatcraft
Re: Sheep Tag Remake - Technical Discussion
« Reply #3 on: March 01, 2017, 06:04:53 am »
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!"

XXXandBEER

  • Runtag Supremo
  • *****
  • Posts: 324
    • View Profile
Re: Sheep Tag Remake - Technical Discussion
« Reply #4 on: March 02, 2017, 09:50:03 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.

« Last Edit: March 02, 2017, 09:51:53 pm by XXXandBEER »

 

Recent Posts

Re: Sheep Tag (East) A Complete History by iAMMYOWNSTONE
March 26, 2023, 04:46:15 am

Re: Sheep Tag (East) A Complete History by Alph4bet
January 03, 2023, 02:14:02 pm

капли для похудения by Mrunitemanymn
August 19, 2022, 07:27:59 pm

капли для похудения by Mrunitemanymn
August 19, 2022, 12:44:08 pm

Reconnecting With The Community - Sheep Tag Discord by FaceOfMelinda
January 11, 2022, 12:45:00 am

Re: Sheep Tag (East) A Complete History by Mitnek
August 17, 2021, 04:11:39 am

YOoooo by Celestial_One
February 04, 2020, 04:05:05 pm

hey guys! by Celestial_One
January 01, 2020, 01:08:18 am


Shoutbox

View Shout History