How I Made a Lovecraft Comic Game
Hi, Habr! This will be the story of the thorny path of developing a 2D quest in the setting of Howard Phillips Lovecraft’s worlds, which is entirely in the form of an interactive comic book. Well, that is, everything in the game, starting from puzzles and ending with the interface, is one seamless comic. If you are interested in this concept, I ask for a cat, where there will be more gifs, technical details and experience of publishing on the main platforms.
About the game
And I thought: after all, a game decorated in a comic style is cool, catchy and unusual! There are very few such games. I can remember three. Of course, this is the legendary “Comix Zone”, the shooter “XIII” (thirteenth) and not the whole game, but an episode in “What Remains of Edith Finch”. But to do it alone / together as a platformer or an FPS-shooter, for an independent developer - an inadmissible luxury - too much animation, too complicated, too much time is required and there is a high probability that the game may not live to release. No, I know that there are people who manage to develop a platformer for 8 years (Owlboy) and at the same time, do not lose motivation. I sincerely admire and envy such people a little, but I'm afraid this is not my case. But the puzzle / point-and-click game is a completely different thing! Especially, I have experience in creating 2D puzzles - some may remember me as the author of the series Mechanical Box puzzles. So decided! The setting is the works of G.F. Lovecraft, genre - point-and-click, visual style - comics.
But I just didn’t want to do an interactive comic strip or a visual novel. I wanted this project to become more of a game than a literature. And here another of my hobbies helped - the history of video games. I remembered that I had recently read about a text-based computer game, the main idea of which seemed to me to be rather unusual and interesting.
The game was called "Hunt the Wumpus". This is a classic text game written by Gregory Job in 1972. As Wikipedia says, this is the first text-based in the history, as well as the first adventure computer game, which was extremely popular in the 70s-80s of the last century.
In short, the essence of the game was as follows: the player enters the maze, which consists of 20 numbered rooms, each of which is connected by corridors to three others. That is, a map of such a labyrinth is a closed graph. However, let's not delve into all the terms, in fact, everything is very simple! In this maze there is a dangerous monster - Vampus, the task of the player, exploring the maze, to find and shoot this monster.
At the beginning of the game, the player finds himself in a random labyrinth room. In one move, he can go to one of the three adjacent rooms, or shoot at it. In the room, the player may feel a draft, a disgusting stench or hear a strange noise. Draft says that in one of the neighboring rooms - a bottomless pit - falling into it, you lose. Noise is emitted by giant bats, if you enter the room with them, they grab the player and transfer them to another randomly chosen maze room. Well, the stench means that in one of the three adjacent rooms is Vampus. If a player is in the same room with him, Vampus eats him.
Thus, traveling through the maze and memorizing signs of nearby hazards, you can get an idea of their location and shoot Vampus, knowing exactly where he is. In fact, one more, more common game with similar mechanics can be given as an example. This is the well-known Minesweeper. “Hunting for Vampus” is, in general, another variant with several types of “min.”
Returning to Lovecraft, our hero is sent by sea to New England, but, obviously, his plans did not come true, because:
On the seventeenth day of travel, a terrible storm arises as if from nowhere, carrying the doomed ship farther and farther into uncharted waters. The frigate crashes, and the main character wakes up on the sand of a bay surrounded by inaccessible rocks. From the only exit from the bay, carved right into the cliff, it breathes with extraordinary antiquity ...This is the entrance to the dungeons of the Temple of Nameless Cults, where, in the best traditions of Lovecraft, the protagonist expects nothing but madness and death (in as many as six versions of the endings!). Dungeons are a labyrinth from the game “Hunt the Wumpus”, but instead of Vampus, Dagon, the patron of the Deepwater, lives in the labyrinth. It can not be killed immediately, but you can only hurt him - after all, one of the lesser deities of the pantheon of myths Cthulhu is no joke! And in the role of giant bats here is a servant of the Ancients - Shoggot - a shapeless mass of protoplasm with a thousand eyes, tentacles and other unimaginable limbs. You can escape from Shogot. The escape is realized in the form of a mini-game, where it is necessary to solve simple riddles for a while, choosing one of three doors. My impromptu on QTE (Quick Time Event) - a fairly common reception in video games,
In addition to such variations on the theme “Minesweeper”, as a meta-game, of course, there should be puzzles and other mini-games - all that is inherent in classic quests. I did not invent anything and decided to use the old, time-tested mechanics - tag, rotating elements, select a combination and the like. Naturally, everything must be neatly written into the love setting. Below is a gif with a couple of examples.
I assembled the first prototype on Unity rather quickly, in about a week. And let me be showered with slippers, but I understood one simple thing - Unity does not suit me. Yes, a convenient visual editor, yes, a lot of information, due to the popularity of the engine. But ... I spent most of the time trying to figure out how to assemble what I needed from the existing cubes. Instead of making and using cubes of the “right shape”. Well, some things seem to me just strange (with the habit, probably). For example, start coordinates “sewn up” in an animation: if in an animation an object begins its movement from position (0,0), then when this animation is applied to the object, it jumps to (0,0) regardless of its current position. You say: so it was necessary to download the <plug-in name> from the Asset Store! Maybe…
In general, I chose a more familiar and understandable to me framework - LibGDX. This is a cross-platform, free Java engine. I somewhere heard opinion that Unity is about fast design, and LibGDX about beautiful architecture, code. That is, LibGDX is closer to programmers, and Unity to those who, conversely, want less code and more “action”. Of the advantages of LibGDX, it is also worth noting lightness and speed, for all the development time I have not encountered problems that somewhere, something slows down. Well, the fact that this is Java can be a decisive factor for someone.
Having a prototype in my hands, I began to look for an artist, because I realized that I myself couldn’t draw out the required quality or volume of art. On the gamedev.ru forum, a wonderful artist responded to my ad - Sergey Kovalev. All these cool gifs that you see here are his doing. In the same place, the composer was found - Maxim Grachev. Gifs do not transmit sound, of course, but everyone who played the game says that the sound in the game is very atmospheric. For each of our small team, this was a “free time” project. Therefore, whether it is long, short, but six months later, weekends and evenings after work, the game approached completion.
Since this is Java, builds for different platforms, in fact, boil down to delivering the same code with the correct one for the JRE (Java Runtime Environment) platform. I immediately decided to release the game for all major operating systems: Windows, Mac, Linux, Android and iOS. I will not elaborate on mobile storach, and tell you better about Steam. Moreover, this is my first experience of placing a game in a store from Valve.
Recently, anyone can sell their games on Steam, it’s enough to go through the registration procedure and pay a fee of $ 100 (for each game). Registration takes several days, Steam allegedly checks the data filled in on the W-8BEN tax form. It's not very clear why, really. In other cases, when I had to fill out this form, just photocopies were enough.
Anyway, when you get into Steamworks and pass the first shock on the number of buttons, menus, items and sub-items in it, it is time to create a game page. Everything is standard here: screenshots, videos, a set of promotional art, descriptions in different languages (if you made a localization, of course). The page must undergo pre-moderation. In my case, everything went quickly and almost smoothly. The first time the page was rejected, explaining that the promotional images should have a well-readable name of the game and when I corrected this remark, the page was accepted.
After approval, the page becomes visible to all users, and the game falls into the "Coming soon" category. You can build and download the build. I'll tell you a little more about how this happens in the case of LibGDX. First, we need to make the game run on full screen, for this we add the following code to DesktopLauncher:
LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
config.vSyncEnabled = true;
config.width = LwjglApplicationConfiguration.getDesktopDisplayMode().width;
config.height = LwjglApplicationConfiguration.getDesktopDisplayMode().height;
config.fullscreen = true;
Secondly, we need to build a bundle from the executable file (starter), our jar file, which will be executed and the JVM for the required platform. There are many tools for this. I would focus on two things: this is a familiar utility to many, Launch4J . And Packr , developed by the LibGDX team. What to use is a matter of taste, Packr is closer to me personally. We make a configuration file and build a build in one line, for example, under Linux (you can at least automatically):
Configuration Example for Packr
Next, we need to load the builds into Steam, I have three of them: for Windows, Mac and Linux. The description of this process is in the documentation (in Russian), therefore, I will simply list the key points:
- In Steamworks to create "Storage" for the corresponding OS. I created “Windows content”, “Mac content” and “Linux content”.
- In the same place to include these "Storages" in "Kits".
- Download SDK Steamworks - using it is downloading to Steam.
- In the examples of boot scripts, replace the application ID and repositories with your own. Register a local path to the game files.
- Start the bootloader. In my case (Mac OS), the command looks like this:
bash ./steamcmd.sh +login "user""password" +run_app_build ../scripts/app_build_xxxxxx.vdf +quit
That's all. Three times I flew steamcmd with a server error 500, from the fourth time everything was loaded. After that we send the game moderation itself. Plus 4-5 days and you can click the cherished green "Publish" button.
Now, like mushrooms after rain, alternative Steam stores appear: Discord, GOG, Green Man Gaming, etc. Everyone is actively discussing the announcement of their own site from Epic Games (there is hope that they will be able to make a real competition to Steam). And I want to say a few words about itch.io. If you ask me, how do I see the perfect store for a developer? I will answer without any hesitation - itch.io. I understand that the ideal store for the developer and for the player are slightly different things. And in general, itch is utopia. But how cool and just everything is done here! Mega-friendly editor of the game, everything is very thoughtful, fast and modern. No clutter of buttons and actions, just a couple of clicks and your game is available to the whole world!
The problem is one, the same as that of all alternative sites - a small audience. I received a feature on the main page just by writing to the creator of itch.io in the mail (yes, it is possible and even easy). And with that in mind, the game had only ~ 200 page views per day and a few lazy sales.
But the small community that is here is very friendly! Itch has this feature: you expose the minimum, “mandatory” price of the game, and the buyer can increase it at will to support the developer. And such sales, above the fixed price, are quite common! Unlike Steam, where toxicity and comments "would have bought for 15 rubles" - too much.
Yes, the game is small. Most likely, if you quickly get into the essence and do not get stuck on any puzzle, you will be able to complete it in an hour. I understand that there is no chance for the game to earn any serious money. Therefore, on Steam, I set the most honest and budget price of 99 rubles. Perhaps no one for such a sum would be significant. However, they demand a 50% discount, they write about 15 rubles and in general “give away for free to promote the developer's name” (so that does not mean). However, I was distracted. It's just my “sore point”. I, like no one, know how much effort has been put into this conditional hour of gameplay and it hurts me, I admit.
I will tell you about several events that I have undertaken to somehow announce the game. First, Keymailer. This service is well known, but it will not be superfluous to tell you how it works. You register the game and upload some Steam-keys to the service for distribution to the bloggers. Bloggers, on the other hand, register with the service and may request keys from you to review the game. In theory, it sounds good. But this is only in theory. Sorry, I did not google pre-reviews about Keymailer.
This service is monetized by developers, I have nothing against it, just keep in mind. On a free subscription, almost all the functionality is cut off. I threw $ 50 on advertising - the game is displayed for a week somewhere in a prominent place Keymailer. Yes, there are much more requests for keys from “bloggers”. But it seems to me that the very idea of this service is vicious, if you think about it. More or less large channel does not need to deal with key requests through some Keymailer, they have enough content, and the purchase of new products does not cause any difficulties. Maybe I am mistaken, but it seemed to me that Keymailer is used mainly by dishonest users to get free keys for themselves or for resale.
I accepted requests only from channels with subscribers (well, at least 5-10 thousand) and “Accredited” from Keymailer. I distributed 65 keys, 47 of them are activated, 18 more are still being sold somewhere, probably (for example, I found my game on plati.ru). As a result, I received 6 (six) videos on YouTube and one tweet. With a couple dozen views ... Do not repeat my mistakes.
But not everything is so sad. The good old-fashioned mailing of letters by hand through Yuthers proved to be good. After spending the evening and proving to Google many times that “I’m not a robot,” I collected on YouTube about 30 emails of Russian-speaking, suitable flysleys. The selection criteria are simple: I surveyed indie games, not very many subscribers (but not quite a few, I chose from 100 thousand), does not specialize in AAA games, does not specialize in any particular game (Minecraft, Tanks).
Next you need the correct letter. If my memory serves me, I read these tips from Sergey Galenkin (I will not give you a link, a famous person in the gaming industry). In my free retelling, they sound like this:
- Maximum laconic description of the game, no more than two sentences: “The game is in the setting of Howard Phillips Lovecraft's works, which is entirely framed in the form of an interactive comic book”.
- What would you like? "It would be cool if you played my game on the channel."
- An interesting gif is up to 2 MB right in the body of the letter (I inserted the little chest, which is higher).
- Link to Steam and key. In general, the main thing is brief and to the point.
And I want to say that the response is quite self! As many as 4 channels published videos on the game and even one "millionth" responded to the letter. This in itself is an achievement! Given that the game is far from super suitable for streaming. True, a similar newsletter on English-speaking bloggers, unfortunately, failed. Whether my imperfect English is to blame, or I could not find the right channels correctly.
Phew! It's time to take some results. The topic is getting longer than I planned. Let's summarize the financial, or something. On Steam, we gained about $ 1000, another $ 70 - itch (I want to donate them to the development of the store), plus a couple of hundred dollars should be accumulated from the mobile stores. Is this a good result? I think it is not bad! Given that in the modern world there is almost no space left for the indie, if you are not a “star”, of course. And I am an ordinary "middling", I must admit. And even though the game turned out to be small, it was exactly the way I imagined it. And most importantly, complete and solid. So I am pleased.
PS Sorry for some confusion of storytelling, I always worked badly in building clear, consistent texts. I am pleased to tell you about the missing details in the answers to questions. PPS I love Easter eggs and secrets, so three Steam keys to the game are hidden in this topic. Disassemble!