1 hour ago, hplus0603 said:
My experience (and following other people on this board over time) suggests that you'd probably be better off if you did include simulation frame numbers with data, but you do what you do ?
And, after all, Roblox defaults to client autoritative, because that's an easier model for developers to get started with, although it allows you to move authority to servers if you choose to. And Roblox is now a $2.5 billion company, so it's clear that there's room for all kinds in the world!
Also, Unreal Engine also allows you to be client authoritative if you want, and some games are. If those games get popular, they get hacked. Oh, well.
Btw, if all you want to do is make a multiplayer game, you could do worse than downloading Roblox Studio and try it out. They take care of all the physics/rendering/matchmaking/networking, and you write your game in Lua. It's not for everyone, but it's super simple to get something real written!
Yeah, I'm sure I'll need a time reference for some things, but not frame numbers. There is no frame level synchronization, so frame numbers wouldn't be much help, they'll be different for every client. I use a per client recycling packet sequence number to keep track of the relative order of events, mostly for throwing away out of sequence data. As well, the clients synchronize to the server time so if/when I do need to relay time sensitive data, they can. But that is all I'm using currently. If the data being sent from the client doesn't vibe with a reasonably recent matching historical scenario, then the shot/kill/etc will not create a loot drop or cause the target to "die".
They might see it go down at first, but then it'll just shake it off and run away/come back at em.
I've already built a whole world to serve out in Unity, and I'm good enough with C#. I just ported the first of the 6 servers over to Linux today, it's already behaving better, so I think I've got the all the right tools in place to make my vision a reality.
Honestly, when it comes to hackers, my game is going to be fairly adaptive and my hope is that I can generate the algorithms to detect in-game cheating and modify the game behavior to make it less effective.... And/Or convert it into a type of game-play. As I said, I'm still building an authoritative server system, it's just not completely centralized... The client is authoritative on the 3d simulation, it moves the characters around according to server dictated constraints. As well as determining if a projectile hit another player/npc, the damage and/or the result of these actions will be finally determined by the closest authoritative node in the network, and then relayed back to the client. As for physical network hackers, I've spent many days and nights in the trenches fighting that beast, I've some tricks up my sleeves here and there. ![;) ;)](https://uploads.gamedev.net/emoticons/medium.wink.webp)
Now, how many of my grand ideas make the final cut is a whole other story.. ![:D :D](https://uploads.gamedev.net/emoticons/medium.biggrin.webp)