Game-Networking-Resources
Backroll
Our great sponsors
Game-Networking-Resources | Backroll | |
---|---|---|
10 | 2 | |
4,566 | 120 | |
- | - | |
5.1 | 0.0 | |
almost 2 years ago | over 2 years ago | |
C | C# | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Game-Networking-Resources
-
Single player to multiplayer
https://github.com/MFatihMAR/Game-Networking-Resources (This is a list maintained by someone else, and it has some amazing things in it, and far more technical leaning than what I maintain).
-
N64 Games Only Allow 1 Controller Online
When you play any kind of real-time online multiplayer game, it is physically impossible for all players to have the same view of the world. As a result, approximations have to be made, for example by extrapolating other player positions. There is plenty of research on this subject, and most modern games do a pretty good job. But when you add a second local player, things get a lot more complicated.
-
Basic af networking for idiots
This collection of links is a gold mine, it’s how I learned almost all that I know: https://github.com/MFatihMAR/Game-Networking-Resources
-
Epic Games releases free anti-cheat and voice chat services for developers
Game network programming mega compilation.
-
What's the best solution for quick match making for multiplayer games
Looks like you are trying to find a Multiplayer solution, take a look at this guy's repo, he have a lot of resources about the topic https://github.com/MFatihMAR/Game-Networking-Resources
-
I'm looking for software with no encrypted traffic
Are there games that you could find and analyze? I wonder if old school games (or their multiplayer lobby servers) would be easy targets (I'm pretty sure a buddy said the Tribes 2 server protocol was really basic, but I could be very wrong.) A list of resources I found: https://github.com/MFatihMAR/Game-Networking-Resources
-
How did you learn how to make a dedicated server for a multiplayer game? Books? Tutorials? University?
https://github.com/MFatihMAR/Game-Networking-Resources (This is a list maintained by someone else, and it has some amazing things in it, and far more technical leaning than what I maintain).
-
Is there any decent MMO/persistent world server platform, or should I just write my own server?
As this is a "side hobby project", and not your main thing, you're probably better off making your own server (but use a networking library and another other helpful libraries you can find). A starting point: https://github.com/MFatihMAR/Game-Networking-Resources
-
Should I make the game itself first, or the networking?
Helpful resource: https://github.com/MFatihMAR/Game-Networking-Resources
-
Multiplayer P2P relay profitability - need to hear from experienced teams
https://github.com/MFatihMAR/Game-Networking-Resources (This is a list maintained by someone else, and it has some amazing things in it, and far more technical leaning than what I maintain).
Backroll
- Stuff to learn for game development?
-
Making a Fighting Game
What most state of the art fighting games nowadays implement is rollback netcode (an implementation on top of lockstep based p2p netcode). This works when the amount of concurrent players in a game is low (2-4). Although I don't see a reason why there couldn't be an authoritative server solution like many other games have it, but then you also had to simulate the authoritative logic on the server instance. The upside is that you can realistically support more concurrent players. Comig back to rollback netcode, for this to work you need a determinisitc simulation. Each simulation on any hardware you support has to play out the same if the same input is provided over the duration of the simulation. Depending on which set of hardware you want to support, this can mean to completely throw out all relevant game systems that use floating point math and replace them with fixed point number types, since different processors might yield different float calculation results, or there are some differences in how compilers choose to optimize calculations. One additional problem for p2p networking is actually to connect with the other player. I recommend having a matchmaking server for this, that just pairs up players. More often than not, every player is in their own internal network and it's hard to connect to the PC over the network then. It would be possible to open map a port from your public IP of your router and re-route incoming messages to your PC in the internal network using port forwarding. This however requires manual setup and can leave you open to some attacks from outside. Having a public external server for matchmaking/pairing up can try to bypass those issues with punch-through). GGPO is popular transport library for rollback based netcode, It has gone open source a while ago too. If you look for an implementation for Unity/C#, I recommend checking out Backroll. Even if you use it, there will be a lot of things you still have to implmenet yourself to actually support rollback. Like making sure that input data representation is the same for every client, having a deterministic simulation, being able to serialize or temporary store a whole copy of your dynamic game state, applying such a stored game state back to the game simulation, and fully running several logical game frames with the call of a method, where input might be provided from historical records of real or predicted inputs of the players. For this reason, a lot of fighting games run the actual logical simulation completely outside of the rendering step. This all sounds pretty complex, but there are also benefits that naturally emerge from a rollback netcode or lockstep implementation: Network bandwidth requirements are very low since the most data you will need to send are inputs, and state hashes to make sure that the game simulations stayed in sync. When you store the history of inputs for a game in a file, and various other inputs you might have (seed for deterministic random generators etc.), you basically have all you need for a replay file, and just can run the simulation on those inputs (a problem is that this will break if you make changes to the simulation though).
What are some alternatives?
colyseus - ⚔ Multiplayer Framework for Node.js
UnityGGPO - A DLL that lets you access the ggpo library easily from Unity, and an example project using it.
com.unity.netcode.gameobjects - Netcode for GameObjects is a high-level netcode SDK that provides networking capabilities to GameObject/MonoBehaviour workflows within Unity and sits on top of underlying transport layer.
ggrs - GGRS is a reimagination of GGPO, enabling P2P rollback networking in Rust. Rollback to the future!
sora-unity-sdk - WebRTC SFU Sora Unity SDK
rpfload - PF firewall config loader for OpenBSD and FreeBSD with automatic backup rollback and logging
NoahGameFrame - A fast, scalable, distributed game server engine/framework for C++, include the actor library, network library, can be used as a real time multiplayer game engine ( MMO RPG/MOBA ), which support C#/Lua script/ Unity3d, Cocos2dx and plan to support Unreal.
2DFPhysics - 2D fixed-point physics for Unity (WIP).
GameNetworkingSockets - Reliable & unreliable messages over UDP. Robust message fragmentation & reassembly. P2P networking / NAT traversal. Encryption.
com.fightcade.Fightcade-ARCHIVE - ARCHIVED - go to flathub/com.fightcade.Fightcade
wine
GameNetworkingResources - A Curated List of Multiplayer Game Network Programming Resources