FAQ:Возможно ли сделать игру на собственном движке: различия между версиями
Oreolek (обсуждение | вклад) (обновил список open source движков) |
Oreolek (обсуждение | вклад) м |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 29: | Строка 29: | ||
* [http://www.assembla.com/spaces/qsp/trac_subversion_tool QSP] (C) | * [http://www.assembla.com/spaces/qsp/trac_subversion_tool QSP] (C) | ||
:* [https://github.com/graylor/FastQSP FastQSP] (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/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/fireton/fireurq FireURQ] (Object Pascal) | ||
* [https://github.com/narmiel/UrqW UrqW] (Javascript) | * [https://github.com/narmiel/UrqW UrqW] (Javascript) | ||
− | * [http://forum. | + | * [http://forum.tom2-game.ru/ ТОМ 2] (C++) |
+ | * [https://github.com/IFML2/ifml2 ЯРИЛ] (Java) | ||
* [https://bitbucket.org/yandexx/rinform RInform] (С-подобный Inform) | * [https://bitbucket.org/yandexx/rinform RInform] (С-подобный Inform) | ||
− | |||
* [https://gitlab.com/Oreolek/salet-module Salet] (CoffeeScript) | * [https://gitlab.com/Oreolek/salet-module Salet] (CoffeeScript) | ||
Строка 40: | Строка 44: | ||
* [[Ink]] (C# + порты на Javascript и других языках) | * [[Ink]] (C# + порты на Javascript и других языках) | ||
+ | * [https://github.com/DavidKinder/Inform6 Inform 6] (C) | ||
* [https://bitbucket.org/klembot/twinejs Twine] (Javascript) | * [https://bitbucket.org/klembot/twinejs Twine] (Javascript) | ||
:* [https://github.com/Dan-Q/twee2 Twee2] (Ruby) | :* [https://github.com/Dan-Q/twee2 Twee2] (Ruby) | ||
:* [https://bitbucket.org/tmedwards/tweego Tweego] (Go) | :* [https://bitbucket.org/tmedwards/tweego Tweego] (Go) | ||
* [[ChoiceScript]] (Javascript) открыт под несвободной лицензией | * [[ChoiceScript]] (Javascript) открыт под несвободной лицензией | ||
+ | * [https://github.com/renpy/renpy Ren'Py] (Python 2) | ||
+ | |||
+ | Если всё ещё ничего не нравится, есть [[ifwiki-en:Engine_List|большой список движков с открытым кодом.]] Там есть малоизвестные или немного устаревшие программы, в которые всё ещё имеет смысл вдохнуть новую жизнь. | ||
[[Категория:FAQ]] | [[Категория:FAQ]] |
Текущая версия на 11:36, 13 февраля 2020
Содержание
Возможно ли сделать игру на собственном движке?
Ответ для обычных людей
Нет, пока вы не станете программистом.
Ответ для программистов
Текстовые игры кажутся простыми для программирования. Но это не совсем так.
Сделать игру на собственном движке намного сложнее, чем взять одну из имеющихся платформ и сделать что-то, отталкиваясь уже от готовой базы. Почему это разумный совет?
Во-первых, важно удобство и скорость разработки. Писать игру с нуля - это совсем не то, что писать её на какой-то специализированной базе. Многие системы позволяют создать игру с одной фразы. Без готового движка вам придётся потратить несколько недель на реализацию базовых мелочей, которые не будут иметь прямого отношения к вашей игре - например, думать над выводом текста или сохранением/загрузкой игр.
В случае парсерных игр всё ещё хуже. Вы готовы писать самостоятельно 234 реакции на глаголы, уже прописанные в RTADS? Плохо написанный парсер может стать очень большой помехой для игрока.
В разработку популярных платформ был вложен не один месяц работы. Этот труд был сделан, чтобы вам не надо было его повторять.
Во-вторых, это надёжность. В уютном интерпретаторе баги вашей игры не будут катастрофичными. Игра не "вылетит", не сохранившись, и не исчезнет с экрана в нужный момент. В худшем случае она всего лишь станет непроходимой. Когда вы пишете свой движок, баг игры - это то же, что и баг движка.
В-третьих, это переносимость. Многие интерпретаторы интерактивной литературы поддерживают несколько платформ для запуска - это не только Windows, Linux и Mac, но также могут быть PSP, планшеты Nokia и другие устройства. Хотите ли вы самостоятельно обеспечивать такую поддержку?
И, наконец, поддержка сообщества. Если вы зашли в тупик и не понимаете, как сделать что-то, вы можете обратиться к другим авторам, которые пишут игры на этой платформе или, возможно, к автору самой платформы. Вам смогут подсказать, исправить что-то в коде. Когда вы пользуетесь самодельным движком — вы всегда сами по себе.
Для очень крутых программистов
Если вы - такой гениальный программист, почему бы вам не взять исходный код уже существующих платформ и не поработать уже над ним? Возможно, вы сможете сделать улучшение или исправите несколько багов. А заодно и посмотрите, как устроены различные платформы ИЛ.
Исходный код следующих современных платформ РИЛ открыт и свободен для правок:
- QSP (C)
- FastQSP (C)
- Quest Navigator (C)
- Qqsp (Qt)
- QuestPlayer (C, Java) - плеер под Android
- STEAD (C, Lua)
- INSTEAD-JS (Javascript)
- FireURQ (Object Pascal)
- UrqW (Javascript)
- ТОМ 2 (C++)
- ЯРИЛ (Java)
- RInform (С-подобный Inform)
- Salet (CoffeeScript)
В иностранной ИЛ также популярны:
- ChoiceScript (Javascript) открыт под несвободной лицензией
- Ren'Py (Python 2)
Если всё ещё ничего не нравится, есть большой список движков с открытым кодом. Там есть малоизвестные или немного устаревшие программы, в которые всё ещё имеет смысл вдохнуть новую жизнь.