“A” means “Astral”. Interview with Ivan Polyakov (Apus Software)
There is a certain range of objects and phenomena in relation to which people are clearly divided into two categories. Hearing about a certain X, the representatives of the first category will ask: “What is X? Maybe I heard something about it, but I don’t remember anything concrete. ”Those who are in the second category will breathe out:“ Oh, that’s X! ”- and their eyes will light up with slightly unhealthy enthusiasm. Only two categories. No halftones are provided.
A great example of such a phenomenon is the Belarusian company Apus Software and their series of computer card games, most of which contain the word Astral in their name. Starting with the old Astral Tournament, which, if it were human, last year could already get a passport, and ending with the recently released Astral Heroes, in which the best of past games combined with the best of what was not in them, Apus Software regularly hand over the cards to those gamblers to whom the elves and unicorns are nicer than a pocket pair and a hunter miser.
')
In the distant two thousand zero already, short nights behind the “Tournament in the Astral”, I could hardly imagine that someday I would be interviewing its creator. However, life is an amazing thing, and today, at my (metaphorical, of course) microphone, Ivan Polyakov himself, better known as Cooler. Tell us a little about yourself.How did you become interested in programming, and, in the end, came to what is now called the fashion phrase “indie game development”?
Born in Minsk in 1980. When the USSR collapsed and the iron curtain fell, an interesting picture emerged: on the one hand, PCs became available on the market, on the other, commercial structures actively appeared that could afford them and had some interest in informatization. My mother, who in the past worked as a programmer on "big" machines in one of the research institutes, at that time worked in one company that decided to purchase PC AT 286. In general, she was assigned to "master" this miracle technology, and not in the workplace office, and at home. As a result, I got the opportunity to get acquainted with the computer.
A few games quickly bored, I wanted something more interesting: I installed Turbo Pascal 5.0 and bought a book on it. So I got into programming. However, all good things quickly end - the computer was taken away, but the interest remained. I continued to gnaw at the literature, and for practice I was looking for opportunities to work from someone at work. People used to have computers at that time very rarely, people who knew them were even more so, but I was lucky: there were a few other guys in our class who were interested in programming. We very intensively communicated, shared books, arranged all sorts of experiences and exchanged knowledge.
Finally, at the age of 16 (I was then studying in the 10th grade at the Lyceum of the Belarusian State University) I bought my home computer, and I was able to program more intensively. I tried to do different “just for fun” games - they never turned into something finished, it was just entertainment. I spent more time writing all sorts of libraries. In the 11th grade, I had the opportunity to write a course project in computer science, and then my friends and I, being WarCraft II fans, decided to make a small RTS. Create a full game could not, it turned out something like a very limited demo, but as a course, it is amiss. The main thing is to correctly arrange the text of the cursor, and how much the code works or does not work there - it's the tenth thing :)
Estarkh ( Alexey Stankevich, co-founder of Apus Software - ed. ) Studied in the same class and then made his own course project - the text game-MUD “Chaos Marsh”, which, unlike ours, was playable! It turned out to be an interesting idea to make games and donate them as all kinds of educational projects, so I continued to do this at BSU, but already with Estarkh, because we studied together. So we made a simple network space shooter "Star Madness", which helped to get credit for computer networks, and at the same time learn DirectX a bit (previous games worked in DOS).
At this time in FIDO, I met Anatoly Kovylin, a sharmer from Moscow, who said that the games can be sold on the Internet, that this can be not only study / entertainment, but also some kind of income. The Internet was a rare wonder then, but we decided to try it. Anatoly "published" our Star Madness in the form of shareware, but the game did not go - for the year not a single copy was sold. However, the topic itself was interesting, and the negative experience was also an experience. We started experimenting, making free games and publishing them on the Internet, watching what came out of it, accumulating experience. Slowly I felt the approach to development, something like a game engine appeared. It's time to try shareware again.
How did you come up with the name of the company?
To publish games you had to choose the name of the developer. At that time, catalog-sites (software / games) were one of the main sources of traffic, where games were shown in the form of lists, sorted by name or developer name. Therefore, if they started with the letter “A” - the game appeared in the list above. This factor did not give a significant advantage, but even a small advantage was worth using, especially if so many did. Therefore, we have many game titles with the letter “A”, and the name of the company also starts with “A.” Generally speaking, Apus is simply the Latin name for the constellation “Bird of Paradise”.
So Apus Software is two people, you and Estarh?
Initially, we had a full-time artist Victor. He drew cards / portraits in the Astral Tournament, creature cards in the Astral Masters, several individual cards in the Spectromancer. The combat screen in Astral Heroes, the map frame, the logo is also his handiwork.
Who is art for you now?
In all games, the graphics were made by several people, they are listed in credits :) Portraits for Astral Masters were created by Alexander Pribylov - an artist who painted characters for DBA Online in Wargaming. He also offered a screensaver for the game, but the style of the picture did not fit, so the artist democenter Lynx Vulgaris thoroughly refined it.
The interface graphics in Astral Masters and Spectromancer is the work of George Rukosuev, he also drew spells for AM. In his work, he very actively uses the render: he models all sorts of elements, and then combines the result of the render in the final image. Portraits and most of the maps in the Spectromancer, as well as all the portraits in Astral Heroes, were painted by Ivan Dribas - the former art director of Wargaming, who worked there on the Massive Assault series. Most of the interface in Astral Heroes was made by Andrei Belyakov.
By the way, it was always interesting, where do you get the music / sounds from?Sound design is the forte of all your games.
Recently, music and sounds have been made by DJ MoHaX - the most talented person from the demoscene. I think his first track for Astral Heroes is a masterpiece! One of the requirements was “unobtrusive” to check it, I put the track playing in the loop and listened for half an hour - usually after that, any melody is memorized in detail and played back in my head already on the machine, and then I almost immediately forgot it!
As far as I know, the last (although we better call it extreme) your game, Astral Heroes, is written in Pascal, like the previous ones.What caused the choice of language?Are there any difficulties due to the fact that Pascal is not a very popular language now (lack of libraries, something like that)?
So historically, the base code was written in Pascal. The process and tools are clear, familiar and well studied. It's always easier to start not from scratch, but from some kind of base. The question was repeatedly raised - whether and not to pass to a C ++? But every time it meant "more fuss and effort now, for the sake of possible advantages in the long term." Urgent problems have always worried more than a hypothetical future, so they never switched to C ++. Although C ++ itself is not a problem for me - I have worked as a C / C ++ programmer for several years.
Of course, there are difficulties. But rather not with libraries - no one forbids the use of libraries written in other languages: we use zlib, libfreetype and others. The difficulties are mainly associated with cross-platform, as well as with libraries, rigidly sharpened under their own language. In C ++ game development, this is almost a standard, therefore many libraries (for example, the Bullet physics engine) are not adapted for use from other languages. That is, it is possible to use them, of course - but it is very inconvenient and labor-intensive. In general, in the game client, I try not to use external libraries, unless there is an obvious need for it. And not because I like to invent bicycles (there is such a sin), but because when porting, say, to IOS, the question may arise - where can I get this lib, will it be compiled for the right platform, will the underwater rake poke?
The server part is also written in Pascal?
Yes. Part of the game site is written in Perl, but I gradually refuse it because of the slowness of the very principle of CGI, and writing in Perl anything other than CGI is in my opinion impractical. I really like Perl as a language for writing simple and short scripts that do not require debugging.
You are about to port Astral Heroes to Android and iOS.Probably, it is here that you have to change the language?
Not necessary. There are several ways to develop mobile applications in Pascal. One option is to use Delphi XE and its proprietary FMX framework, hiding the details of interaction with the platforms. Advantages of this approach: the minimum required knowledge of the API platforms, a single code for all platforms. Cons: it is difficult to get to the opportunities that the platform provides, but the framework does not support. It is difficult to connect third-party libraries. Well, the need to buy a license for Delphi :)
Another option is to create native applications in pure Pascal using directly the APIs of the platforms and the FPC compiler (Free Pascal Compiler), which supports a huge variety of platforms, including IOS / Android. In the case of Android, the application is created in the form of a so-called native library that works through the NDK, which hosts the main application code. A minimal java wrapper is used only to connect and call this native library.
In the case of IOS, you can simplify your life altogether using the language dialect called Objective Pascal - it is binary compatible with Objective C and allows you to use the IOS SDK directly. That's how I ported to IOS Spectromancer. True, here Apple itself gave developers a trick - it banned in its license the distribution of modified (translated) drivers from the IOS SDK. This means that anyone who wants to write an application under IOS on Pascal must either independently translate the necessary headers from the IOS SDK from Objective-C to Pascal (for this, however, there is an automatic parser-converter), or go for a violation of the license and download then another files. However, there is a positive point: unlike C ++, the specificity of Objective C is such that there is no need to translate the full descriptions of all classes with all their dependencies and references, and it suffices to describe only those methods used in the application.
You said that it is always easier to start from some kind of base.What is this base?How big is the total denominator of your games, so to speak?
We use a common base code and a common engine that evolves with the evolution of games. Our second engine was created in 2004 for the game Astral Masters, it was focused on the use of 3D graphics and asynchronous event processing. Spectromancer and Astral Towers games are made on it, but during the work on these games the engine has changed a lot. Some features were added, others were removed, a huge variety of crutches appeared. In the end, we decided to do the same thing that Valve did once, creating a new branch of its engine for HL2. We also froze the current engine code (allowing only bug fixes), and for further development we created a new branch “Engine3”, which was subjected to strict refactoring and clearing of crutches. Thus, the game Astral Heroes has already been made on a new engine, although the roots of its code stretch deep into the past.
If we talk about the size, then the base code is about 700 KB of sources, the engine is still a megabyte. For comparison, the source of the game client is 1200K, the server is 400K.
As for the code of the game itself, it is mainly written from scratch, although, of course, ideas and algorithms are borrowed from previous projects. Sometimes pieces of code are borrowed, although I do not approve of the “Copy & Paste” method - this is one of the main sources of bugs.
What specific problems arise in the development of computer CCI?
There is a lot of text in CCI, and text in some places is dynamic - all this creates difficulties for localization. In addition, we have the concept of “Usability above all”, which, in particular, dictates the use of a 2D interface. We have to take into account the many limitations that constrain the interface design, to think about a bunch of different little things. For example: if you increase the map when you hover the mouse, what will happen with the clarity of the picture, what will happen with the clarity of the text? How to avoid aliasing artifacts? How to achieve maximum clarity / readability in a static position? If we compare, say, Hearthstone with one of its clones - Star Crusade CCG, then it is noticeable that in the first one we worked much more carefully on such trifles, therefore there are much less visual artifacts there.
Another question: do you make "games for yourself" or "games for the player"?In other words, are you targeting your own preferences first of all, or are you trying to please the target audience?
We make games both for ourselves and for the player. On the one hand, it’s very problematic to make a good product if you don’t like it yourself, if you don’t feel it. We made different games, but only KKI achieved success - it means something! On the other hand, it is impossible to succeed, focusing only on oneself, it is important to understand your audience.
Separately, I would like to talk about your project such as Spectromancer.Unlike your other games, you did this in collaboration with other people, in particular, with the well-known Richard Garfield. ( creator of the Magic: the Gathering collectible card game, currently the most famous in its genre. - Ed. ) How did that happen?
Garfield played in both the Astral Tournament and the Astral Masters. We met, talked live - this is an interesting experience. He himself proposed cooperation - for us this was in every respect a tempting prospect.
Before that, you yourself did an excellent job with creating games.Is it possible to say that the main profit from this cooperation for you was not Garfield's help in game design, but rather the opportunity to “get through” to the western player?
I can’t say that this was the main goal: our games were almost completely focused on the western audience before - in the early 2000s this was standard practice in shareware, since purchases were only there. The goal is rather to increase the scale: additional financing for development, additional marketing opportunities - all this was useful for the project! The game got into places where we could hardly place it ourselves. One Steam is worth something, because there was no greenlight then, and there were less than a thousand Steam games themselves. Getting there was very cool. I must say that Richard made a useful contribution to the game mechanics. However, over time, such a format began to slow down the development of the game more than to promote it.
I always wondered what the game creators played.Tell us what are your favorite toys.
I am a fan of the 3D FPS genre (Half Life, Portal, FEAR, Red Faction, NOLF, Prey, etc.), as well as the racing simulator genre: I have been involved in eSports for 4 years - in the Belarusian Formula One Virtual Championship. True, in recent years I have hardly played, except for learning some games from a professional point of view. The last game in which "stuck" - browser agar.io.
Estarkh - active MMOShnik, played in the line, WoW, Rift. Well, in MtG, of course (cardboard version).
What do you think about collectible card games?
In general, I am not a fan of CCI: I still played in the Spectromancer with pleasure, but collecting decks is not mine. Good thing we have a random deck mode! But Estarkh is a big connoisseur of the genre: he spends a lot of time in his game, and he is well versed in others. By the way, he came up with the Astral Tournament while serving in the army, where he ended up because of too much enthusiasm for MtG while studying at the university :)
Finally, let's talk about your current project - Astral Heroes.What improvements have been made to it compared to previous games?
Well, first of all, this is a transition to the Free-to-Play model and a number of other measures in order to make the game able to live and develop in the long term without harming itself. In addition, we managed to improve the learning curve.
What are the immediate and long-term development plans for Astral Heroes?
In the next version 1.1, we will eliminate a number of phenomena that interfere / repel beginners, and also add new maps to the game for the first time. Also soon we will release ports for Android and IOS. Next we plan to add new maps, new features (such as viewing replays), to arrange official tournaments for the game.
How do you assess the current degree of success of this project?
Complex issue.To a large extent, the expectations were not met, but we must understand that success depends not only on the game itself - it also depends on the market situation, on various external, often random factors. Let's see, there are prospects.
PS As you know, there is a great Russian tradition - to talk with copy-paste. However, in this case there is no need for this: suddenly it so happened that Ivan Cooler2 became a full member of the habrasoobshchestva and would be happy to respond to your comments personally.