Ниже перечислены некоторые мои тестовые, учебные и коммерческие проекты в индустрии видеоигр.
Pulse Online – (2020 – 2021)
Космическая MMORPG про исследование далеких-предалеких галактик, про войны между кланами, захваты космических станций, торговлю материалами, оружием и все в этом роде. Коротко говоря, убийца Eve Online. Игра разрабатывается Pulse Online Game. В проекте я был ведущим разработчиком, занимался серверной стороной игры и дополнительным программированием. Кроме того, я принимал участие в планировании и решении технических проблем. Для разработки игры использовался Unreal Engine.
Я участвовал в разработке этой MMORPG три года, когда был ведущим программистом в GenomeGames Ltd. Для разработки мы использовали движок Torque 3D, потому что в то время других движков, в сущности, не было. Torque 3D написан на C++, соответственно, для работы с ним я использовал этот язык. Для написания игровой логики использовал скриптовый язык движка Torque Script. В качестве БД мы использовали MS SQL Server, потому что была лицензия.
Эту казуальную игру для iPad’а мы разрабатывали в компании Paradise Development. Mancala – настольная игра для двух игроков, правила которой можно прочесть в википедии. В цифровой версии роль оппонента играет AI. В отличии от настольной версии, здесь можно использовать магию, чтобы помешать сопернику. Игра разрабатывалась на движке Torque 2D, следовательно, я использовал языки: Torque Script и C++.
Эта игра представляет собой клон широко известной классической видеоигры от Atari. Я разработал ее в качестве тестового задания для студии «Кефир». В условии задания было сказано: «вы можете использовать любой движок». Прекрасно! Я использовал любимый мною Torque 2D! В своей версии я реализовал все элементы оригинала, добавив дополнительные возможности. Управляемый игроком космический корабль перемещается по всей плоскости окна приложения. Его движение ограничено рамками окна. В арсенале нашего корабля имеется два вида оружия: пули и лазер. Пули бесконечны, тогда как лазер имеет ограничение на количество выстрелов, после чего ему нужно охладиться. В игре присутствует два типа врагов: астероиды, мирно летающие в космосе, могут иметь различные размер и скорость перемещения, и летающие тарелки, преследующие космический корабль игрока. Если пулей попасть по астероиду, он расколется на две части, которые продолжать дрейфовать в космосе. Следующее попадание уничтожит малые части. Если попасть по астероиду из лазера, он будет уничтожен с одного выстрела. В игре реализованы эффекты частиц, демонстрирующие эффекты взрыва. Первая текстовая надпись показывает количество набранных очков. Их количество увеличивается при уничтожении астероидов и НЛО. Вторая текстовая надпись отображает количество лазерных зарядов. Наш космический корабль может быть подбит в двух случаях: при столкновении с астероидом и при соударении с НЛО. После гибели корабля отобразится окно с набранным количеством очков.
Как вам известно, Арканоид – классическая видеоигра, разработать которую — частое тестовое задание в геймдев студиях. Я разработал свою версию, используя C++ и OpenGL.
Эта игра относится к жанру “Hidden Object”. Я разработал ее в качестве тестового задания для студии GameInsight, используя C++. Для вывода графики я использовал OpenGL с его расширением GLUT, для загрузки изображений разных форматов – библиотеку DevIL. Для загрузки уровней из файлов была использована библиотека TinyXML. А для сохранения данных о рекордах игроков использовалась БД SQLite.
Жанр этой игры — «пузыри». Это было тестовое в студии Playrix. Идея «пузырей» очень проста: в двумерном пространстве с различными скоростью и направлением перемещается несколько точек. Между собой точки не сталкиваются. Но они сталкиваются с границами экрана. Когда игрок кликает мышью на игровом поле, координаты нажатия представляют собой центр растущего круга. Когда круг достигает максимального размера, он остается в таком состоянии несколько секунд. Затем он начинает уменьшаться. Когда размер круга достигает минимального состояния, круг исчезает. Во время, пока круг присутствует на экране, если с ним сталкивается точка, то последняя исчезает. После этого появляется новая точка. Игрок может создавать новые круги, пока хотя бы один круг присутствует на экране. Когда последний круг исчезает, игра завершается, появляется окно, в котором отображается число уничтоженных точек, а так же их общее количество.
Для выполнения тестового Playrix предоставили собственный движок и редактор эффектов. Однако арт и визуальный контент для игры нужно было готовить самому. Между тем, движок написан на C++.
Еще одно тестовое. «Крестики-нолики» на Unreal Engine 4. В UE4 есть хорошая заготовка с девятью кубами. Воспользуемся ею для представления ячеек 3 х 3. Я смоделил в Blender крестик и нолик, добавив их в игру. Логику игры я написал на C++, так как в то время плохо знал Blueprints. Игрок играет за крестики, AI — за нолики. Я написал простенький AI, который ориентируется в ситуации на игровом поле.
Двумерная казуальная игра в жанре match-3. Тестовое в студии Playrix. myRiseOfAtlantis – это клон их игры «Rise Of Atlantis». Playrix предоставили мне арт. Условием выполнения тестового было использование движка Haaf’s Game Engine. Это старый 2D-движок, написанный на C++. Игровые уровни хранятся в xml-формате, поэтому я использовал библиотеку TinyXML для чтения файлов в этом формате.
Это моя собственная синглплеерная/мультиплеерная игра про войну огромных роботов. Для ее разработки я использовал C++ вместе с бесплатным движком DarkGDK. Игровой сервер представляет собой отдельное приложение.
Это первая трехмерная игра, разработанная мной. Я написал ее в 2007-м году, когда не было движков. Следовательно, я разработал свой 3D-движок. Он использует OpenGL, GLU, GLUT для вывода графики и DirectInput для реализации управления. Игра написана на Delphi. Более того я не применял 3D-редакторы, все объекты игры созданы средствами OpenGL.
YazevBomberMan — это трехмерный ремастер классической двумерной игры BomberMan на NES.
Это редактор уровней для моей игры YazevBomberMan. Он запускается в оконном режиме, имеет визуальные элементы для создания игровых объектов. В редакторе используется тот же графический движок (написанный мной), что в игре. Пользователь может создавать, сохранять, загружать и редактировать уровни, добавляя затем их в игру.
Это одна из первых моих игр, для визуализации использующая OpenGL. Я ее разработал до того, как танки стали мейнстримом. Игра повествует о войне между танками, ничего сложного. Движок для этой игры я разработал с нуля на Delphi, используя OpenGL для рендеринга и DirectInput для реализации управления.
«Каждый программист желает разработать Тетрис», но никто не в силах переписать историю. Алексей Пажитнов создал Тетрис в 1984-м году. С того момента каждый игродел делает свою версию Тетриса. YazevTetris – это моя версия. Я разработал ее на Delphi и OpenGL.
Еще одна классическая видеоигра. Оригинальный Pac-Man был создан компанией Namco в 1980-м году. 25 лет спустя, я разработал свою версию. Я создал движок для нее на Delphi, применяя DirectDraw для визуализации и DirectInput для стремительного управления. Это моя первая игра, использующая DirectX.