Путь

От BASIC до AI-агентов

Примерно раз в пять лет я заново осваивал ремесло: Pascal, C++ и OpenGL, Unity, Solidity, TypeScript, а теперь разработка с AI-агентами. Вот что я построил по дороге.

  1. 1994+ BASIC, Pascal и олимпиады
  2. 1994

    Первые программы на BASIC

    Начал программировать на BASIC на советском домашнем компьютере БК-0010.

    BASICBK-0010
  3. 1996

    Pascal

    Перешёл на Pascal — язык всех олимпиад и моих первых настоящих игр.

    Pascal
  4. 1997

    Super Amik

    Придумал платформер на бумаге, уровень за уровнем в школьной тетради: геймдизайн ещё до того, как появилась машина, на которой его можно сделать.

    Paper
  5. 1998

    Tank — мой первый доведённый до конца продукт

    Первая большая программа, которую я довёл от идеи до готовой игры: танковый бой на Паскале в текстовом режиме на сетке 80×50, с уровнями, оружием, меню и заставкой. Около тысячи строк, выросших с марта по май 1998 года до версии 1.60; осенью появился Tank 2 уже с графикой.

    Turbo PascalText mode
  6. 1999

    Space War

    Моя первая хорошая игра: дуэль двух корабликов, повороты через синусы и косинусы, до которых я дошёл сам, деформация корабля при таране, векторный редактор кораблей, десяток видов оружия, миссии и свои загрузчики BMP и WAV.

    PascalBGIVector graphics
  7. 1998–2001

    Игры DiVision

    Другие мои игры того времени, среди них Capture or Destroy.

    PascalFree PascalDelphi
  8. 2000

    Lamer-Killer: 3D без движка

    Шутер с видом сверху, который мы начинали с одноклассником, вырос в мой собственный программный 3D-рендер: без движка и без видеокарты, каждый пиксель считался на процессоре по формуле проекции, которую я вывел сам, — задолго до того, как узнал, как это сделано в Doom. Редактор хранил уровень как матрицу проходимости, а оптимизатор объединял длинные стены в один полигон.

    PascalSoftware rendering
  9. 2000

    Space War 2K: один движок — три игры

    Вдохновившись тем, как устроены моды к Half-Life, я сделал один движок и один exe-файл, на котором работали три разные игры — бои кораблей, танчики с видом сверху в духе GTA и артиллерийская игра вроде Worms, — достаточно было подменить папку с ресурсами и правила в конфиге. В главном меню играло видео, отрендеренное в 3ds Max, — через мой собственный формат с дельтой кадров и свой загрузчик BMP, на Паскале, который видео не поддерживал вообще.

    PascalEngineVideo codec
  10. 2001

    Doom RF

    Сделал за две недели в подарок однокласснику на день рождения, потом почти год дорабатывал: 4 игрока за одним компьютером плюс 8 ботов на вейпоинтах, редактор уровней и трюк с переключением банков, чтобы рисовать 640×480 за пределами 64-килобайтного окна видеопамяти. В 2026 портировал на 64 бита и SDL2, добавил звук и выпустил как полноценный релиз.

    Borland PascalFree PascalSDL2
    Doom RF
  11. 2002

    Золото IOI

    От книг по алгоритмам и спонсорской группы Progmeistars — ко второму месту на Латвийской олимпиаде, Балтийской олимпиаде и золоту Международной олимпиады по информатике в Йонъине (Корея): 18-е место в абсолютном зачёте, одна из 23 золотых медалей (в протоколе — Andrejs Ivanovs, Латвия).

    AlgorithmsPascal
    Золото IOI
  12. 2002–2006

    ACM ICPC

    Пять сезонов студенческого чемпионата ACM ICPC за Латвийский университет. 2002: лучшая команда Балтии на полуфинале Северо-Восточной Европы. 2003: победитель 12-го Турнира компьютерных программ (как Андрей Иванов).

    AlgorithmsC++
  13. 2002

    Карты, демки и F(x)

    Карты для Half-Life и Counter-Strike, программки, которые красиво что-то рендерят, и F(x) — построитель графиков функций с зумом и скроллом, написанный на Delphi.

    Delphi
  14. 2002–2011

    Преподавание в Progmeistars

    Девять лет преподавал программирование группам учеников в крупнейшей детской школе программирования Латвии; разработал новую учебную программу.

  15. 2003

    Свой курс по PHP

    Написал и вёл в Progmeistars собственный курс веб-программирования на PHP; сделал IRC-прокси и систему тестирования для олимпиадных задач; администрировал Linux-серверы школы.

    PHPMySQLLinux
  16. 2004+ C++, OpenGL и свои движки
  17. 2004

    C++ и OpenGL: Chess 3D

    Перешёл на C++ (с STL олимпиады решать намного проще) и на полноценное 3D. Первый проект на заказ — трёхмерные шахматы с bump mapping и картами отражений.

    C++OpenGL
  18. 2004–2006

    Physics 2D

    Курсовая, выросшая в бакалаврскую: свой движок с физикой и полноценная игра на нём — вдохновлялся Elasto Mania и Half-Life 2.

    C++
  19. 2005

    Xray

    Демо на заказ на моём движке: рентгеновские лучи проходят через полупрозрачную кость.

    C++OpenGL
  20. 2005–2018

    muo.lv

    Частный сервер MuOnline, который я соосновал и запрограммировал: через несколько недель после запуска в 2006 году — 300–400 игроков онлайн. Всё вокруг игры сделал я: сайт на PHP с рынком игроков, рейтингами, аукционами, обменом вещами и квестами, SMS-платежи, экономика на кредитах, VIP-сервер, публичные бан-листы — плюс свой античит, серверный туннель, лаунчер с автообновлением и бот, который проводил ивенты в игре.

    PHPSQL
  21. 2006

    Steel Engine

    Свой движок на C++: сцена описывается в конфигах, префабы с переопределяемыми параметрами — идея, которую потом сделал массовой Unity, — плюс графика и простая физика. Исходники открыты.

    C++OpenGL
    Steel Engine
  22. 2006–2012

    whiteCryption

    Архитектор ПО в области white-box криптографии и защиты кода (RSA, ECC, SHA, AES). Спроектировал архитектуру v5, которая работает в продакшене уже около 15 лет, теперь в составе Zimperium.

    C++Cryptography
  23. 2008

    Labyrinth

    Магистерская работа: мультиплеерная гонка по лабиринту на Steel Engine. Свой сетевой протокол, графика и звук — всё с нуля.

    C++OpenGLNetworking
    Labyrinth
  24. 2010+ Unity и студия на 35 человек
  25. 2011

    Unity: Bastions

    Первая игра на Unity: две башни — строишь свою и обстреливаешь башню противника из пушек. Задумывалась как мультиплеер.

    UnityC#
  26. 2011

    Nunnery

    Хакатон в Лондоне на один день: платформер про прыгающую монашку на движке друга, на котором он делал игры для консолей Sony.

  27. 2012

    MyCountry в innoWate

    Два месяца в студии Game Insight на MyCountry — градостроителе с 5M+ установок в Google Play: исправлял баги и возвращал старые механики.

    C++Mobile
  28. 2012–2018

    MadSword →

    Соосновал игровую студию и вырастил её до 35 человек. Начинали Steam Defense за кухонным столом, нашли инвестора, потом перешли на игры на заказ для издателей: один переиспользуемый Unity-движок с редактором уровней и общим сервером дал 100+ игр и рескинов и тысячи уровней. Всего 160+ игр и 20M+ скачиваний, в основном через голландского издателя. Были и VR-игры.

    UnityC#Java
    MadSword
  29. 2013

    Global Game Jam: Tankraft

    Сетевая танковая битва, сделанная за выходные вдвоём с напарником: свой или выделенный сервер, два вида оружия, танки на физике. Сборки под Windows, macOS, Linux и браузер.

    UnityC#Networking
    Global Game Jam: Tankraft
  30. 2013

    Запуск Steam Defense

    Первый собственный релиз MadSword — на Kongregate, ВКонтакте и Одноклассниках: свой скриптинг сценариев, AI для скирмиша и PvP и BotWars — ночной стресс-тест с десятками тысяч юнитов, после которого игра за три недели перестала падать.

    UnityC#Networking
    Запуск Steam Defense
  31. 2015–2020

    Zebrainy

    Совладелец и технический директор компании, делающей развивающие игры для маленьких детей.

    Unity
  32. 2017+ Web3 и real-time платформы
  33. 2017

    Decrypted Kitties

    Игра в духе CryptoKitties, сделанная примерно за неделю и выпущенная в Google Play, — первый шаг в крипто-игры.

    Unity
  34. 2017–2021

    Blockchain Cuties →

    Писал контракты на Ethereum для других, потом соосновал Cuties и запустил её за четыре месяца (апрель 2018) — до того, как стандарт ERC-721 был окончательно принят. Персонажи и скрещивание — в блокчейне, предметы и бои — на сервере с одноразовыми подписями, которые проверяют контракты. Ethereum, затем EOS, TRON, NEO и Polygon — мультичейн-архитектура, которую позже расширили до 7 сетей. #1 на DappRadar; 2021: контракты governance-токена и IDO.

    SolidityNode.jsEOSTRON
    Blockchain CutiesBlockchain Cuties
  35. 2020–2024

    Dice Chess →

    Шахматы в реальном времени с вариантом на кубиках — от идеи до запуска: ТЗ, архитектура, своя система тестирования шахматных позиций; нагрузочные тесты на 20 000 одновременных игроков.

    JavaVueTypeScriptMicroservices
    Dice Chess
  36. 2021–

    Roach Racing Club →

    Web3-гонки с нуля: смарт-контракты, токеномика, свой WebGL-движок для живых заездов и биологическая симуляция бега.

    SolidityThree.jsTypeScript
    Roach Racing Club
  37. 2022–

    Fractional CTO

    Технический партнёр для фаундеров: разработка с фиксированным объёмом, ревью архитектуры и due diligence.

  38. 2025+ Разработка с AI-агентами
  39. 2026

    TaleCheck →

    Статический анализ художественного текста, построенный в одиночку с Claude Code и параллельными агентами: ~2 300 коммитов меньше чем за три месяца, работает с платными пользователями.

    TypeScriptNestJSClaude CodeAnthropic API
    TaleCheckTaleCheck