https://github.com/nucleartide/thefishnetworkbook
Learn FishNet for Unity in the style of a math workbook: through hands-on exercises and application.
https://github.com/nucleartide/thefishnetworkbook
Last synced: 12 days ago
JSON representation
Learn FishNet for Unity in the style of a math workbook: through hands-on exercises and application.
- Host: GitHub
- URL: https://github.com/nucleartide/thefishnetworkbook
- Owner: nucleartide
- Created: 2024-02-16T06:18:45.000Z (over 1 year ago)
- Default Branch: public
- Last Pushed: 2024-03-26T11:29:10.000Z (over 1 year ago)
- Last Synced: 2025-04-22T21:52:42.061Z (6 months ago)
- Language: C#
- Size: 4.73 MB
- Stars: 11
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# The FishNet Workbook
> Learn FishNet for Unity in the style of a math workbook: through hands-on exercises and application.
## Quick start
Please jump right to the [workbook exercises below](#on-math-workbooks).
Otherwise, read on to understand what this repo is... ๐
## Motivation
It is 2024, and any hit game will feature multiplayer heavily in its gameplay.
And if you're using Unity, [FishNet is a solid choice for your networking stack](https://forum.unity.com/threads/updated-free-networking-solution-comparison-chart.1359775/). It's free, the developer is friendly and responsive, and their Discord community is incredibly helpful.
But... there's 1 problem: _how do you get started?_
FishNet isn't *hard* to learn, but there are numerous concepts and not-too-many "getting started" guides.
And while YouTube videos or courses *can* help, I feel they aren't the most efficient way to learn. It feels akin to watching a pro play basketball; at some point, you need to stop watching others, and get your *own* hands dirty.
## The dream
The ultimate goal for you is to understand 3 things:
1. what tools are provided by your networking solution (FishNet), and how to use them,
2. when or *why* you should use each tool,
3. and how to use these tools to architect any multiplayer game of your choosing.Be it peer-to-peer or dedicated server, turn-based or real-time โ you want to be a **multiplayer architect**.
You want to be a creator of multiplayer experiences that bring people together. But how?
How do you learn something new โ in this case, networking with FishNet โ in the *least amount of time possible*?
## On math workbooks
You don't need a YouTube video.
What you need is a *math workbook*. A set of end-of-chapter exercises that:
1. get your hands dirty in multiplayer programming as soon as possible, and that
2. progressively build your understanding by posing well-designed questions: forcing you to do research, build GameObject hierarchies, and write C# code ASAP.Thus, this repo provides a set of successive exercises that teach you multiplayer programming in Unity, using FishNet as your networking solution.
You can see links to the exercises below, which guide you through building a room-lobby system (inspired by [FishNet Pro's](https://fish-networking.gitbook.io/docs/master/pro-and-donating) Lobby and Worlds system). Currently, there are 35 as of this writing โ *35 Exercises to Learn Multiplayer Game Programming*:
| Exercise | Link |
|-------------------------------------------------|-------------------------------------------------------------------------------|
| Build your own `NetworkManager` (5 exercises) | [Exercise 1](./Assets/Exercises/01_Understanding_NetworkManager/Questions.md) |
| Managing server and client sockets (6 exercises) | [Exercise 2](./Assets/Exercises/02_Server_Client_Sockets/Questions.md) |
| Multiplayer architecture (11 exercises) | [Exercise 3](./Assets/Exercises/03_Architecture/Questions.md) |
| Deployment with Edgegap (3 exercises) | [Exercise 4](./Assets/Exercises/04_Deployment/Questions.md) |
| Implementing a simple login system (6 exercises) | [Exercise 5](./Assets/Exercises/05_Auth/Questions.md) |
| Code quality (4 exercises) | [Exercise 6](./Assets/Exercises/06_Code_Quality/Questions.md) |
| *(more to come soon...)* | |
## License
Please see FishNet's and TextMeshPro's respective licenses for usage restrictions.
The written exercises in this repo are unlicensed. Thus, you may not re-appropriate the written exercises as your own.
However, feel free to remix or modify the C# scripts as you see fit.
---
> Jason Tu ยท [jasont.co](https://jasont.co/) ยท [LinkedIn](https://linkedin.com/in/jasontu)