Here we are: look at the title, rub your eyes, look at the title one more time!
Yeah, yeah, I know what you are going to say: “finally”. And you are right: finally! After a lot of time, finally I decided to start this blog series: who followed me certain remembers that I announced this multiple times, but for various reasons I always delayed the starting of this project. Not this time, not anymore: I forced myself to do this!
As you certain know I love RPGs: this game genre is my favorite one. Probably because of its complexity, probably because it was the first genre I was addicted to (as player, but also as developer: I learned a lot by looking at their source code). And I love networking too, a lot. I love to create multiplayer environments, persistent worlds and see how these worlds evolve.
These two things – combined – represent one of the most challenging to develop game genre in the industry: multiplayer RPGs. I already spoke multiple times about this topic in the past: optimizations, definitions, specific arguments, etc.
In my previous experience I worked on a MMORPG as backend developer. It was extremely funny and it taught me a lot of interesting stuff. Sadly this project has never been released for various reasons I will not explain in this post. But of course you can imagine my disappointment: I loved that project, that job.
But – as I said – it taught me a lot. And I don’t love to waste time or knowledge, so I want to take profit by concepts I learned. So I decided to create something based on this knowledge; I want to create something valuable for me and for others.
WHAT I WANT TO DO
I want to develop a framework to create a multiplayer RPG and make a game with it. I will focus of course on multiplayer part: so networking, entities synchronization, game services, etc.
I want to learn, so another important thing is: I will try to force myself to use new technologies, approaches, patterns and practices I didn’t use before in my previous experience. This just to make it more interesting!
I want to keep track of my experience with blog posts. In this way we can learn and improve together. Also I will create a nice resource for developers who will face this challenge in future.
Well, at this point I didn’t decide yet what to use. Basically I am a C# developer and I love .NET environment, so probably you will see a lot of C#. I would like to create something with .NET Core 2.0, so probably it will be our starting point. But recently I am studying some new technologies such as Scala, Go, Rust. Don’t be surprised if I will find a way to play with them too during this journey. That’s about backend side.
On client side I will play with Unity3D, because I am already familiar with it (and I usually develop plugins for it): in this way I will receive more quickly a visual feedback from what I code on server side.
But I can also play with MonoGame: I would like to try new stuff, as I said! 😀
Of course this project is huge, it is massive. It will not be completed in few weeks. It will require a lot of efforts and time, because I use it to learn and to improve myself. I don’t know how this will evolve, but I would like to know your opinions about this: let me know!
Well, what to say more? I hope you will enjoy this and we can learn a lot together!