How to make a MMORPG with their hands. Slow, difficult, interesting

Hello, habrahabr! My name is Egor Kuryanovich and you may remember me a couple of Internet projects: kyubi and Idaniko. And maybe you even heard about other endeavours. Today I want to tell you what you did in the last couple of years.



You love games, right? What you see on KDPW, called FAR7. To make it a little clearer, I will say that young people compares it with the Space Rangers, those who are older, remember StarControl2, but already quite hardcore gamers are always talking about the Elite. Get off on the fact that the browser space. In the game you can travel between star systems, trade, fight and perform various missions.

The whole game is written by me from scratch alone and can be used as a demo to demonstrate the capabilities of the HTML5 stack. All details about the technologies and challenges of developing indie projects waiting for you under the cut.

Awards



Over three years of development, the game lit up in several competitions. Won the prize for the best technology in the GAME_ON competition from Mozilla and best game project in the competition IT-JUMP 2012 in the Belarusian High-tech Park.


Architecture

Since I'm still a programmer, it will start from the inside — from the architecture of the project.

The core of the system consists of a web application written in Perl/Catalyst, demon's imitation of life in Perl/AnyEvent (incidentally, we call it laplaza) and a separate WebSocket server on the basis of SockJS.

In addition, there are a huge number of utilities, of watcher and auxiliary daemons to support the work. And special admin panel to manage, adding content and tracking a variety of metrics.

Tried a mountain of different options, I chose this as the most efficient and resistant to the blows of fate, and users. I sincerely hope that the server will stand gebrettert, it will be possible to tell with confidence that with the architecture I was not mistaken.

The client is running MooTools+JxLib, and to render CAATjs is used, which allows to compile the game into a native application for mobile platforms. Unfortunately, when developing client side I made one big mistake — like all aspiring developers, I wrote my own engine. Although I have an excuse — at the beginning of the development of such engines did not exist in principle. That now game engines for HTML5 is already almost more than the games, and then we worked as best I could.



Indi — the path of suffering

And now a little poetry. I think you know that the life of a startup is not just the smell of coffee and the glow of California sunshine on the edge of the MacBook and eleveytor pitches in the very Elevator carrying you along with a generous angel investor on the one hundredth floor of a skyscraper.

The life of a startup mainly consists of hellish labor and despair. If it is, that is me, and drinking coffee, only to work a few hours a night. The sun rarely touches his MacBook, as, indeed, he himself — startups open all day: at dawn, noon, sunset, and even when a few hours again will be the dawn. About the speech, applause and generous checks, too forget — you will act rarely, and certainly not before the meeting of Directors of venture capital funds, and a rare caught investors will ask to explain what "MMORPG", and whether to restart the computer, and then ask how many million people a day visiting your — that is my project site.

I'm not complaining. I consciously chose the path of suffering because he wanted to save the game independent as long as possible, to be able to experiment and make it better, not just more profitable. Because indie games in the first place should be cool, right?

Have to pay for everything. Desire, implemented, requires the biggest payment and if you don't have a pair of three million dollars for a large scale project, to pay you have its comfort and time. Many people want to make games, but not many are willing to pay the price.

We started the three of us, but by the end of the first year of development I was alone. The other guys just could not stand such a pace, and I don't blame them. They are really cool, but what to do — the way of startups was not for everyone. If you now want to start a massive project, but to "in your spare time 2 hours a day after work", then be prepared for the fact that it would take 20 hours a day, and the enthusiasm will overflow into a desire to sleep, not to finish another feature. After a few weeks happens to all sorts of cofounders, partners, future of SEO, and one HUNDRED "per cent" can suggest themselves.



But any development sooner or later begins to bear fruit: from the billing provider will receive a letter at the conclusion of the contract, a login form begins to put players, and soulless NPCs cease to be bored and lonely in the vast universe. It's called open beta testirovanie or MBT.

MBT gives a new perspective on things, MBT encourages to continue. Thanks MBT twenty-hour working day again becomes a joy, and every review helps even a little bit finished project.

And every herpolsheimer, and his friend, and wife, and even grandma came to FAR7 very support me. It's been a long 3 years, and the path is far from over: ahead of us a cool system of imitation of life, dungeons (in space, you imagine!), ballground, new content and many other beautiful things.

Path startups pays off when his project begins to live. And I want you, my friends, helped me to breathe life into the fruit of my labour and a lot of people. I hope to meet each of you in the vastness of deep space!



By the way, during the work on the project, I have accumulated a lot of themes that I would like to tell on habré. Offer habarovchanin itself to choose which post they want to see the following:
Article based on information from habrahabr.ru

Комментарии

Популярные сообщения из этого блога

Integration of PostgreSQL with MS SQL Server for those who want faster and deeper

Parse URL in Zend Framework 2

Custom database queries in MODx Revolution