Jump to content
Sign in to follow this  

Guruu 3D Gaming

Recommended Posts

Hey guys, today I bring to you the start of my Capstone project required for my CS degree. 

I wanted to build a game since it has the potential to show of really powerful skills a programmer should understand the concepts of.

I would like to say I did not create any of the models here. All i did was download a bunch, and learn how to attach things. I grabbed models and graphics from other scenes and used them here. I was more focused on the code itself.

I have spent the early stages of my winter break developing the core. 

I would also like to note: I am not using Unitys built in networking. I have a custom Server Client TCP connection set up by no one other than yours truly. 

I have manage to get
networking connectivity
player instances
player character models
uma character models (dyanmically adjustable[size/ears/head etc] 
this is just a basic naked guy that is univeral model easily applicable to other armor models and such
byte buffer for both client and server
buffer read and write across the network efficiently. 
Evaluates the entire byte array without packet loss.
I have some basic character controllers setup with a decent camera controller. 

I will mainly try to provide updates and a picture in regards to what progress is looking like..

Here is my recent work which includes everything above and a little more. I'll try and keep this thread posted smile.png

Theres been a ton of other things done but I wont sit here and type it all out because I may aswell just then make a tutorial video on how to make an mmorpg on unity lmao


Been working on a powerful state machine system for my characters or entity i should say because i can apply this to other game objects such as npcs..

in the picture u can see jump state is enabled all the way up till he lands which brings him back to idle state. 


states are active for as long as it needs to be in.. meaning if i decide to have a follow player system i simply go to my idle class and/or walking class to set a follow character, then in walking state i would just have in my update function something like if (followSelected) move as needed... and then i would put it to idle state if player a has stopped moving which can be detected if player[index].state == idle  

:) Some rough pseudo code for a follow system that i though of as i put this reply up haha :) SOME POWERFUL STUFF :)

Easy to add combination mixing, and actions within the time of the state :)

heres a quick run jump combination going to idle, mixes jump walk and idle all at once quick and easy. 



Been working on terrains lately and heres some random stuff generated >_> I probably wont ever design my map from scratch cause i am not a designer. Always looking for help where i can't prevale. smile.png

Theres also like some bird noises and water noises...





I've really been debating on what kind of art style i want to follow for future game enviorments, and i chose to go with lo poly. After i finalyl decided which literally took me so long because all the assets i was checking out where pretty slow dls thanks to my shit pc and net. But Now that i have done it all i started working on a asset loader to improve MMO gameplay. What i have created basically allows your client to load and unload the required assets for current area. 



smaller objects will the farther u are and the bigger ones will load as u get even closer

my next plan is to setup a few AI's apply my target system i have made. Create an target game object of some sort to show that u are selecting something then figure out how to shoot something from my hand to the object. Will apply my spells there.

Been working a lot on the mage class because thats is the hardest skill i believe to do for an mmorpg.
I setup an abstract Skill system which basically contains the skill effect, a target, the caster, and thats basically it. Also setup an RPG styled combat controller. I use combat states for this (added onto my previous state machine code) When you use tab to select targets and then attempt to use hotkey skill you will auto move within distance of your skill and then you will perform your target and animation. Projectile will move directly towards your targets.

This picture here will depict the state transitions


Magic aoes can basically be handled within the hit state of magic combat. I would create a raycast of a radius of liek 5 or something and then appl effects and or just damage pops on the others

I've been taking the time to rework my entire framework. Originally i did everything basically client sided which i soon realized is a really bad idea. Especially for an MMO. Because if i allow to much control to the client, data can be manipulated. So i've been redesigning my framework to be server authoritative. Its a little more complicated but not to much but basically my client will only request and my server will provide the data. So for example take movement. My client will send w a s d keys and server will read them in with a map meaning u can use wasd all together if u wanted and the server would then take the inputs and peform the data action the client needs to update its actual appeareance... hope this makes sense :)

even if i change pos on client side my pos will be seen as whats real
to all others including myself
as what server has
meaning no hacks for that. The more server authoritative i make the game the less possible exploits available.

pretty smooth if u ask me :)
back to square 1 hahah


All the client is doing is 
1 predicting the movement before the network receives so that animations can be smooth as a babys buts over the network without any delay. 
2 playing the animations


Sucuess! We have Client sided movement predictions for smooth player synchronization! The entire movement is controlled by the server, and originally i had trouble because there was a delay between the server movement and the network movement but now i have fixed it and everything all smooth :D I plan to now re-import all the previous content i did for client sided control behavior for the server so the server is always in charge of what the client is doing making it really hard to exploit the client for cheats in game.

Just moved back into school so updates may be slower. Dont be alarmed. This project will still proceed. I am submitting this for a Capstone project to complete my Computer Science degree.

I've been working on server side collision and i got a plan ready to be implemented, i've already started creating a scriptable object(had to do research on this since im new to unity) to basically read my scene and export all game objects with a colliders tag and i will be extracting the center collision point and eventually handling collision server sided 😃 that means you wont be able to noclip through things basically possibly floors but i'm going to still test it about a bit...

Basically this will help me create server collision which will go hand in hand with my server side movement. :)

server now loads up our collider data and creates our collider objects on the server. I already have position and such so now its basically creating an intersect function and when player moves i will just detect for collision before actually updating the player to its real positron


Here we are :) Full server sided collision..

Notice the jumping around..This is coming because for some reason as i run and when i stop moving on server the run anim seems to put me a little bit more forward leaving me with invalid x and y's. I'll be fixing this later today :). I'll also post a gif of my unity client that way u can see there are no box colliders and capsule collides on my player :)



Much much better ❤️




Moving forward i'm going to work on a better camera controller to work with our new map. Plaans are to basically have camera reposition based on object collision...if that make sense...? I have and idea on what it will look like at the end.

Also start server sided Entity management. This will be server authoritative meaning server will be in control of where the npc is, the direction its walking facing etc. This will also later help me create a server filter system to filter visible game details within a distance to make your performance better :). The game does need a lot of aestheticswork which is why i will never have this game public... I suck with design an aesthetics....We'll see :)


Minimal work has been done to the physical appeareance of the game, but i've started working on a server side equipment system to basically equip/unequip items.. (Gotta make the drop models/inventory item image/organize resource items to correlate with server item id inputs) Work on server sided Item definitions to define item properties such as item name,id,slot..etc.. to be sent to client so that it can load up said id from resource when needed. I plan to later just load all resource slots/overlays/inventory images/ data into an list on client startup so i can just use that to load my resources rather than manually do like Resources.load(path/item.data) etc... Plane base skin (starter skin) will look like this (male only atm)


And here is an item inventory image for luls 


You can follow the discord here


Please login or register to see this link.


Edited by Aki

Share this post

Link to post
Share on other sites

nice models

Share this post

Link to post
Share on other sites

damn this is pretty cool

Share this post

Link to post
Share on other sites

Damn this looks sick, nice work!

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Create New...