Anatoly Voevodin

____________________________________________________

HTML5 Game Developer

Experience

SOFTGAMES march 2022 - present

ANV Games january 2020 - february 2022
Development of own HTML5 game projects of various sizes: from hyper-casual to full-fledged games in social networks (for Poki, Yandex.Games, VK, OK, MY.GAMES, CrazyGames, GameDistribution). All the projects work well on Desktop and Mobile.

The process included solving a full range of tasks: idea -> game design -> game balance -> art -> design -> back-end -> front-end -> publishing -> promotion -> maintaining and updates. The main specialization is Front-End (PixiJS), but regularly encountering React and similar modern Front-End tools. Also development always included NodeJS, MongoDB, Ubuntu, Nginx, fastify/express and colyseus.io (for multiplayer game).

Successfully published titles are Z-Raid, Laborer 2, Merge Nums, Soviet Slots, Paper Airplane.

101 XP Full Stack HTML5 Game Developer april 2019 - january 2020 (9 months)
Maintaining Crazy Jump game project on Facebook Instant Games and Yandex.Games using variety of tools, libs and technologies: BabylonJS, TypeScript, VueJS, NodeJS, MongoDB and more.

2Bob HTML5 Game Developer february 2017 - april 2019 (2 years 2 months)
In 2017 we migrated from Flash to HTML5 and created games with PixiJS, Phaser, BabylonJS, Three.JS, NodeJS, MongoDB etc. At the same time we developed internal services for games (like admin panels) with VueJS, React, Bootstrap.

Don't hesitate to write us about any HTML5 game projects that you need to have done! Facebook Instant Games, Playable ads, social network games etc.
We have a porfolio where you may see some of our own and outsourcing projects and contact us - check it out.

Speak With A Geek HTML5 Game Developer june 2018 - july 2018 (1 month)
Worked in a team of 3 people on a project from scratch. I had responsibilities to choose technologies to use, coding conventions. Coded libraries for later use and partially client side itself.

Eva LLC HTML5 Game Developer september 2017 - june 2018 (9 months)
Got a lot of experience while working with nice people in this great company, building not only game projects but web services for sustaining them! Here I found out about a lot of new features in Web Development!

Maintained match 3 projects (fb, vk, ok social networks) and internal company services (match 3 editors, dashboards etc). Had a lot of interesting tasks, like migrating an existing game from CreateJS to PixiJS.

Used PixiJS, CreateJS, VueJS, CoffeeScript, Meteor, Webpack, Handlebars, Backbone.js, PIXI Spine, async, underscore, FB VK OK APIs etc.

Enixan Entertainment Flash Developer august 2016 - february 2017 (6 months)
Here I got my first experience working in a company with another programmers, game designers, testers etc. Sustained and developed new features in match 3 flash game for different social networks.

2Bob Flash Developer, 2D Artist, back-end (php + mysql) developer november 2012 - july 2016 (3 years 9 months)
We started developing games while we were studying at an university and still do it. In 2016 (after completing a bachelor's degree) we stopped developing own projects (in favor of working in companies) for a while, but in 2017 we decided to migrate from Flash to HTML5 and started all over again (doing both working for companies and developing own projects).

Zaporizhzhya National University Faculty of Mathematics, Applied Mathematics master's degree, 2011-2016
Defended the master's qualification work on triangulation: "Development of Algorithm and Program for Automatic Generation and Improvement of Finite-Element Meshes".


Nowadays I create games using PixiJS and similar frameworks but in the past had a significant experience in developing flash games on ActionScript 3.0. So far a lot of own projects are released so you can see almost all of them below.

Z-Raid

Info:

2021, Tower Defense

Desc:

A multiplayer tower defense zombie game: mount turrets, level them up, upgrade your hero, compete in the arena, win tournaments and survive all the raids. Good luck!

Dev description:

Creating a new game even this size became a quite usual thing lately, so it's never a problem to create any game but there's always a way to do it better. In Z-Raid - 2 very important things happened: 1) I started developing my own game engine based on code and experience I got for all these years and; 2) I've implemented a complete multiplayer mode.

Own game engine. After a lot of other projects, I made a lot of changes in the main code architecture in order to prepare it to be a separate game engine in the future. There're a lot of routine tasks in gamedev process that I want to automate as much as it possible or make it easily done with scripts or simplified UI controls in speciliazed software.
The first version of this software I implemented using Electron. It is my internal game engine for simplifying and speeding up development of UI elements, in-game windows and localization. I already prepared a plan for the future updates of the engine and the most needed right now are:
- replace Electron with C++ and Python that will make the engine work faster;
- use highly-strict TypeScript as the language for the games themselves to make the code portable and more stable;
- add advanced pools system that will significantly increase performance of games;
- and much more.
Eventually creating own engine was a great idea as long as I saved huge amount of time while testing localization and building new UIs.

