Дневник начинающего разработчика #3
Всем привет, я Хельга и я пишу свой текстовый квест на Twine.
Предыдущие мои публикации на эту тему вышли довольно сумбурными и я решила начать с самого начала, поделиться опытом.
Что нужно иметь, чтобы написать игру
Это, конечно, зависит от того, какая игра, на каком движке и что там будет происходить. Рассмотрим самые минимальные требования:
Компьютер (у меня ноутбук на Windows 8, 8 гб оперативы, разумеется без видеокарты и всего такого), в идеале, конечно, что-то посерьёзнее, но это минималка
Доступ в интернет. Тут без комментариев, это база.
Свободное время. Много времени, а если вы начинаете с нуля, то много-много времени. У меня есть основная работа и две подработки, поэтому разработка игры у меня заняла примерно полгода. С учетом, что работала я только по вечерам после основной работы, и с учетом, что это мой первый опыт.
Всё. Серьезно, больше ничего не надо. Необязательно иметь навыки программирования, опыт... Ну разве что желание, да. Но мы подразумеваем, что оно есть у вас.
Теперь о важном: с чего начать
Сразу скажу - это не будет универсальной инструкцией. Это лишь мой опыт, который, возможно, кому-нибудь пригодится.
- Начать надо с идеи. У меня сразу было понимание, что я хочу во-первых, текстовый квест, олдскульный, с головоломками и пиксельной атмосферой, а во-вторых, чтобы он был про космос.
- Выбрать движок. Я не сильна в теории, но это что-то вроде программы, с помощью которой пишется игра. Движок определяет какие есть возможности для игры и на каком языке программирования нужно будет писать. Бывают движки, кстати, которые почти не требуют кода.
Я остановилась на Twine, это как раз движок, чтобы создавать текстовый квест. Посоветовала мне его Алиса. Игра там пишется с помощью html (это язык, с помощью которого пишут сайты в интернете), css (это язык стилей для html), JavaScript (тоже какой-то язык, но с этим я пока не разобралась) и макросов макросов (это похоже на функции в экселе).
- Скачать нужную программу. Например, тот же самый Twine может работать и с браузерной версии, но десктопная (скачанная программа) версия дает больше возможностей для подгрузки картинок и сохранения работы.
Учитывая мою 8-ую винду, я долго искала, какая древняя версия в итоге мне встанет. Но нашла:)
- Начать работу. Дальше разбираемся, как с этим работать. Что я узнала. Начала я с того, что просто гуглила, что можно сделать и как это сделать. Заходила на всякие форумы, где люди рассказывают, что они делали (вот как сейчас я рассказываю). Потом начала спрашивать у Алисы.
Форматы историй Twine
Потом выяснилось, что в самом Twine есть разные "форматы историй". Это по сути отдельные движки - там используются разные синтаксисы и разные немного подходы. Это все равно html, но макросы, например, будут разные, будут какие-то вшитые уже готовые возможности. И вот с этим я обоср накосячила. Когда я это поняла, у меня уже было написано примерно 1/5 игры и оказалось, что я выбрала Harlow (точнее я его не выбирала, он стоит по умолчанию, а то, что можно что-то выбирать, я тогда не знала), а он для самых дурачков начинающих, он проще, но и возможностей для крутых механик не дает. Но так как уже часть была написана, я решила уже ничего не менять, чтобы не переписывать.
Сейчас, пострадав лишних пару месяцев, чтобы сделать то, что я придумала какими-то обходными кривыми путями, я понимаю, что зря я этого не сделала. Но теперь уже точно поздно.
Потом был переломный момент: я узнала, что у каждого движка есть "документация", это что-то вроде описания программы, которое можно использовать как руководство. Лучше поздно, чем никогда.
Документация для harlow только на английском языке, но моих знаний в целом хватало, а когда было непонятно - перевод сайтов никто не отменял.
Там описано всё: какие макросы, функции, переменные есть, как их использовать и приведены примеры-идеи, для чего они могут пригодиться.
Были попытки, не скрою, просить у Алисы и чатаГПТ "напиши мне такой-то код", но они не умеют это делать без ошибок. Особенно, если какая-то нетривиальная задача. А чтобы понять, в чем ошибка, нужно самому в этом разбираться. Поэтому чаще всего нейросети я использую для вопросов типа:
- Объясни вот этот кусок документации
- А будет ли такой макрос обновляться в режиме реального времени
- А как сделать, чтобы текст отлип от картинки (это делается через css, а я с ним пока не полностью разобралась пока)
Вот как-то так я и начала. В следующих постах расскажу, что такое текстовый квест, что такое код и как вообще со всем этим разбираться.