К основному контенту

О портировании


Как не крути игра пишется под определенные платформы. Каждая платформа предоставляет определенные преимущества и обладает некоторыми недостатками и ограничениями. При написании кроссплатформенной игры мы не пользуемся удобствами платформ ( т.к. они есть только на конкретной платформе), но должны учитывать ограничения каждой платформы в своей игре ( т.к. код игры один на все платформы). Поэтому при написании движка все платформозависимые вещи локализуются в одном месте и к ним пишется общий интерфейс, с которым игра уже непосредственно взаимодействует.

Портирование или перенос игры с одной платформы на другую - процесс не творческий.  Особенно если при написании оригинальной игры не думали о переносимости. Задача  сводится к выделению и переписыванию платформенных компонент. Такими компонентами являются - рендеринг, ввод/вывод, звук. Обычно сначала просто добиваются компиляции на целевой платформе. Все участки кода, которые не компилируются просто комментируются, например, с пометкой к какой подсистеме относится удаляемый код. После того как код начал компилироваться с исключенными платформозависимыми участками, мы реализуем эти участки для целевой платформы и раскомменчиваем код. Естественно это очень грубое описание, в реальной жизни весь код распределен по нескольким уровням абстракции и размазан по подсистемам и классам.

Портирование - это скорее работа с кодом, нежели программирование или проектирование. Но только в том случае если оригинальная игра создавалась под конкретную платформу без оглядки на переносимость.

Если возможность будущего портирования заложить на стадии проектирования игры, то процесс портирования вырождается в одновременную разработку игры под несколько платформ. Это немного дороже написания игры под одну платформу, но дешевле чем потом портировать игру с нуля. И тем дешевле, чем больше целевых платформ.

Современные модели распространения игр стремятся охватить как можно большее число платформ. Поэтому разработку игры нужно вести в кроссплатформенном стиле. Сейчас для этого не обязательно иметь свой движок, а можно воспользоваться готовыми решениями. Но в этом случае вы будете зависеть от разработчиков этого решения. Очень часто это означает не возможность своевременно реагировать на рынок, а также не возможность успевать за техническими новинками и обновлениями. Поэтому решение о выборе технологии должно базироваться на многих факторах. Хорошо когда есть своя технология! ;)

Комментарии

Unknown написал(а)…
Жизненно!
Кстати, читал блог Кирилла?

Популярные сообщения из этого блога

Редакторы для казуальных и независимых игр. Адаптация открытого непрофильного софта под нужды разработчика игр

Введение Часто инди-разработчики или разработчики казуальных игр сталкиваются с проблемой нехватки специализированных редакторов, инструментов, утилит и т.д. ( так называемого middleware ) для создания контента для своих игр. Пример такого контента - это уровни, сложные анимации, 2d монстры и техника, а также параметры настройки и конфигурации всего этого. Прописывать всё это вручную в текстовых, редакторах (или скажем xml-редакторах) это не всегда удобно. В самом деле не будешь же ручками прописывать координаты полигонов в двухмерном уровне. Или задавать цвет глаз в шестнадцатеричном коде в xml-файле описания эльфа. Обычно бывает сложно найти удовлетворяющий всем нуждам редактор или тулзу. Самые частые проблемы это: закрытый код недостаточные возможности для конкретно вашей игры (ограничения по редактированию) навязываемый api и библиотеки от создателей middleware Часто принимается решение писать свой собственный редактор и набор утилит, но такое решение не всегда раци

профессор Колба

Сейчас Ярило студия разрабатывает казуальную игру под рабочим названием "Профессор Колба и невероятная эпидемия". Я хотел бы немного рассказать о том что это будет за игра и как она разрабатывается. Сюжет незамысловат. Мир охватила эпидемия курино-свиного гриппа и только профессор Колба может остановить её. Для этого он сидит в своей лаборатории и проводит череду нескончаемых опытов по поиску вакцины. Игроку собственно и предстоит искать вакцину проводя опыты, оформленные в виде набора мини игр. Игра выполнена в юмористической, доброй и позитивной манере. Игрок сможет наслаждаться каждой минутой игрового процесса. Во всяком случае это наша цель, как разработчиков, и на это делается упор. Игрок не должен тратить время  и упорно пытаться пройти очередной уровень. В игре сложно проиграть, но соревновательный момент всё равно присутствует за счёт набора очков. Хороший игрок всегда наберет больше очков и будет на первом месте в общей таблице рекордов. А неопытный игрок просто

Портфолио

Копия моего резюме с  linkedin . Тут я подаю информацию более развернуто и в свободной форме. English resume Образование Санкт-Петербургский Политехнический Университет, факультет технической кибернетики, информационные системы и технологии. Одной технической строкой C++, C#, unity, java, many IDEs ( VS, idea, eclipse, etc.), lua, python, assembler, pascal, basic (VBA), windows, Nintendo DS, android, iOS, j2me, brew, porting games, opengl, directx, many libs experience (box2d, rapidxml, xpath, regexp, stl, boost, sdl, irrlicht, hge, etc.), build systems, my own libs, my own crossplatform engine, svn, hg, git, photoshop, illustrator, inkscape, 3d max (scripting for all that editors), FL studio. Личные качества Креативность ( имеется в виду фантазия, умение изобретать, разрабатывать концептуально новые решения ) Гибкость ( умение избавляться от привычек и принимать новое, если это нужно ) Последовательность в достижении цели Адекватность и справедливость ( как не удиви