Multiplayer mode. In previous projects I already developed multiplayer modes but they always weren't good enough. In Z-Raid I finally came up with some great solutions that made the multiplayer working almost perfect even with bad internet connection. Syncing state using pure bytes, interpolating and extrapolating data allow to make almost any multiplayer game work well.

Also a matchmaker was written in order to match players from all over the world. I use 4 main regions and each has separate servers to serve rooms. Currently the game is played by hundreds of thousands of people.

Great decision was to use Colyseus.js to solve routine tasks like syncing state, sending custom events etc.

Languages:

English, Russian, Portuguese, Turkish.

Dev stack:

- PixiJS as a graphics renderer;

- Pixi Particles as a particle system;

- pixi-sound for sounds;

- pixi-spine for character animation;

- Webpack for code organization;

- Babel for great plugins and JS features that isn't released yet and not caring about cross-browser compatibilities;

- Spritesmith in webpack for automatic creation of spritesheets;

- own webpack module for automatic creation of audiosheets;

- own library over Pixi Loader which provides easy way for getting game assets "on the run", including sub-textures from spritesheets;

- anime.js for tween animations

- MomentJS for time and dates;

- NodeJS for API and multiplayer matchmaker;

- Colyseus.js for serving mulitplayer rooms;

- TypeScript on the all back-end services (api, mp etc);

- MongoDB as a storage for players' data;

- lingo - own library for localization;

- Papaya - own game engine to build UI, graphic elements and implement localization

- Electron - to build Papaya engine as a desktop application

- Adobe Photoshop, Adobe Animate, Spine for graphics

- Poki SDK, Yandex.Games SDK, VK SDK.

Merge Nums

Info:

2021, puzzle

Desc:

This game was created specially for those who want to relax and just have a good time. Pleasant sounds, soft graphics, smooth effects and rules of the game that don't drive you crazy.

Merge the same numbers, open new blocks and find out how far you can get!

Dev description:

I always wanted to try a new game engine except obvious ones and then the Yandex.Games Jam 2021 happened. The main condition to take a part there was to create a game with Defold engine. There was just 1 month to create the game, but as long as I was busy on other projects I started 2 weeks before the Jam ended, so the deadline was even tougher than I expected.

I learnt basics of Defold engine, started creating the game and while development had to study tons of things in order to make it work properly as a complete-ready-to-be-published-and-played game. Localize to 5 languages, make it work perfectly on both PCs and mobiles, make graphics look pretty but not as it does by default and more. Thanks to this experience I found some great solution for my own pseude-engine that I use to create games on JavaScript and PixiJS.

Currently the game published on CrazyGames and Yandex.Games but soon it's going to appear on CIS platforms as well.

Languages:

English, Russian, Portuguese, Turkish, Spanish.

Dev stack:

- Defold Engine;

- Adobe Photoshop for graphics

- Yandex.Games SDK, CrazyGames, SDK.

Laborer 2

Info:

2020, 2D platformer

Desc:

A laborer who is sick of carrying boxes decides to make the work easier and just destroys them using variety of guns!

Create your own clan (or join an existing one), grab powerful guns, some cool clothes, rush into the crazy action and pass levels with plenty of obstacles.

Beat the best global score and separate score of each level on your own and together with your clan. Show them all who is the best!

Dev description:

As long as the first part of the game (Laborer) was quite successfull and had 1M+ players on VK and OK in ~2015 I decided to port the game to HTML5 in 2020. The port was successfully done and the game is available on a lot of platforms (see below).


Basically the game still has the same main concepts that it had in 2015 but with some small changes in the game design and huge changes in the code. It got much more clear and tidy. Some functionality wasn't ported to this new version of the game but the general gameplay is ported extremely accurate.

Languages:

English, Russian.

Dev stack:

- PixiJS as a graphics renderer;

- Pixi Particles as a particle system;

- Box2D for 2D physics;

- pixi-sound for sounds;

- pixi-spine for character animation;

- Webpack for code organization;

- Babel for great plugins and JS features that isn't released yet and not caring about cross-browser compatibilities;

- Spritesmith in webpack for automatic creation of spritesheets;

