Great video. Building mmo backend server using micronaut is quite a unique content I must say :) But I really enjoyed it.
@RetroSteve05 ай бұрын
Bro is literally provides better education free on KZbin than people who try to charge for courses on Udemy and Teachable.
@nickbubuioc Жыл бұрын
Amazing, you have no idea how much you helped me with those videos.
@palto5676 ай бұрын
how are you handling collisions? Are you exporting geometry and evaluating in the server, or is the client authoritative?
@unreal-dev-with-yaz6 ай бұрын
Hey :) For the time being, the server is not handling collisions This will be an improvement in future and will likely include exporting the geometry/dimensions and cross validating the motion updates.
@boriscreativespace Жыл бұрын
Really solid architecture video!
@irfanajanovic Жыл бұрын
How would you go about validating player motion on the server to prevent cheating (speed hacking, teleporting, etc.). Only way I can think of is to utilize UE Server to do some sort of validation, otherwise you would have to implement all of that logic on your custom server (physics, collision, etc.).
@unreal-dev-with-yaz Жыл бұрын
hey :) you're right - motion validation would be one of the trickiest aspects to do here personally, I will be implementing some very basic motion validations using my server cached states and iterate upon it in future i.e. i know what the last motion state was, so when i receive a new update I can check whether it's plausible and accept/reject the update after comparing it to previous state(s) this should prevent 'speed' and 'teleport' hacking, but it does not take into account physics/collisions (so you could have fly hacks and walk through walls) there will be ways of implementing it, but as you point out its not trivial - its effectively re-implementing the physics in the server you'd also have to find ways of exporting map/object data out of the game into the server as well. it is achievable, but will take a while to implement without adding too much value to MVP, so for now its on a lower priority
@irfanajanovic Жыл бұрын
@@unreal-dev-with-yaz makes sense, thanks.
@xSh4dowXSnip3rx11 ай бұрын
Question for ya man. I read through your other responses and I feel like your idea of having independent services to the different data/info to scale information processing adds a new and difficult layer of complexity for security and cheat validation. Although, I acknowledge this is true for any software of this scale but, would it not be a more sensible solution to go with server sharding? As it stands I don't realistically see why you would want to run potentially 10s to 100s of independent UE server instances to perform different calculations and validations serverside, at the very least in the manner I've understood you to mean. Personally, I've always thought sharding was a no-brainer given you can have "mega-servers" with potentially tens of thousands of players altogether and perhaps combine that with instancing with a few hundred/thousand players for client rendering limitations if needed. In that way, your player population would be contiguous and be able to potentially interact with people cultures outside their own within the game too!
@unreal-dev-with-yaz11 ай бұрын
Hey :) So this video is doing a small dive into the code which is referenced in the architecture video: kzbin.info/www/bejne/ema1gmWjlJKBiposi=zRfIAfOb6Yhhl4-p For majority of serious projects, the recommended approach for networking with UE is using native replication and sharding the servers, either by map or area. However I am not sure what you mean by mega servers. Perhaps something along the lines of OWS: kzbin.info/www/bejne/r4O7q5WXg7lplc0si=hNKyUY0Lbje6Ct9Z Where you can design a game to host millions of players and split the population into UE server shards The main goals for my project: allow more than 100 players to interact concurrently with each other (this is currently a limitation with replicated model) and make it cheaper to run. It's in its very early stages and is mainly useful for educational purposes :)
@olexayko Жыл бұрын
I thought serious backend for games is coding with C++ not with java -_-
@unreal-dev-with-yaz Жыл бұрын
hey :) the architecture proposed is actually language agnostic, so you can apply it using C++, C#, Java, etc architectural decisions will in fact have larger impact than your language of choice, e.g. DB/cache systems will have a larger impact than c++ vs java. however, if you were aiming to create the most performant system possible, you may want to choose c++ over java. but with same arguement, should you write in assembly language? there's many points to consider, for businesses its also about hiring developers anyway, in my opinion you can write a decent server in multiple different languages, c++ is currently the industry standard Atavism (atavismonline.com/) is building MMO server tools using Java as an example