📜 ⬆️ ⬇️

How to make a MMORPG do it yourself. Slow, difficult, interesting

Hi, Habrahabr! My name is Egor Kuryanovich and you probably remember me in a couple of Internet projects: Kyuubi and Ideynik . And maybe you even heard about my other endeavors . Today I want to tell you what I have been doing for the last couple of years.



You do love games, don't you? What you see on the CDRP is called FAR7 . To make it a little clearer, I’ll say that young people compare it with Space Rangers, those who are older remember StarControl2, and hardcore gamers are constantly talking about Elite. Let us agree that this is browser space. In the game you can travel between star systems, trade, fight and complete various missions.
')
The whole game was written by me from scratch alone and can be used as a demo, to demonstrate the capabilities of the HTML5 stack. All the details about the technologies and the difficulties of developing indie projects are waiting for you under the cut.

Awards



For three years of development, the game has been highlighted in several competitions. She received a prize for the best technologies in the GAME_ON competition from Mozilla Corporation and for the best game project at the IT-JUMP 2012 competition in the Belarusian High Technology Park.


Architecture

Since I am still a programmer, I will start from the inside - with the project architecture.

The core of the system consists of a Perl / Catalyst web application, a Perl / AnyEvent life imitation daemon (by the way, we call it Laplace ) and a separate Web Socket server based on SockJS.

In addition, there are a huge number of utilities, votcherov and auxiliary demons to maintain work. As well as a special admin panel for managing, adding content and tracking various metrics.

Having tried a mountain of different options, I chose this one as the most effective and resistant to blows of fate and users. I sincerely hope that the server will withstand the habraeffect, and it will be possible to say with confidence that I was not mistaken with the architecture.

On the client, MooTools + JxLib works, and for rendering, CAATjs is used, which allows you to compile the game into a native application for mobile platforms. Unfortunately, when developing the client part, I made one big mistake - like all novice developers, I wrote my own engine. Although I have an excuse - at the time of the development, such engines did not exist in principle. This is now the HTML5 game engines are almost more than games, and then we developed as we could.



Indy - the path of suffering

Well, now some lyrics. I think you yourself know that the life of a startup is not only the smell of coffee, the reflections of the Californian sun on the edge of the MacBook and the pitch elevator in those same elevators that carry you along with a generous business angel to the hundredth floor of a skyscraper.

The life of a startup is mainly made up of hellish work and despair. If he, that is, I, and drinks coffee, then only to work a few more hours at night. The sun rarely touches his makbuka, as, indeed, himself - the startup starts working all day: at dawn, at noon, at sunset, and even when dawn comes again in a few hours. Protests, applause and generous checks are probably worth forgetting too - you will rarely speak and certainly not before a meeting of directors of venture funds, and rare investors caught will be asked to clarify what a “MMORPG” is and whether a computer is needed to launch it, but after asking how many millions of people visit your site — that is, my project — site per day.


And I'm not complaining. I deliberately chose the path of suffering, because I wanted to keep the game independent for as long as possible, to be able to experiment and make it better, and not only more profitable. After all, indie games should be cool first of all, right?

You have to pay for everything. The desire, realized, requires the highest payment and if you do not have two or three million dollars for a large-scale project, then you will have to pay with your comfort and time. Many people want to make games, but not many are willing to pay such a price for it.

The three of us began, but by the end of the first year of development I was left alone. Other guys just could not stand such a pace, and I do not blame them for it. They are cool, but what to do - the way a start-up was not for everyone. If you now want to start a large-scale project, but so that “in your free time 2 hours a day after work”, then be prepared for the fact that it will take 20 hours a day, and your enthusiasm will translate into a desire to sleep, and not finish another feature. What happens in a couple of weeks with all sorts of cofounders, partners, future CEOs and SRTs "for interest" you can assume for yourself.



But any development sooner or later begins to bear fruit: a letter comes to the conclusion of the contract from the billing provider, the login form starts to let the players, and the soulless NPC stops being bored and lonely in the vast universe. This is called open beta testing or MBT.

MBT gives a new look at things, MBT stimulates to continue. Thanks to MBT, a twenty-hour working day becomes a joy again, and each review helps to finish the project a little more.

And every user, and his friend, and his wife, and even his grandmother who came to FAR7 will greatly support me. It has been a long 3 years, and the path is far from over: in front of us is a cool system of imitation of life, dungeons (in space, you imagine!), Battlegrounds, new content and many other beautiful things.

Startup path pays off when his project begins to live. And I want you, friends, to help me breathe life into the fruit of my work and many people. I hope to meet each of you in the expanses of deep space!



By the way, during the work on the project I have accumulated a lot of topics that I would like to talk about in Habré. I propose to the habrovchan people themselves to choose which post they want to see as follows:

Source: https://habr.com/ru/post/179027/


All Articles