- own webpack module for automatic creation of audiosheets;

- own library over Pixi Loader which provides easy way for getting game assets "on the run", including sub-textures from spritesheets;

- anime.js for tween animations

- MomentJS for time and dates;

- NodeJS for API;

- TypeScript on the back-end;

- MongoDB as a storage for players' data;

- lingo - own library for localization;

- Adobe Photoshop, Adobe Animate, Spine for graphics

- Poki SDK, Yandex.Games SDK, VK SDK, OK SDK, MY.GAMES SDK.

The youtuber that made reviews on Laborer 1 in 2015 got back and made a review on the new Laborer 2

Soviet Slots

Info:

2020, social casino

Desc:

It turned out audio cassettes and flour cans can win big!
- soviet-style slots;
- competing with other players for bonuses;
- bonus rubles for the tasks.

Dev description:

A small and quick project that I decided to create after I learnt some slots math that turned out quite interesting.


The project hasn't gotten any further development as long as it was created just to try what slots are and whether it has some prospects on Yandex.Games platform. Seems like the project could be successful but need much more content. There're plans for the future to add several new slots styles, add more stunning effects (including using the PixiJS particle system), bonuses and publish the game on other platforms (vk, ok etc.). A global contest leaderboard would also be a great opportunity to engage players.

Languages:

English, Russian.

Dev stack:

- PixiJS as a graphics renderer;

- Pixi Particles as a particle system;

- HowlerJS for sounds;

- Webpack for code organization;

- Babel for great plugins and JS features that isn't released yet and not caring about cross-browser compatibilities;

- Spritesmith in webpack for automatic creation of spritesheets;

- own webpack module for automatic creation of audiosheets;

- own library over Pixi Loader which provides easy way for getting game assets "on the run", including sub-textures from spritesheets;

- anime.js for tween animations

- MomentJS for time and dates;

- NodeJS for API;

- TypeScript on the back-end;

- MongoDB as a storage for players' data;

- lingo - own library for localization;

- Adobe Photoshop

- Yandex.Games SDK.

Ocean

Info:

august 2017, puzzle

Desc:

Since ancient times evil sharks occupied the settlements of civilians and nobody could help... until now! Heroes from all over the ocean gather together to get into each occupied settlement and drive away evil sharks!

Dev description:

It was my first HTML5 released game. I always wanted to create my own match-3 project because all these kind of games had the same core mechanic and I wanted to create something less obvious, so here's the items I came with after learning the market:

- getting rid of collecting 3 tiles at a row/col on the field and implementing "snake" with next to tiles with same color instead. This way allows to collect up to 20 tiles at a time;

- we want to collect tiles to: 1) break obstacles; 2) give power to heroes on the field for attacking sharks; 3) reach goals of a level;

- when we collected enough tiles of a particular hero he throws a special-super-powerful-mega-tile on the field;

- heroes need to be more powerful in order to increase their damage and capabilities of special tiles.

I guess at that moment this game was one of the most interesting in terms of development. Earlier I worked with already familiar stack (Flash AS3 + PHP + MySQL) but here I had to migrate to PixiJS + NodeJS + MongoDB (and a lot of another interesting libraries + some written by myself) that significantly broadened my knowledge about HTML5 development. Also I came up with a new way of organizing and working with a game content, which works just awesome! It includes really flexible settings of any in-game items, proposals, discounts, offers and other entites.

Languages:

English, Russian, Ukrainian.

Dev stack:

- PixiJS as a graphics renderer;

- Pixi Particles as a particle system;

- HowlerJS for sounds;

- RequireJS for code organization and obfuscation; (not used anymore)

- Webpack for code organization and obfuscation;

- Babel in webpack for great new JS features that isn't released yet and not caring about cross-browser compatibilities;

- Spritesmith in webpack for automatic creation of spritesheets;

- own library over Pixi Loader which provides easy way for getting game assets "on the run", including sub-textures from spritesheets;

- TweenLite (with BezierPlugin for "alive" tiles);

- MomentJS - awesome library for time and dates;

- Socket.IO for the communication with the server;

- NodeJS as the back-end;

- TypeScript on the back-end;

- MongoDB;

- own library for localization;

- Poki SDK, Yandex.Games SDK, VK SDK, OK SDK.

A player's review

Gameplay video by a player

Laborer

Info:

may 2015, platformer

Desc:

An angry worker who was obviously underestimated at work started destroying boxes with various guns instead of loading them.

Dev description:

