Devlog #3 The world in the palm of your hand
Hello there,
So this week was all about network synchronization, a new combat system design and much thought about server architecture.
Starting with synchronization, I was able to get the players to see each other’s animations in addition to their movements. This part was more or less straightforward, just adding properties of the player to the multiplayer synchronizer.
There was a design issue with login connection causing the spawner to throw errors when the second player to log in would make their connection without being in the game world. This is more or less a result of my lack of experience in game development, but the solution for now was to move the login into the same scene that runs the world so as soon as the connection is made, the spawner can see the player in the scene.
Next was designing the new combat system. Given the open pvp design of the gameplay and there being a need to support roleplay, I wanted to slow down the general hack and slash combat to something that requires more thought and decision making. I landed on a turn based combat system more akin to a game like final fantasy 7 as that's something I grew up experiencing.
With that said, now all combat in the game will be happening this way. This helps give the roleplay experience weight when it comes to combat as I want the decision to attack someone to be intentional and have impact. The other benefit of this is the networking side of it will generally only need to handle data as an exceptionally slow rate compared to a live combat style game. This takes plenty of strain off of the server resources. It also means combat will work well even for a server hosted here in Oklahoma for a player on the opposite side of the world because speed of latency is pretty much irrelevant.
This is merely the first iteration of a single player mockup, still needs to be networked. But I've designed the attacking player selection, the action they wish to take and the target they wish to select.
This leads to the plan for the future. The more work that gets done on this, the more solid my plan becomes. I've landed on a general server architectural design. This design was a result of a few days of back and forth between myself and my friend Tango as he has the most understanding of godot’s systems. The discussion landed on an architecture where there will be a master server that manages the database, the authentication and the main game map. This server will also oversee any additional game servers that are connected to it for expansion maps.
This also included a discussion about handling player transitions and synchronization/data handling between moving around the map and through interiors of buildings and caves.
The general consensus we've reached here is the main map will be broken into zones, these zones will be loaded and unloaded by the client and the server as they are needed or not needed. The interiors of buildings and caves will be placed in the scene tree of the main map world but positioned outside of the current map positions in the scene itself. The zone break downs will work similarly. Each zone will be its own scene as will the interiors and they will all be placed around the main scene so not to overlap each other and be loaded and unloaded as needed.
This design will allow an endless expansion to take advantage of the host servers capacity and should allow the client to never be overloaded with unnecessary resources usage.
This also allows me to take this game anywhere I want. It was always my dream to be able to build a game that could expand forever. It could even potentially become an entirely different game or have entirely different games built into it. Like a universe in one game. My goal is to ever expand this game into multiple games as a part of the same universe.
I know, big dreams, one guy, blah blah blah. But you gotta give yourself a challenge to rise to in order to keep the motivation driven.
All this aside, the design of the server architecture basically allows for the creation of what I am coining as “an mmo in your pocket” although I'm probably not the first person to use that lol. A dedicated server design that allows communities to manage their own game server regardless of how big the game gets. They will be able to take each game server included in the dedicated server package and choose to run them all in one box or they can place each game server on its own box if their player count needs maximization of capacity.
Currently there will only be one game server which is the master server. But any further expansions beyond the capacity of the current game server will be coded into a new game server that can be attached. It will be designed as I said in the beginning to give communities complete control of their dedicated servers and because I host on itchmio the game will always be available even if I dropped the game tomorrow, they will be able to forever keep it in its current state.
All of this said, I love doing this stuff and intend to continue this wherever it takes me. The game will, as I said, remain at $5 at least until it becomes a complete game, but even then, it will remain at indie developer pricing. Any games I build onto it will be treated as expansions and be priced the same way.
Like I said, my dream is to one day build an all in one universe and this is just the beginning, the first game of hopefully many to be a part of that universe that players can live in.
I do not currently intend to host a server myself, treating it as an official mmo by any means, but that idea isn't necessarily off the table some day. I prefer to put management into the hands of communities. You never know, maybe some day I find a way to allow communities to connect their servers to other community servers where players can jump their characters across(Notes this concept down because I'm actually thinking about it now), but that's a thought for another day.
One last note, I am changing the art direction. The assets available to me in the vector style graphics were limited and so I've decided to move over to a pixel style 32x32 art style of graphics. I will begin transitioning to this over the next week. I will have more to show next weekend. This opens up much more possibilities with premade assets than I had before. This includes boats ;)
Until next time.
Files
Get Realm of the Dominion
Realm of the Dominion
*Deep Advertiser Voice* In a world where taglines have meaning, this one has none
Status | Prototype |
Author | Cryptic-Realms |
Genre | Role Playing |
Tags | 3D, dedicated-server, Multiplayer, Third-Person Shooter |
Languages | English |
More posts
- Devlog #8 We can rebuild him. We have the technology8 days ago
- Devlog #7 My pockets have pockets22 days ago
- Devlog# 6 Communicado29 days ago
- Devlog #5 The Re-Imagining36 days ago
- Devlog #4 A whole new world50 days ago
- Devlog #2 Bring your friends64 days ago
- Devlog #1 - In the beginning69 days ago
Leave a comment
Log in with itch.io to leave a comment.