It's All 2D: How the Creator of the Game Mayak Brings Hand-Drawn Scenes to Life
We present a guest column by the author of the game Mayak. Here, he talks about working on the graphics for the project — a visual novel about space and love.
Nikita Nikita Nplus1
Hi! I'm Nikita (Nikita Nplus1), the solo developer of the game Mayak from Moscow.
Mayak is a small story-driven sci-fi game, a hybrid of an adventure and visual novel. It features a young astronomer, his girlfriend Nina, their cat Isaac, a signal from another star, and quite a few things I can't reveal without spoilers.
But today, I'm not going to talk about the story.
I want to show how a regular static drawing gradually transforms into something like this:
And yes, this is all genuine 2D.
These aren't 2D sprites set in 3D space with a 3D camera.
It's straight-up 2D.
For someone experienced in game development, this might be nothing new.
But Mayak is my first game. I started developing it with no programming experience, and for about the first year, I just tried everything:
- 3D;
- 2.5D;
- various engines;
- different lighting techniques;
- various drawing styles.
Many times, I would put something together, look at it, and think: nah.
And then, at some point, flat drawings started moving, light appeared, sound, parallax — and suddenly everything came together.
One day I looked at the scene and thought: there it is!
First, just draw
Almost any scene begins as a regular illustration.
I draw it by hand. I like oil paints, rough strokes, impressionism, manga, noir, dark colors, and very bright spots of light. For a while, I tried to make the drawing more "correct" and neat. I agonized over my imperfections. I read manga, experimented with paints, pens, ink, and various digital brushes. Then... I thought and decided that my crooked style is my style.
Let it be!
After accepting that, drawing somehow became a lot easier.
The problem is that a finished illustration by itself isn't suitable for a game — it's static.
So even while drawing, I'm always thinking about what will need to be moved separately later:
- the hand in the foreground;
- the face in the midground;
- pupils;
- light source;
- shadow source;
- some totally unnecessary bush in the distance that I drew for two hours for some reason.
As a result, one drawing turns into a stack of separate layers.
Then I put it all back together in Godot.
Only this time as a game scene.
Parallax: the cheapest way to suddenly gain depth
The first thing that significantly changes the feel of an image is parallax.
The layers start moving slightly relative to each other: those closer move more, those further move less.
Sometimes the movement is almost imperceptible, but the brain stops perceiving the scene as a single flat image.
I like it when this effect works not as a "LOOK, WE HAVE PARALLAX" attraction, but almost subconsciously.
With a slight camera movement, you feel there's some distance between the foreground, character, and background.
Even though in reality, there's no distance.
It's all several PNGs moving at different speeds.
It's very convenient to trick the brain.
Then comes my favorite stage — lighting
The light in the original drawing is already painted in.
It has shadows, highlights, and illuminated surfaces.
But on top of this, I add real 2D light sources and dynamic shadows.
And this turned out to be incredibly fun.
For example, a character walks in the dark with a chemical glow stick.
As he passes by a tree, the light starts sliding over the trunk, branches cast shadows, lighting changes with the character's position.
Moreover, there's a layer on the tree that reacts particularly sensitively to the light.
It seems minor. But for some reason, I really enjoy these kinds of little details.
To me, there's a satisfying conflict between painting and all these IT things here.
A bit of distortions
Next come the shaders.
I don't want them to become a standalone visual effect.
For me, the ideal scenario is when the player barely notices that something is happening.
I use minor surface deformation, barely visible jitter, overlay, and movement of semi-transparent textures over the original drawing.
The shaders I use are technically quite simple. No black magic.
Just several small effects combined: pixel displacement in random directions, slight color blending around each pixel, slight brightness flickering. And all of this at 3-4 frames per second.
And then it happens: the brain starts perceiving the still drawing as something alive.
One effect does almost nothing
This is probably the most important thing I learned while working on the visuals.
There's no single technology that suddenly turns static art into a game scene.
Parallax by itself is just parallax. Light by itself is just light.
Minor texture movements don't add much.
Animating a few details is nothing special either.
But when all of this works simultaneously, the effect suddenly becomes much stronger than the sum of its parts.
And then there's sound.
GIFs can't show that, unfortunately.
Add room noise, or wind, or equipment hum. Then footsteps.
Some quiet mechanical sounds. And on top — music! Mmm...
By the way, for about 15 years before game development, I wrote music, so the audio part is a particular pleasure for me. By the way, check out Nicephorus!
And when the drawing moves, the light reacts, there's ventilation noise, and music plays on top — for me, it's real magic.
A few days ago, you painted a PNG.
And now it feels like a real place or a living character.
Why Godot
The entire game is currently being put together in Godot.
I didn't come to it immediately. Initially, I tried simpler engines that seemed more user-friendly for someone who had never made games before.
But I quickly ran into limitations.
I wanted lots of parallax effects. And live dialogue bubbles. And dynamic lighting. And to be able to create complex scene transitions. And to write custom shaders. And to make the camera smooth. And to create a save system without having to rewrite the engine.
In Godot, my hands are practically untied in this sense.
It's lightweight, launches quickly, and allows me to test ideas very fast.
This is especially important when working alone.
You can come up with some silly idea in the evening, put it together in a couple of hours, realize it's indeed silly, delete everything, and move on calmly.
That's progress too.
I've gradually developed quite a few of my own small systems: scene management, parallax effects, transitions, working with light, images, and shaders.
For dialogues, I use Dialogue Manager by Nathan Hoad — a wonderful plugin that has saved me a ton of time.
But there's no unique engineering magic under Mayak's hood.
Almost everything has already been invented before me.
I just take familiar elements and assemble them in a way that I like.
Now for the downside
There's one quite obvious downside to this approach.
Drawing. A lot.
Almost every scene in Mayak is unique. I don't build levels from repeating tiles or rearrange the same set of objects. A new episode often means a new full-fledged illustration, which then needs to be separated into layers and animated.
Sometimes I can create two or three scenes in a week.
Who am I kidding...
More like one or two...
And some I can tinker with much longer.
At some point, I realized that the romantic idea "let's have each scene be drawn separately" is a trap I set for myself.
Now it's too late. I'll have to draw.
I don't recommend it to anyone.
But for now, this part of development is what I enjoy the most. You take a completely motionless picture. Start adding layer by layer: parallax, light, shadows, shaders, sound.
And at some point, it starts to breathe.
That's probably why I started all this.
A bit about Mayak itself
If after all the PNG talk you're still curious about the game: Mayak is a linear story-driven sci-fi narrative about four hours long.
At its core is a young astronomer, Nina, cat Isaac, and a signal from another star:
- 3571
- 3559
- 3557
… (people started receiving numbers from space!)
All the numbers are prime.
And they are decreasing.
Further details would be spoilers, so I'll stop here.
There is already a free demo on Steam that lasts about 30–40 minutes.
And I continue to work on the full game.
The script is already finished.
What's left is the smallest part.
To make everything else.
Join me on my Telegram channel.













