воскресенье, 10 ноября 2013 г.

Портфолио 

Ниже представлена подборка некоторых моих игр.

1) YazevPacMan 3: Rebel’s Revenge (2005) – моя разработка классической игры, чтобы не придумывать геймплей, поскольку моя цель – техническая сторона вопроса. Движок разработан мною с нуля на Delphi и DirectX (DirectDraw, DirectInput).




2) YazevTeris 2 (2006) – снова в основу геймплея легла классика – моя разработка игры Алексея Пажитнова. Движок для игры я разработал на Delphi, графическую подсистему реализовал с помощью OpenGL. 



3) YazevBattleTank 2: Metaller’s Revenge (2006) – эту игру я разработал еще до того, как «танки» стали мейнстримом. Двумерные танки. Движок написан мною с нуля на Delphi, рендер организован посредством OpenGL, управление – через DirectInput.




4) YazevBomberMan (2007) – вновь классический геймплей, однако, в отличие от оригинала, действия в моей игре происходят в трехмерном пространстве. Следовательно, игровой и графический движок – мой, написан на Delphi + OpenGL (GLU, GLUT) + DirectInput (для управления).




5) YazevBomberManDev (2008) – по сути, это редактор уровней для игры YazevBomberMan. Запускается в оконном режиме и имеет набор элементов управления, присущих средам визуального программирования (компоненты для создания внутри игровых объектов). В редакторе используется движок от игры YazevBomberMan. Построенные уровни сохраняются в файлы, которые впоследствии можно загрузить в игру.


6) DarkRobot (2008) - игра, которую я разработал для журнала "Хакер", сопроводительный цикл статей "Темное искусство игродела" есть на сайте журнала. Игра разработана на C++ с использованием бесплатного графического движка DarkGDK. Кроме синглплеера игра включает клиент-серверный мультиплеер, где сервер представлен отдельным приложением.




7) myRiseOfAtlantis (2009) - двумерная казуальная игра типа match3 – тестовое от Playrix является клоном игры Rise of Atlantis, в ней используется оригинальный арт, программная сторона написана мной на C++ с использованием указанного в задании бесплатного движка HGE. При этом для парсинга xml-файлов и загрузки из них уровня используется свободная библиотека TinyXML.




8) XMLLevelWriter (2009) – редактор уровней для игры myRiseOfAtlantis. Оконное приложение, которое я написал на C++. Уровни сохраняются в xml формате для последующей загрузки в игру.


9) Project Genom (2009 – 2012) (не издан) – MMORPG, разрабатываемая совместно с компанией GenomeGames (http://www.pgenom.ru). В проекте я принимал участие, как ведущий программист. Исходя из того, что в качестве основы для разработки был выбран движок Torque 3D (по крайней мере, во время моего участия), то для доработки движка использовался C++, для написания игровой логики внутренний язык движка – Torque Script. Плюс к этому использовалась БД MS SQL Server.




10) Arcanoid (2013) – естественно, клон Арканойда – тестовое в компании DayTerium (плюс, в некоторых других компаниях было такое тестовое). Для разработки своей версии я использовал C++ и OpenGL.





11) ObjectFinder (2013) – игра типа Hidden Object – тестовое в компании GameInsight (подразделение мобильных разработок ILikeGames, г. Ростов-на-Дону). По сложившейся традиции для планируемой игры я разработал заточенный под HO игры движок. Он был написан на C++, для визуализации использованы OpenGL, GLUT. Для загрузки изображений из разных форматов воспользовался открытой библиотекой DevIL. Для загрузки уровней из xml файлов была использована библиотека TinyXML. Вдобавок, реализована поддержка хранения данных во встраиваемой БД SQLite.





12) Menu (2013) с взаимодействием, подобным WarCraft 3, разработано с использованием Unity 3D и NGUI. Арт используется присутствующий в NGUI, кроме фона.


