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

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


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

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

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

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

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

Комментарии

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

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

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

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

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

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

Мобильное устройство будущего

Введение Однажды я задумался и представил себе портативное устройство будущего. Каким оно будет через 1000 лет. А может быть и раньше, развитие технологий идёт очень быстро, не уследишь :) Разумеется если человечество не уничтожит себя и технологии продолжат своё развитие. Человечество может устроить ядерную войну, или ещё какую-нибудь войну, которая отбросит нас назад. В этом случае портативное устройство будущего будет называться "палка-копалка" или "камень" и мы будем бегать с голой жопой по выжженой планете:) Не будем рассматривать такой вариант развития событий ( хотя честно говоря мне он кажется наиболее правдоподобным, т.к. каждый человек в отдельности не такой уж и глупый и обладает высоким интеллектом, особенно некоторые индивидуумы, но человечество в целом ведет себя как бактерии не обладающие разумом, бесконтрольно размножаются и потребляют свою планету). Мы рассмотрим фантастический вариант развития событий - когда человечество руководствуется разумом ...