Comments (7)
Bump
from entitas.
To me Option 2 means rewriting everything, you need to think differently when you want to handle multiple matches. there's a risk of interference between matchs... scaling is a pain also.
Option 1 is probably your best bet
will offer a more stable gameplay experience, any issue or crash would technically affect a single game.
it's easier to predict ressource usage and easier to scale by just spawning more game servers.
but being server-authoritative you might need to implement lag compensation and client prediction... but with movement and bullet speed seems slow enough that you might not need it at first... coop can probably work fine without it, but PvP will prolly need it.
from entitas.
Entitas works fine in console application and don't need unity. Also, you can have as many copies of context in one instance as you want. In our project we have two copies of contexts in one game at same time for local and global data. You just need to manage that copies by hand or dependency container.
If I have to make a multiplayer game, I will choose 1 option.
from entitas.
Thank you for your thoughts! My second issue is physics, as it's a shooter game with collisions. It's got to be server authoritative but also I have to move core gameplay there as well, while at the same time having it in singleplayer game modes too.
Should I have a pure C# collision library both backend and frontend?
Or use a UI-less Unity instance for each match?
from entitas.
You can use a UI-less Unity instance as a server, handling multiple games at once, tag each networked entity with an id what game it belongs to and only broadcast those that belong to the game the current player is in. You can load multiple maps, aslong as you offset them by a generous value so their physics objects do not collide
from entitas.
you can use Unity in headless-mode I think, my understanding is that it will simply work without rendering anything.
a very simple implementation would be to have clients only send input to the server, process physics on the server, and sync position and stuff back to the clients.
But lag will probably feel bad for players so you also run the physic on the client to control the 'local' player, but then you always take what the server say the position is so that clients can't cheat. on slow-ish movement it should work pretty well
from entitas.
@mchamplain Ha, I remember rubberbanding in shooters. Due to large amounts of physics layers, I probably would have to create a new instance for each match, rather than all games in the same instance
from entitas.
Related Issues (20)
- Unity crashes when clicking on a GameObject with Component of Entitas HOT 8
- Remove DesperateDevs dependencies
- [SOLVED] Unity 2022.3.4f1: Exceptions + broken inspector when looking at any entity HOT 16
- Add/Replace/Remove vs Set/Unset HOT 5
- Boolean in setttings for unique components to actually be unique
- A component with multiple contexts +events, only make event listeners for 1 context
- Could not resolve type with token ... expected class System.Threading.CancellationToken HOT 10
- How to generate codes in a project which has several csproj files? HOT 1
- Update on Entitas 2.0-beta and my situation HOT 4
- [1.14.1]code gen twice and compile error HOT 1
- there is a Error, on click Tools/Jenny/Gennerate, how can I do? HOT 4
- _group.GetEntities().AsParallel().ForAll(Execute);这段语句有GC HOT 2
- Entity Behaviour in Unity inspector not visible HOT 2
- Removal of crucial SearchPaths when executing the wiz command
- How to get all group in some context, without reflection。
- GUI Null ref when trying to view entity in inspector HOT 1
- generator issues HOT 1
- Error running dotnet Jenny/Jenny.Generator.Cli.dll gen -v command - System.IO.FileNotFoundException HOT 1
- Bro i want remove this how i remove
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from entitas.