Таймлайн

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

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

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

    TaleCheck

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

    TypeScriptNestJSClaude CodeAnthropic API
    TaleCheckTaleCheck
  3. 2026

    Воксельный мир за неделю 📷 4

    Свой «майнкрафт» на Unity, собранный примерно за неделю в феврале 2026 года с Claude Code: процедурный ландшафт с горами, реками и лесами, мир, разбитый на чанки, и редактирование кистью блоков — вплоть до посадки деревьев.

    UnityC#Claude Code
    Процедурный ландшафт: река, холмы и горы.

    Процедурный ландшафт: река, холмы и горы.

  4. 2025–2026

    Griddle Fun 📷 4

    Игра на живом графике криптовалюты: кликаешь в клетку сетки, в которую, по-твоему, придёт курс, и выигрываешь с коэффициентом этой клетки. Самое сложное — математика: рассчитать коэффициент каждой клетки. Её мы делали вдвоём с математиком: я ставил задачу, тестировал его результаты и возвращал, что не так, — параллельно писал саму игру. Симуляционное тестирование делал я сам: боты с разными стратегиями, жадными и не только, играют против выплат, пока коэффициенты не сойдутся. Прогон на 604 800 секундах курса (неделя) дал почти ровно ноль — ROI около 0,4%, как и задумывалось.

    Сетка: у каждой клетки впереди линии курса свой коэффициент.

    Сетка: у каждой клетки впереди линии курса свой коэффициент.

  5. 2017+ Web3 и real-time платформы
  6. 2022–

    Fractional CTO

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

  7. 2021

    Генеративные NFT-деревья, которые растут 📷 2

    Для Web3-игры я сделал деревья, которые растут в блокчейне. Каждая NFT получает 256-битный геном из Chainlink VRF, а мой декодер превращает его в характер дерева: длину и толщину веток, углы, провисание и изгиб, силу тяжести, густоту кроны. Дальше рекурсивный алгоритм рисует дерево в воксельной сетке, по кубикам, как в Minecraft, а трёхмерный simplex-шум задаёт форму кроны и изгибы веток. Каждый шаг роста, до десяти, — это транзакция, и у каждой ветки своё зерно, поэтому дерево именно растёт, а не перерисовывается: веточка с прошлого шага становится веткой и снова делится. В картинку попадает и мир вокруг: крона густеет или редеет вслед за ценой токена между шагами (из ценового фида Chainlink), цвет коры зависит от адреса владельца, небо меняется по часовому циклу дня и ночи, в листве горят фонарики, а у владельцев, которые только что проголосовали за проект, крона становилась золотой или розовой. Сначала картинки делал воксельный рейтрейсер, который предложила студия, приведённая моими партнёрами: я по договорённому протоколу отправлял им сетку, они ставили задачу в очередь, а я опрашивал результат. Но он умел рисовать только кубики, был платным, и я зависел от чужих серверов. Поэтому я перешёл на Blender: каждая модель экспортируется в GLTF и рендерится на сервере в Blender Cycles скриптом на Python, и теперь можно ставить любые объекты, площадки, камеры и свет — на зрелом движке с открытым кодом. Сервис метаданных отдаёт картинку каждого шага роста. Примерно месяц работы в октябре 2021 года, Polygon и BNB Chain. Рендеры ниже я сделал заново в 2026 году из исходного кода, в Blender 2.93 и с исходной сценой.

    TypeScriptNode.jsBlenderChainlink
    Двенадцать случайных геномов, каждый на последнем шаге роста.

    Двенадцать случайных геномов, каждый на последнем шаге роста.

  8. 2021–

    Roach Racing Club 📷 9

    Web3-гонки с нуля, которыми управляешь живым крипто-трейдингом: смарт-контракты, токеномика, свой WebGL-движок для живых заездов на 10 игроков, модель гонки, отбалансированная в моём симуляторе, и микросервисный бэкенд. В вебе и в Telegram.

    SolidityThree.jsTypeScript
    Roach Racing Club
  9. 2020–2024

    Dice Chess

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

    JavaVueTypeScriptMicroservices
    Dice Chess
  10. 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
  11. 2017

    Decrypted Kitties 📷 4

    Игра в духе CryptoKitties, сделанная примерно за неделю и выпущенная в Google Play 31 декабря 2017 года под названием «Crypto Kitties Decrypted Simulator», — первый шаг в крипто-игры. Собираешь, скрещиваешь и продаёшь котов со своими генами, без кошелька и эфира.

    Unity
    Decrypted Kitties в Google Play, декабрь 2017.

    Decrypted Kitties в Google Play, декабрь 2017.

  12. 2010+ Unity и студия на 35 человек
  13. 2015–2020

    Zebrainy 📷 3

    Совладелец и технический директор компании, делающей развивающие игры для маленьких детей. Одно из приложений, Zebrainy ABCs, учит алфавиту: ребёнок перетаскивает светящиеся шарики, собирая из них букву, а потом попадает в нарисованный мир слов на эту букву — 26 букв, 26 миров.

    Unity
    Zebrainy ABCs: мир буквы A.

    Zebrainy ABCs: мир буквы A.

  14. 2015–2016

    Бесплатные воркшопы по геймдеву 📷 2

    Мы открывали офис MadSword для местного комьюнити — бесплатные вечерние воркшопы: как делаются игры на Unity и в Blender и какие нюансы мы узнали в продакшене — от риггинга персонажей до античита на Unity C#. Записи остались на YouTube.

    UnityC#Blender
    Я выступаю на воркшопе в офисе MadSword, декабрь 2015 года.

    Я выступаю на воркшопе в офисе MadSword, декабрь 2015 года.

  15. 2013

    Запуск Steam Defense

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

    UnityC#Networking
  16. 2013

    Кружок физики для дошкольников

    Волонтёрский кружок физики в Риге для детей дошкольного возраста. Начинали его друзья для своих детей, потом для детей знакомых, а я присоединился как преподаватель; дети платили символический взнос, а я денег не получал. Мы запускали ракеты на сжатом воздухе и CO₂, играли с сухим льдом, плотностью и машинками. В видео — один из экспериментов с ракетами.

  17. 2013

    Global Game Jam: Tankraft

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

    UnityC#Networking
    Global Game Jam: Tankraft
  18. 2012–2018

    MadSword 📷 7

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

    UnityC#Java
    MadSword
  19. 2012

    MyCountry в innoWate

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

    C++Mobile
  20. 2011

    Nunnery

    Двухдневный геймджем в лондонском хакерспейсе, где полно паяльников, роботов и серверов. Позвал меня Игорь — знакомый по университету, который работал в Sony, а теперь делал свои 2D-игры на собственном кросс-платформенном движке IGE, нацеленном в основном на приставки вроде PSP. Мы сделали две игры; в «Монашке» (Get Me to a Nunnery) — платформере про прыгающую монашку — я был основным программистом. Выбрал IGE, а не Unity, чтобы разобраться в движке для следующих игр, и ещё два дня дома рефакторил игру.

  21. 2011

    Unity: Bastions

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

    UnityC#
  22. 2004+ C++, OpenGL и свои движки
  23. 2008

    Labyrinth 📷 6

    Магистерская работа в Латвийском университете (2008, руководитель доц. Kārlis Freivalds): Steel Engine, выросший примерно до 30 000 строк на C++, и Labyrinth — сетевая гонка по сгенерированному лабиринту как его демонстрация. Я основал и вёл нашу команду DiVision и написал всё, кроме звука, который делал Андрей Мовляйко. Главное: попиксельное освещение на GLSL, где для каждой комбинации числа источников света и флагов материала шейдер компилируется один раз и кэшируется; теневые объёмы с Carmack’s reverse — выбраны вместо shadow mapping ради точных теней; алгоритм видимости для лабиринтов, после которого стал играбельным лабиринт 100×100 вместо 14×14, потому что число рисуемых объектов перестало зависеть от размера лабиринта; и сетевой протокол поверх библиотеки enet со своим методом синхронизации — penalty synchronization: тела разных игроков могут ненадолго пересечься, и силы расталкивают их.

    C++OpenGLGLSLNetworking
    Labyrinth
  24. 2006–2012

    whiteCryption

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

    C++Cryptography
  25. 2006

    Steel Engine 📷 5

    Свой движок на C++: сцена описывается в конфигах, префабы с переопределяемыми параметрами — идея, которую потом сделал массовой Unity. Он же стал моей бакалаврской работой «Моделирование механического движения в компьютерной графике» (Латвийский университет, 2006, руководитель Dr. Паулис Ķikusts): отдельные графический и физический движки — объект только рассказывает, как он выглядит, а движок сам решает, как его рисовать; и физическая модель твёрдых тел, написанная с нуля, в 3D с шестью степенями свободы: метод цилиндров и последовательный алгоритм коллизий из моей 2D-курсовой, движение по заданным траекториям вместе со свободным движением, обработка столкновений по законам сохранения импульса и энергии, около сотни тел в реальном времени. Рецензент отметил, что движение в демо действительно подчиняется законам физики — чего нет во многих графических движках того времени. Исходники открыты.

    C++OpenGL
    Steel Engine
  26. 2005–2018

    muo.lv

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

    PHPSQL
    muo.lv во времена Season 6: рейтинг персонажей и кто сейчас на сайте.

    muo.lv во времена Season 6: рейтинг персонажей и кто сейчас на сайте.

  27. 2005

    ULTRA ParaShop: своя CMS 📷 3

    Интернет-магазин для парапланерного клуба — крылья, подвесные системы, дельтапланы, мотодельтапланы — на своём движке поверх PHP 5 и PostgreSQL, а не на готовой CMS. Каждая страница — дерево в базе данных: локация, блоки (слева, в центре, справа), группы, пейджлеты. Каждый кусок рисуется шаблоном, который тоже хранится в базе и редактируется в админке, на моём языке шаблонов с переменными, условиями, циклами и вложенными компонентами. Админ правит живую страницу прямо на месте: у каждого блока и группы своя панель — добавить, передвинуть, скрыть, удалить. Товары с цветами и таблицами моделей, корзина с заказами по e-mail, комментарии, статистика посещений и продаж, три языка (RU, EN, LV), картинки в базе, бэкап и восстановление из админки с отправкой дампа по почте. Около 10 000 строк на PHP. В 2026 году я поднял его в Docker из бэкапа ноября 2005 года, чтобы снять эти скриншоты.

    PHPPostgreSQLJavaScript
    Главная страница магазина на русском, восстановленная из бэкапа 2005 года.

    Главная страница магазина на русском, восстановленная из бэкапа 2005 года.

  28. 2005

    Xray

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

    C++OpenGL
  29. 2004–2006

    Physics 2D

    Курсовая, из которой выросла 3D-физика моей бакалаврской на Steel Engine: свой движок с физикой и полноценная игра на нём — вдохновлялся Elasto Mania и Half-Life 2. Курсовая 2005 года «Collision Detection» под руководством профессора Паулиса Ķikusts ставила цель: сотня твёрдых многоугольных тел в реальном времени, которые не проходят друг сквозь друга даже при низком FPS. В ней разобрано, как это делали игры, — ограничивающие прямоугольники в Doom и Mario, сетка-хеш в Warcraft, многоугольники в Quake и Havok, — и добавлены мои собственные методы: метод цилиндров, где движущееся и вращающееся тело в пространстве «2D плюс время» становится скрученным цилиндром, и столкновение внутри кванта времени находится точно, последовательный алгоритм определения коллизий и расчёт момента инерции произвольного многоугольника.

    C++STLOpenGL
    Из курсовой: звезда, которая движется и вращается, в пространстве «плоскость плюс время» превращается в скрученный цилиндр. Определение коллизий сводится к поиску пересечения таких цилиндров.

    Из курсовой: звезда, которая движется и вращается, в пространстве «плоскость плюс время» превращается в скрученный цилиндр. Определение коллизий сводится к поиску пересечения таких цилиндров.

  30. 2004

    C++ и OpenGL: Chess 3D 📷 2

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

    C++OpenGL
  31. 1994+ BASIC, Pascal и олимпиады
  32. 2003–2007

    Сисадмин в Progmeistars 📷 2

    Параллельно с преподаванием был системным администратором школы: ставил и поддерживал Linux-серверы на Gentoo и учебные компьютеры учеников, вплоть до сборки собственных ядер.

    LinuxGentooNetworking
    Настраиваю ядро Linux 2.6 для школьного компьютера, октябрь 2005 года.

    Настраиваю ядро Linux 2.6 для школьного компьютера, октябрь 2005 года.

  33. 2003–2004

    Testing Suite

    Вместе с Сергеем Козловичем и Александром Беловым, моими товарищами по команде ACM, мы сделали систему для проведения олимпиад по программированию. Сергей написал ядро-тестер: очередь решений, запуск программ участников под отдельным пользователем в chroot с ограничением времени, памяти и дочерних процессов, компиляторы C++ и Free Pascal. Александр написал плагины-чекеры. Я сделал веб-часть на PHP и MySQL: вход, отправка решений, результаты, вопросы жюри и настройки олимпиады — например, когда участники и гости могут видеть таблицу результатов.

    PHPMySQLC++Linux
  34. 2003

    Турнир компьютерных программ

    Победил на 12-м Турнире компьютерных программ в Progmeistars (как Андрей Иванов), где программы играют друг против друга. Секрет — заранее посчитанная таблица на 16 миллионов позиций, упакованная в 2 МБ.

    PascalAlgorithms
  35. 2003

    IRC-баунсер

    IRCdaemon: IRC-прокси и баунсер на C++ на голом WinSock, без сетевых библиотек. IRC-клиент подключался к нему по паролю; когда ты уходил, он оставался в твоих каналах с away-сообщением. Несколько пользователей — у каждого свой ник, сервер и каналы, — права администратора и режим отладки, который писал весь трафик в лог.

    C++Borland C++ BuilderWinSockIRC
  36. 2003

    Свой курс по PHP

    Написал и вёл в Progmeistars собственный курс веб-программирования на PHP.

    PHPMySQL
  37. 2002–2011

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

    Девять лет преподавал программирование группам учеников в крупнейшей детской школе программирования Латвии; разработал новую учебную программу. Мой метод — сначала проблема, потом инструмент. По ночам устраивал LAN-party, где встречались олимпиадники, университетские группы, преподаватели и музыканты.

    Progmeistars, 2006: ученик проспорил учителю и расплатился на доске.

    Progmeistars, 2006: ученик проспорил учителю и расплатился на доске.

  38. 2002

    Карты для Half-Life и Counter-Strike 📷 10

    Карты для Counter-Strike, сделанные по нашему многолетнему опыту игры: нам не нравилось полминуты бежать до противника, чтобы там умереть. cs_mini — маленькая карта с множеством ходов: террористы появляются в доме, который осаждает спецназ, а контры могут обойти здание с двух сторон, спуститься в канализацию или подняться на крышу тремя способами. ge_roy ещё меньше — на 4 на 4.

    Valve Hammer Editor
  39. 2002

    kindex.times.lv — мой первый сайт 📷 2

    Мой первый сайт на бесплатном хостинге times.lv, написанный руками на HTML и JavaScript: интро, обо мне, CV, история моего ника, фотографии, мой плейлист из Winamp, ссылки и гостевая книга. Главной была страница progs — мои программы для скачивания: Doom RF («помещается на одну дискету»), Space War 2K, F(x) и две карты для Counter-Strike. Демки, которые я писал в тот год, приглашали на него в бегущей строке. Ещё оттуда же, на Delphi: Ticker, метроном, под который я учился играть на гитаре. На скриншотах версия декабря 2004 года.

    HTMLJavaScriptDelphi
    kindex.times.lv, версия декабря 2004 года.

    kindex.times.lv, версия декабря 2004 года.

  40. 2002–2006

    ACM ICPC

    Пять сезонов студенческого чемпионата ACM ICPC за Латвийский университет. В 2002 году первокурсниками — Александр Белов, Сергей Козлович и я, все трое с IOI 2002 — мы заняли 1-е место на отборе в университете, 6-е на четвертьфинале в Минске а на полуфинале Северо-Восточной Европы в Петербурге стали лучшей командой Прибалтики. Именно благодаря нашему выступлению на первом курсе университету разрешили отправлять на следующий четвертьфинал четыре команды вместо двух. Позже, командами BUGS-XP и затем BUGS.NET, мы заняли 3-е место на четвертьфинале 2004 года в Минске и 5-е — в 2005-м.

    AlgorithmsC++
    Наша команда Латвийского университета: Александр Белов, Сергей Козлович и я (справа).

    Наша команда Латвийского университета: Александр Белов, Сергей Козлович и я (справа).

  41. 2002–2008

    Латвийский университет 📷 3

    Компьютерные науки в Латвийском университете: бакалавриат, затем магистратура. Бакалаврская работа «Моделирование механического движения в компьютерной графике» на моём Steel Engine вошла в десятку лучших из 125 работ конкурса e-Dimensija 2006, который проводили Microsoft Latvia и Министерство экономики. В видео ниже — наш факультет, смоделированный на моём собственном движке Steel Engine, с текстурами из фотографий, которые я сам там снимал.

    C++Numerical methods
    У доски: метод Фурье, Латвийский университет.

    У доски: метод Фурье, Латвийский университет.

  42. 2002

    Золото IOI

    От книг по алгоритмам и спонсорской группы Progmeistars — ко второму месту на Латвийской олимпиаде, бронзе Балтийской олимпиады и золоту Международной олимпиады по информатике в Йонъине (Корея): 18-е место в абсолютном зачёте, одна из 23 золотых медалей (в протоколе — Andrejs Ivanovs, Латвия). На Латвийской олимпиаде я единственный решил две задачи на 100 баллов, одна из них — «Operācija @», расстановка скобок в выражении из 250 цифр с неассоциативной операцией, и получил спецприз Progmeistars за качество решений. За олимпиады — премии от правительства Латвии и от Рижской думы.

    AlgorithmsPascal
    Золото IOI
  43. 2001

    Pinball: векторная физика 📷 2

    Я хотел сделать третий Space War без его проблем со столкновениями и взялся за векторную физику. Каждый шар — вращающийся многоугольник, стены — произвольные отрезки, а шаг от старой позиции к новой пересекается со всеми стенами и соседними шарами, так что быстрый шар не может пролететь насквозь. Проникновение выталкивается по нормали с учётом масс, при отскоке остаётся 98% скорости и добавляется вращение, а шары могут притягиваться друг к другу, как планеты. Free Pascal и сетка по миру подняли скорость примерно с 39 до более чем 200 кадров в секунду. Отсюда начался путь к моей курсовой по физике, Steel Engine и магистерской.

    Free PascalPhysics
    Pinball, сентябрь 2001: шары громоздятся друг на друга, линия в каждом показывает его вращение.

    Pinball, сентябрь 2001: шары громоздятся друг на друга, линия в каждом показывает его вращение.

  44. 2000–2003

    Тест на ламера

    Шуточный тест, который определяет, кто вы при компьютере: чайник, ламер, юзер, хакер, программер или геймер. Каждый ответ добавляет баллы всем шести типам, и побеждают те, кто ближе всего к лучшему результату. Сначала — программа для DOS в декабре 2000 года, потом, в 2003-м, — сайт на PHP и MySQL с регистрацией по нику и статистикой ответов.

    Turbo PascalPHPMySQL
  45. 2001

    Doom RF 📷 2

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

    Borland PascalFree PascalSDL2
    Doom RF
  46. 2000

    Деньги и Власть

    Стратегия в духе Heroes of Might and Magic, где пошаговые бои смешаны с боями в реальном времени: налоги — это деньги, армия — власть, заклинания — магия, а в дизайн-документе от июля 2000 года уже были характеристики юнитов, формула морали и навыки вроде телепатии и оживления мёртвых. Команда называлась IVAvision: код писали мы с Сергеем Траско, графику рисовал мой друг Павел Бураков. Сама игра так и не была закончена, но её части сохранились.

    Turbo PascalVGA
  47. 2000

    Русский Паскаль

    Транслятор, позволявший писать на Паскале по-русски, — помощь тем, кто не знает английского. Ключевые слова брались из редактируемого словаря — так что подошёл бы любой язык; русские идентификаторы транслитерировались автоматически; << и >> заменяли begin и end, были макросы. Он встраивался в среду Borland Pascal горячей клавишей в меню Tools: Shift+F9 транслировал файл, компилировал его родным компилятором Borland и запускал. А маленькая резидентная программа подсвечивала русские ключевые слова прямо в редакторе Borland.

    PascalBorland Pascal
  48. 2000

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

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

    PascalEngineVideo codec
  49. 2000

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

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

    PascalSoftware rendering
  50. 1998–2002

    Демосцена

    Маленькие программы, которые просто красиво что-то рисуют, — от точек на сфере в 1998 году до огненного интро с бегущей строкой в 2002-м. Большинство — несколько десятков строк, которые пишут прямо в видеопамять.

    PascalFree PascalVGA
    Демосцена
  51. 1998–2002

    Проекты DiVision

    Всё, что не игры. В нашей школе каждую зиму проходил конкурс программистов, и несколько лет он был главной причиной писать код. В январе 1998 года я принёс четыре программы и получил приз за самую оригинальную; к конкурсу 1999 года их было десять; в 2001 году — первое место в трёх категориях и приз зрительских симпатий. А больше всего я делал то, что было нужно мне самому: файловый менеджер, оболочку, тренажёр слов, метроном.

    Turbo PascalFree PascalDelphi
    Проекты DiVision
  52. 1998–2001

    Игры DiVision

    Игры поменьше, которые я делал между большими (Tank, Space War, Lamer-Killer, Doom RF), на Turbo Pascal, а потом на Free Pascal. Большинство написано для школьного конкурса программистов, и все до сих пор запускаются в DOSBox.

    Turbo PascalBGIText mode
    Игры DiVision
  53. 1999

    Space War

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

    PascalBGIVector graphics
  54. 1998

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

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

    Turbo PascalText mode
  55. 1997

    Super Amik 📷 9

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

    Paper
  56. 1996

    Pascal

    Перешёл на Pascal — язык всех олимпиад и моих первых настоящих игр. На занятиях мы чуть ли не соревновались, кто сколько программ написал: у каждого была своя дискетка, «у меня 100 программ» — «а у меня 120». Программы были совсем простые, вроде «введи два числа — получи сумму», но каждый урок что-то добавлял. А потом мне захотелось сделать свою большую игру, и я начал Tank.

    Pascal
  57. 1994

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

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

    BASICBK-0010QBasic