FAQ:Возможно ли сделать игру на собственном движке: различия между версиями

Содержимое удалено Содержимое добавлено
+ ТОМ, - опечатка
мНет описания правки
 
(не показано 12 промежуточных версий 4 участников)
Строка 1:
== Возможно ли сделать игру на собственном движке? ==
 
=== Ответ для обычных людей ===
Нет, пока вы не станете программистом.
 
=== Ответ для программистов ===
Текстовые игры кажутся простыми для программирования. Но это не совсем так.
 
Сделать игру на собственном движке намного сложнее, чем взять одну из имеющихся платформ и сделать что-то, отталкиваясь уже от готовой базы. Почему это разумный совет?
В чём преимущество использования уже имеющихся платформ?
 
Во-первых, этоважно удобство и скорость разработки. Писать игру с нуля - это совсем не то, что писать её на какой-то специализированной базе. Многие системы позволяют создать игру с одной фразы. НаБез соревнованииготового [[TWIFComp]]движка стояловам ограничениепридётся впотратить 140несколько символовнедель кодана игрыреализацию -базовых имелочей, лишькоторые немногиене смоглибудут егоиметь преодолетьпрямого безотношения помощик игровыхвашей платформ!игре А- готовы ли вы писать самостоятельно 234 реакции на глаголынапример, ужедумать прописанныенад ввыводом [[RTADS]]?текста Плохоили написанный парсер может стать очень большой помехой для игрока. Можете ли вы продумать сохранение и загрузкусохранением/загрузкой игр? Подумайте, сколько времени у вас уйдёт на написание игры. Месяц? Полгода? Год?
 
В случае парсерных игр всё ещё хуже. Вы готовы писать самостоятельно 234 реакции на глаголы, уже прописанные в [[RTADS]]? Плохо написанный парсер может стать очень большой помехой для игрока.
Во-вторых, это надёжность. В уютном интерпретаторе ваша игра может нести баг - но его действие будет минимальным. Игра не "вылетит", не сохранившись, и не исчезнет с экрана в нужный момент. В худшем случае она всего лишь станет непроходимой.
 
В разработку популярных платформ был вложен не один месяц работы. Этот труд был сделан, чтобы вам не надо было его повторять.
 
Во-вторых, это надёжность. В уютном интерпретаторе вашабаги игравашей можетигры нести баг - но егоне действиебудут будет минимальнымкатастрофичными. Игра не "вылетит", не сохранившись, и не исчезнет с экрана в нужный момент. В худшем случае она всего лишь станет непроходимой. Когда вы пишете свой движок, баг игры - это то же, что и баг движка.
 
В-третьих, это переносимость. Многие интерпретаторы интерактивной литературы поддерживают несколько платформ для запуска - это не только Windows, Linux и Mac, но также могут быть PSP, планшеты Nokia и другие устройства. Хотите ли вы самостоятельно обеспечивать такую поддержку?
 
И, наконец, поддержка сообщества. Если вы зашли в тупик и не понимаете, как сделать что-то, вы можете обратиться к другим авторам, которые пишут игры на этой платформе или, возможно, к автору самой платформы. Вам смогут подсказать, исправить что-то в коде. Когда вы пользуетесь самодельным движком — вы всегда сами по себе.
Если вы - такой гениальный программист, почему бы вам не взять исходный код уже существующих платформ и не поработать уже над ним? Исходный код следующих платформ открыт и свободен для правок:
 
=== Для очень крутых программистов ===
 
Если вы - такой гениальный программист, почему бы вам не взять исходный код уже существующих платформ и не поработать уже над ним? ИсходныйВозможно, кодвы следующихсможете платформсделать открытулучшение или исправите несколько багов. А заодно и свободенпосмотрите, как устроены различные дляплатформы правок:ИЛ.
 
Исходный код следующих современных платформ РИЛ открыт и свободен для правок:
 
* [http://www.assembla.com/spaces/qsp/trac_subversion_tool QSP] (C)
:* [https://github.com/graylor/FastQSP FastQSP] (C)
:* [https://github.com/Nex-Otaku/quest-navigator-standalone-windows10 Quest Navigator] (C)
:* [https://git.sonnix.tk/sonnix/Qqsp Qqsp] (Qt)
:* [https://github.com/seedhartha/QuestPlayer QuestPlayer] (C, Java) - плеер под Android
* [https://github.com/instead-hub/instead STEAD] (C, Lua)
:* [https://github.com/technix/instead-js INSTEAD-JS] (Javascript)
* [https://github.com/fireton/fireurq FireURQ] (Object Pascal)
* [https://github.com/narmiel/UrqW UrqW] (Javascript)
* [http://forum.tom2-game.ru/ ТОМ 2] (C++)
* [https://github.com/IFML2/ifml2 ЯРИЛ] (Java)
* [https://bitbucket.org/yandexx/rinform RInform] (С-подобный Inform)
* [https://gitlab.com/Oreolek/salet-module Salet] (CoffeeScript)
 
В иностранной ИЛ также популярны:
 
* [[Ink]] (C# + порты на Javascript и других языках)
* [https://github.com/DavidKinder/Inform6 Inform 6] (C)
* [https://bitbucket.org/klembot/twinejs Twine] (Javascript)
:* [https://github.com/Dan-Q/twee2 Twee2] (Ruby)
:* [https://bitbucket.org/tmedwards/tweego Tweego] (Go)
* [[ChoiceScript]] (Javascript) открыт под несвободной лицензией
* [https://github.com/renpy/renpy Ren'Py] (Python 2)
 
Если всё ещё ничего не нравится, есть [[ifwiki-en:Engine_List|большой список движков с открытым кодом.]] Там есть малоизвестные или немного устаревшие программы, в которые всё ещё имеет смысл вдохнуть новую жизнь.
* [http://www.assembla.com/spaces/qsp/trac_subversion_tool QSP]
* [http://code.google.com/p/instead/source/checkout STEAD]
* [http://ripsoft.narod.ru/Download.htm URQ]
* [http://www.taplap.ru/ftpindex.php?indir=programming/HYDRA/ Hydra]
* [[ТОМ]]
 
[[Категория:FAQ]]