Как опубликовать игру?
-
06-07-2019 - |
Вопрос
Я имею в виду не только публикацию, но и практически все, что происходит между завершением написания чистого кода и выпуском первой версии.Например, как игры делают так, чтобы их файлы сохранений были скрыты/неуязвимы для взлома, как они включают свои ресурсы в игру вместо того, чтобы иметь файл ресурсов, содержащий все спрайты и т. д., как они делают так, чтобы существуют специальные расширения файлов, такие как .rect и .screen_mode и так далее и тому подобное.
Кто-нибудь знает какие-нибудь хорошие книги, статьи, веб-сайты и т. д.это объясняет процесс между завершением чистого кода игры и ее выпуском?
Решение
Я не думаю, что разработчики прилагают много усилий, чтобы гарантировать, что сохранения скрыты или их невозможно взломать.Компьютерные игры обычно просто сохраняются в папку, по одному файлу на каждое сохранение, и любая путаница, скорее всего, является результатом использования двоичного формата файла (который требует определенных усилий для обратного проектирования) или значений открытого текста, которые не имеют особого смысла. контекста, а не преднамеренных попыток обойти хакерство.Вероятно, существует масса компьютерных игр, которые поставляются с очень легко взломанными текстовыми или XML-файлами сохранения, но я никогда не был хакером сохранений, поэтому у меня нет конкретных примеров.На консолях файлы сохранения сохраняются на карту памяти или на жесткий диск консоли, что делает доступ к ним по своей сути неудобным, но помимо этого я не думаю, что разработчики консолей прилагают большие усилия для шифрования или иного запутывания данных сохранения.Эта энергия, скорее всего, будет направлена на защиту игры от мошенничества, если она используется в онлайн-игре, или просто на улучшение работы других систем.
Специальные расширения файлов возникают в результате использования ваших собственных расширений и/или определения собственных форматов файлов.Вы можете использовать любое расширение для любого файла, поэтому существует множество «специальных» форматов файлов, которые представляют собой просто текстовые файлы с другим расширением, я сам делал это много раз.В других случаях, если они определили свой собственный формат двоичных файлов, это означает, что у них также есть свои собственные анализаторы файлов для обработки этих файлов во время выполнения.
Я не знаю, какие платформы вы имеете в виду, но для ПК и консольных игр ресурсы не заложены в исполняемый файл.Обычно вы увидите отдельный исполняемый файл, а затем различные архивы и файлы конфигурации.В зависимости от игры это может быть один пакет ресурсов или, возможно, несколько пакетов связанных ресурсов, таких как графика, звук, данные уровней и т. д.В целом консольные игры архивируются более агрессивно (чтобы свести к минимуму файловые операции на медленных оптических носителях и, возможно, для преодоления ограничений собственных файловых систем на более примитивных платформах).Некоторые компьютерные игры содержат очень разрозненные ресурсы, даже файлы сценариев висят в открытом доступе.
Другие советы
Если вы разрабатываете для Windows или XBox 360, Microsoft может предложить некоторую помощь здесь. Ознакомьтесь с инструментами для разработки игр для Visual Studio C ++ Express Edition . . р>
Если вы ищете книги, Основы разработки игр должна ответить на ваши вопросы.
Чтобы обойти изменения сохраненных файлов, вы можете реализовать простой алгоритм шифрования и использовать его для шифрования сохраненных файлов, а затем расшифровывать их при загрузке. Расширения файлов - просто вопрос выбора.
Чтобы использовать специальные расширения файлов в вашей игре, просто сделайте следующее:
<Ол>Расширения файлов - это условные обозначения, не более того; в них нет ничего волшебного.
ETA: Что касается встраивания ресурсов, есть несколько разных способов решения этой проблемы. Один из распространенных приемов - хранить все ваши ресурсы в небольшом количестве файлов - возможно, только в одном (Guild Wars использует этот подход).
С другой стороны, вы можете оставить свои ресурсы распределенными по множеству файлов в дереве каталогов, возможно, в произвольном формате, который требует специальных инструментов для изменения, а может и нет. Цивилизация 4 делает вещи таким же образом, как и все игры с Турбинами, с которыми я знаком. Это вопрос вкуса, и в любом случае это не очень важно.
Я думаю, что лучшее решение состоит в том, чтобы разбить ваши изображения на фрагменты определенного размера, а затем соединить их в произвольном порядке в новом файле. Этот случайный порядок известен только вам, и, следовательно, только вы знаете, как перемешать плитки, чтобы вернуть исходное изображение.
Подход заключается в том, чтобы поддерживать одномерный массив и поддерживать положение плиток в нем. Знайте, используйте функции обрезки MIDP для извлечения каждой плитки и рендеринга каждой плитки обратно на консоль.
Если вам нужно, я могу опубликовать код для вас.
Я бы предложил проверить презентацию от разработчиков World of Goo (отличная игра): http://2dboy.com/public/eyawtkagibwata.pdf .