In this game I acted as a "one man band": client side, server side, databases, social network APIs, drawing UI (guns, maps, clothes etc. were drawn by my colleague). As a result we got a pretty big game with following features:

- customization of the appearance of the player (head, torso, legs, feet);

- every piece of clothing changes the appearance and also gives the player certain improvements (% to damage for different types of weapons, run speed, double jump, etc.);

- crafting hats using resources that can be looted from bosses;

- several different categories of weapons;

- "Cans" that you can drink while the gameplay to get some temporary boost in your stats (similar to boosters);

- multiplayer mode where 2, 3 or 4 players fight for the largest number of destroyed boxes in real time;

- clan system with skills;

- three game modes: destroying boxes, avoiding boxes and a separate mode for clans - "Work".

Dev stack:

- ActionScript 3.0 as the client side;

- Adobe Flash IDE for drawing;

- FlashDevelop as a code editor;

- PHP as the server side (XML data transmitting);

- Box2D physics;

- MySQL database ("Laborer" had a much complex DB structure than in my other games so here I got a level up);

- multiplayer mode on NodeJS (JSON data transmitting);

- VK API, OK API.

The game isn't available on any of platforms anymore

A player's review on early "Laborer" version. A lot of things aren't present but the main idea is clear.

A bit fresher review by the same youtuber.

Rebel

Info:

january 2015, platformer, Tower Defense

Desc:

In a dilapidated military world, a player must defend himself against zombies who try to break into his shelter.

Dev description:

Here my task was to code server side, design the structure of the database, connect all these with client side and social networks VK and OK. Tasks were familiar for me so here I tried to do same things with a different approach. It helped me to reach:

- more clear and structured code on the server side;

- more efficient database structures.

Dev stack:

- PHP as the server side;

- MySQL database;

- VK API, OK API.

The game isn't available on any of platforms anymore

A player's video.

Tower

Info:

february 2014, platformer, Tower Defense

Desc:

Archer desperately tries to protect his tower from monsters.

Dev description:

In the "Tower" I had the same tasks as I had in Rebel game but here I also coded the main game menu. This project was my first experience working together with another programmer.

Dev stack:

- ActionScript 3.0 on the client side;

- Adobe Flash IDE for drawing and compiling the code;

- FlashDevelop as a code editor;

- PHP as a server side;

- MySQL database;

- VK API, OK API.

The game isn't available on any of platforms anymore

A player's video.

Zombak

Info:

december 2013, tamagotchi

Desc:

A player has his own zombie! It was just infected and now the player has to ensure that his "Zombak" is growing in correсt zombie-direction!

Dev description:

I had to code all those things that had to be coded :) Client side, server side, databases, social networks etc. UI was drawn by my colleague. This is THE game where I realised all complexity of working with databases in terms of its difficult structure for this kind of games. Also we implemented a clan system that made all the work both difficult and interesting at the same time. It was the first time when I had to deal with a clan system so I bumped into a lot of troubles which will never get into my next projects again from now. A lot of things were learnt on a client side as well, especially event-system because of repetitive asynchronious queries.

Dev stack:

- ActionScript 3.0 on the client side;

- Adobe Flash IDE for drawing and compiling the code;

- FlashDevelop as a code editor;

- PHP as a server side;

- MySQL database;

- VK API, OK API.

The game isn't available on any of platforms anymore

A player's video.

Zombie Stream

Info:

march 2013, Top Down Shooter

Desc:

A guy protects his shelter with guns and skills from bloodthirsty zombies.

Dev description:

My the very first game. It was that time when I just caught on with the idea of developing games for social networks. Actually before that moment I also was interested in drawing cartoons, developing sites, and creating another simple games on GameMaker without coding. It can't be compared with the Zombie Stream because the latter required me to have much more knowledge than I had at that time. The project taught me not only about fundamental things in coding but also about creating a project from A to Z, from idea to getting featured in the feeds of social networks.

- created multiplayer mode where 2 players can protect a house together;

- a player can buy new guns in order to take particular of them on the "battlefield";

- 4 skills which we can be improved;

- increasing max health of the house and a player itself;

- adjusting difficulty before a game start.

Dev stack:

- ActionScript 3.0 on the client side;

- Adobe Flash IDE for drawing and compiling the code;

- FlashDevelop as a code editor;

- PHP as a server side;

- MySQL database;

- Union Platform for multiplayer mode;

- VK API, OK API.

The game isn't available on any of platforms anymore

A player's video (unfortunately I haven't found better quality)