13) MagicMancala (2014) – разработанная совместно с Paradise Development казуальная игра для iPad (видео демонстрация проводится на PC). Основу для цифровой версии составляет настольная игра Манкала (подробности: http://ru.wikipedia.org/wiki/Манкала). Цифровая версия следует правилам оригинала, плюс, имеются некоторые добавления, так в нашей игре используется магия (отсюда происходит название). Во время разработки проекта я занимался всем программированием. Игра построена на базе кроссплатформенного игрового open source движка Torque 2D. Следовательно, главным образом игра написана на C++ и скриптовом языке движка Torque Script.






14) Asteroids (2014) – клон классической игры 1979-го года от Atari - Asteroids. Собственно, этот клон я разработал в качестве тестового для студии «Кефир». Так как, в начале выполнения «мне развязали руки», другими словами: разрешили использовать для разработки любые технологии, то я воспользовался мною горячо любимым движком Torque 2D.
В клоне реализован весь функционал оригинала с некоторыми добавлениями и/или исключениями в соответствии с ТЗ. Управляемый космический корабль перемещается по всей плоскости окна приложения, движение корабля ограничено рамками окна. В арсенале корабля есть два вида оружия: пули и лазер. Если пули бесконечны, то лазер имеет ограничение на количество выстрелов, после чего ему надо «восполниться». В игре присутствуют два типа врагов: дрейфующие в космосе астероиды, имеющие разные размеры и скорости, и летающие тарелки, всегда преследующие космический корабль. Если пулей попасть в астероид, то последний расколется на два более мелких куска, которые продолжать дрейфовать. Следующим попаданием маленькие кусочки уничтожаются. С другой стороны, если по астероиду  попасть лазером, то первый будет уничтожен с одного выстрела. В игре реализованы частицы, возникающие при взрыве и отображающие присущий ему эффект; текстовые надписи, показывающие набранные очки, увеличение которых происходит в момент поражения астероидов и тарелок; и количество лазерных снарядов. Космический корабль терпит крушение в двух случаях: при столкновении с астероидом и тарелкой. В таком случае, появляется окно, в котором отображается набранные очки, и дается выбор между стартом новой игры и выходом.





15) Стрельба по воробьям из пушки или крестики-нолики на UE 4 - эта игра представляет собой тестовое в еще одной замечательной компании (не буду говорить в какой, пока я с ней сотрудничаю). По заданию: надо разработать трехмерные крестики-нолики с помощью движка Unreal Engine 4. Значит, в UE 4 присутствует заготовка, где имеется 9 кубов, так почему же ее не заюзать для старта разработки игры? Пусть эти кубы представляют собой игровое поле – таблицу 3 х 3. Затем я добавил трехмерные крестик и нолик, по-быстрому, смоделированные в Blender. В UE 4 игровую логику можно писать на C++ или с помощью графического языка Blueprint. Так как, первый мне намного ближе, я использовал его. Игрок ходит за крестики, ИИ – за нолики. Следовательно, мне понадобилось написать простенький ИИ, который может ходить на основе текущей ситуации. В случае победы одной из сторон или ничьи (бессмысленное продолжение игры – невозможность хода), игра выводит меню, имеющее 2 кнопки: New Game, Quit. Меню разработано средствами движка. Ниже представлены скриншоты и видео:




16) AsteroidExplosion (2015) – игра, типа, классической «Пузыри», разработанная в качестве тестового для компании Playrix. 
В целом «Пузыри» выглядят следующим образом. В двумерном пространстве имеется изначально заданное количество точек, каждая из которых движется по игровому полю хаотично (в любом направлении, с любой скоростью — в разумных пределах), при этом они не сталкиваются, но отскакивают от границ окна приложения. Когда игрок щелкает по игровому полю мышью, то место, где был сделан клик, становится центром растущего круга. Вырастая до заданного 
предела за условный период, круг определенное время остается с максимальным радиусом, а потом начинает быстро уменьшаться. Достигнув минимального размера, он исчезает. В течение всего времени, пока круг виден на экране, точки, соприкоснувшиеся с ним, удаляются, а на их местах появляются такие же раздувающиеся круги, которые живут по идентичному алгоритму. Игрок может создавать новые круги, пока на игровом поле присутствует хотя бы одна окружность. В момент, когда исчезает последний круг, игра завершается. И тогда должно появиться модальное окошко, в котором надо отобразить общее число точек, а также количество удаленных. Одновременно при появлении этого меню должна быть возможность перезапуска игры с начала.
Вместе с заданием компания выдает свой движок и редактор эффектов, которые надо использовать при разработке игры. В то же время, арт и визуальную составляющую нужно использовать свои. То есть, придумать свою игру на основе «Пузырей».. Движок написан на C++, следовательно, этот язык нужно использовать для разработки.



17) Pulse Online – (2020 – 2021) — MMORPG про исследование космоса, далеких галактик, про войны между кланами, захват космических станций, торговлю сырьем и оружием и обо всем таком. Проще говоря, аналог Eve Online. Разрабатывался компанией Pulse Online Game. В проекте я был главным разработчиком, занимался серверной частью и дополнительным программированием. Принимал участие в планирование и решении всех технических вопросов. Для разработки игры использовался Unreal Engine 4.