• Game Play:
I would like to share this small test-progress vid of the current game’s stage , but unfortunately doesn’t show a lot of what’s being implemented in the backend and the models might not be very visually appealing but well i haven’t got any modelers on my side right now so i had to turn it into a block world temporary (or maybe permenantly :D), where i had to build trees for example from blocks through equations.
- Shooting + animation + health decrementation of players and npcs
- Moving NPCs without hitting obstacles.
- Bloom ,fogs and shadows.
- Light weight Physics.
• Networking Server-Client:
- Fast and exactly send what's needed using the corresponding most fitting primitive types (bandwidth Wise).
- some messages are reliable (TCP) and some are not (UDP) , also chosen wisely.
- Better Hack safety (ex : failing a speed hack) , all entities updates ( character movements, projectiles, etc..) are verified by server.
• Back-end Components:
- A*path algorithm on a virtual 2d grid to generate shortest paths whilst avoiding obstacles, such as NPCs generated paths ( possible would switch to navigation Mesh , though its more cpu intensive).
- HLSL shaders and Post filters such as Bloom , Fog and PSSM Shadows , just added Screen Space Ambient Occlusion (SSAO).
- Physics for Collision detection and real gravity simulation (no heavy ragdoll physics), base
Hehe, looks cool! Work on it!
Hey, good job! Keep up with the good work!
No worries about the lack of unique visuals; people around here know how to appreciate the fact that it’s working
It’s great that you have fun with your videos, that can go a long way, but to be honest with you I could not handle that music track. For general audiences I’d try something a bit more safe if that makes any sense.
Haha thanks, and sure Erlend i knew it , its all what i had downloaded by a friend last night
I am interested to know what data you are sending between server and client. For instance, does the client get to tell the server where it is, or just that it wants to move the character’s location according to the character’s speed value that is stored server side?
Also, is there any resource that you’re working from? I am interested in knowing how MMOs are structured at a professional level, but I have yet to find a good resource.
I am interested to know what data you are sending between server and client. For instance, does the client get to tell the server where it is, or just that it wants to move the character's location according to the character's speed value that is stored server side?
Also, is there any resource that you're working from? I am interested in knowing how MMOs are structured at a professional level, but I have yet to find a good resource.
• What's being sent is raw primitive data that the server needs to know in an optimized way, for example:
Say you have a Vector V , the translation of your character, when you move via some input client side, it will send to the server that vector for server-sided verification (anti speed-hack at instance) , and broadcast it to all other clients in neighbor region (so loading data on terrain is pretty much procedural), also for sure not the whole vector is sent as a serialized object, that's pretty much lengthy for the bandwidth, thereby it just send the 3 floats which represent a vector in some float array, in other cases when values for example can be unsigned and never exceeds 256 byte is used, if always signed char, etc..
After all , the data sent use some kind of a GZip compression and encryption with constant key updates for anti sniffing/packet injection. (focused @ that from stage 1 , because i used to hack many games, Runescape on top :)).
• Client-Side predictions/corrections ?
well for now nothing much to fail safe , but in future? maybe if i added stuff like perfect physics synching or so,but i don't think i'd go after physics synchronization as its an unneeded waste of bandwidth i'd say.
• UDP/TCP ?
mainly for all current game stuff that are always updated all the time by server i'm using UDP (Tested , light weight), the controls are live (WASD) so TCP would be heavy for that, however stuff that should be guaranteed to reach on demand uses TCP , which i never used in game components but written in the plan , for stuff like Chat and sensitive stuff like Trading interfaces or whatsoever , but i have to reach that part first ;).