Войти в геймдев
Cyberdaemon
Прошлая моя статья была написана более
полутора лет назад,а вы её прочитали,наве─
рное, минуту назад. Это не временной пара─
докс - это частота выхода журнала под ре─
дакцией Alone Coder'а... Это я к тому, что
всё ниже написанное может немного противо─
речить предыдущей статье, так как времени
прошло много и некоторое моё отношение к
спектрумовскому game development'у измени─
лось.
Кратко об этой статье: вы начинающий
программист и рисовать не умеете, зато на
классическом Спектруме графон и не нужен.
Исходя из этого я придумал новый жанр.
Дальше можно не читать. Но я продолжу.
Немного истории-предыстории. Когда на
рубеже нулевых все ПК-бояре рубились в
первый Fallout, я ещё был пользователем
Спектрума и с завистью мог лишь наблюдать
за процессом. И тогда я заметил интересную
особенность пользовательского интерфейса
этой игры - в левой части было окно, в ко─
тором текстом описывалось всё, что проис─
ходило в игре: игрок поднял такой-то пред─
мет, осмотрел то-то и так далее. Но самое
интересное происходило во время боя. Он
происходил в пошаговом режиме, в том окне
подробно описывалось всё: враг <имя> нанёс
<столько-то> урона, герой нанёс критичес─
кий удар во столько-то единиц, и враг
<имя> умер. Думаю, я понятно объяснил. Те,
кто в своё время играли в Fallout, думаю,
помнят это, а кто не играл или забыл - по─
смотрите скриншоты в интернете. (Я бы при─
ложил для примера, на как вы _это_ сможете
посмотреть в журнале на реальном Спектру─
ме?)
Так вот, тогда меня осенила гениальная
мысль.Ведь можно сделать на Спектруме свой
аналог Fallout'а, но без графона, только в
текстовом режиме. Причём реализовать это
можно легко и просто даже на Бейсике, лишь
бы придумать свою боевую систему (ну,и сю─
жет). Я тогда только теоретически начал
всё это продумывать, но на этом всё и ос─
тановилось, а после и вообще забылось, так
как у меня появилась Amiga (об этом я пи─
сал ранее в другой статье).
И вот, почти двадцать лет спустя,как-то
так совпало, что я вспомнил об этом. Но
идея с Fallout'ом разонравилась. Я приду─
мал скрестить два жанра - текстовую адвен─
тюру и JRPG. Кто не знает, что такое JRPG
- Википедия в помощь, а кто знает - вспом─
ните, как там происходит бой. На одном эк─
ране слева расположен враги, справа - наша
команда (или наоборот, в зависимости от
некоторых факторов). Сам бой происходит
довольно примитивно в графическом плане.
Вы выбираете одного из команды, даете ему
команду (наиболее часто используются "за─
щита", "атака", "магия"). В зависимости от
того, что было выбрано, происходит просте─
йшая анимация, иллюстрирующая данный про─
цесс. Потом выбираете другого героя из ко─
манды, потом переход хода к вражеской ко─
манде, там примерно тоже самое. И так по
кругу, пока вы или вас не убьют.
Идея моя заключается в том, что графику
вообще можно убрать. Прям вот вообще-вооб─
ще. И бой проводить в текстовом режиме,
так в адвентюрах. Вот пример. Бой, участ─
вуют враг1, враг2, враг3, герой1, герой2:
>герой1 атака враг1
(Генератор случайных чисел прикидывает,
сколько отнять у врага здоровья в зависи─
мости от вашей силы и оружия) и выводить
сообщение типа "вы нанесли <столько-то>
урона". Потом опять предлагает ввести ко─
манду, так как есть ещё герои, которые ещё
не сделали ход. Вы:
>герой2 магия <название заклинания>
(Alone Coder: команды надо набирать горя─
чими клавишами, кроме разве что заклина─
ний, иначе постоянное печатание будет раз─
дражать. По поводу заклинаний, я видел
только пару игр типа Textorcist, где реа─
льно надо было их печатать, - но почему бы
и нет, раз это заклинания?)
В зависимости от магии и заклинания, их
можно наложить как на свою команду (лече─
ние, усиление урона), так и на врагов (ос─
лепление, яд). В зависимости от этого, ве─
ликий генератор случайных чисел (который
не просто случайный, а работающий по опре─
деленному алгоритму) наносит урон врагам
или лечит нашу команду. Ну, и так далее.
Когда ход переходит к врагам,ГСЧ делает
за них всё сам. Здесь важно найти баланс в
сложности: враги не должны быть ни лохами,
ни имбами. В обоих случаях играть будет не
интересно. После боя, в случае победы, у
героя (команды) повышается опыт. Алгоритм
этого повышения продумывается отдельно.
Путешествие по миру также будет проис─
ходить в тексте. Здесь ничего нового, всё
как в обычных адвентюрах:
Вы находитесь на берегу реки. На севере
лес, на востоке дорога.
(Можно, для романтики, добавлять в описа─
ния локаций больше подробностей, но не
стоит пытаться превзойти Толстого или Го─
голя...)
Наш герой,в данном случае,может пойти в
лес или по дороге. Как обрабатывать коман─
ды - это на выбор программиста. Можно
строго "север" или "восток". А можно раз─
нообразить и принимать команды "лес", "до─
рога". Ещё на локациях будут размещены
предметы, которые можно осмотреть и (или)
взять.
Отдельно о посещении городов. Вариантов
два: либо делать город одной локацией (так
проще и легче), либо разбивать на несколь─
ко.
Вариант с одной локацией:
Вы в городе N-ске. Можете посетить тавер─
ну, рынок, мэрию. Или покинуть город.
(Для обладателей литературного таланта:
описание города можно красочно расширить.)
Команды "рынок", "таверна", "мэрия" пе─
реходят в соответствующие диалоги. Таверна
- отдых,рынок - покупка или продажа снаря─
жения, мэрия - получение каких-либо мис─
сий.
В классические 48K много текста не вле─
зет. Один килобайт текста - это примерно
одна страница книги в мягкой обложке.В 48K
режиме примерно 40K свободно. 1K уйдёт на
шрифт, 1K на хранение состояния игры (ге─
рой, враги, предметы, триггеры событий),
ещё примерно 3-5K нужно выделить на код (а
может, и больше). Даже без музыки на текст
остаётся примерно 32K - это как 32 книжные
страницы. Если наглядно, то там поместится
только четыре таких статьи, какую вы сей─
час читаете. Совсем не много, а даже мало,
если сделать больше локаций или писать по─
дробные описания. Паковка увеличит количе─
ство текста, но всё равно не так сильно.
Продвинутые программисты могут использо─
вать 128K режим с паковкой или перейти на
наши русские клоны Спектрума. Здесь уже
историю можно расписать на уровне неболь─
шой книги. Но есть другой вариант.
Дело в нелинейности. Нелинейность сюже─
та,возможность перемещаться по всему игро─
вому миру в любой момент, конечно,повышает
реиграбельность. Но если сюжет линейный (в
игру не предполагается играть второй раз),
то можно сделать практически бесконечный
сериал даже в 48K. Прошел первую часть -
загружай часть 2 и наслаждайся дальше, и
так далее, пока у автора идеи не иссякнут.
(Alone Coder: только нужно не забывать пе─
редавать игровое состояние от части к час─
ти. Хотя бы характеристики и предметы у
героя. А триггеры и других персонажей мож─
но не тащить в следующую часть, чтобы была
возможность всё уместить в пароле - без
магнитофонных или дисковых операций, кото─
рые для новичков в программировании на
Спектруме - отдельная боль.)
Ещё один плюс для начинающих - линей─
ность сильно упростит разработку и отлад─
ку, ведь для нелинейного сюжета нужно учи─
тывать слишком много факторов,чтобы не бы─
ло глупых ошибок.
* * *
Полагаю, я всё понятно изложил, и мою
мысль уловили. Преимущества данной идеи -
художник не нужен, только программист. Ну,
ещё, очень желательно для данного случая,
кого-нибудь с литературным талантом. Чтобы
были красиво расписаны локации, диалоги. И
сам сюжет хорошо придуман. Но можно обой─
тись и без оного, если стырить сюжет из
какой-нибудь игры или книги.
(Alone Coder: чтобы не было эффекта те─
кстовой адвентюры,которых на Спектруме ты─
сячи и в которые никто не играет, програм─
мист может постепенно разнообразить отоб─
ражение: показать на экране условное рас─
положение героя и врагов, фрагмент карты,
добавить тряску экрана и вылетающую энер─
гию из персонажей при ударе и т.п. Но гла─
вное - чтобы ввод команд, особенно движе─
ния, происходил одним нажатием кнопки, с
мгновенной реакцией. Это позволит игроку,
постепенно прокачав навыки, играть в такую
игру не в темпе текстовой адвентюры, а да─
же быстрее, чем в обычные графические, и
получать больше фана в единицу времени.
Причём графики нет только по бедности: ес─
ли концепция игры будет удачной, то в про─
ект могут прийти художники, и условные
изображения можно будет заменить на рисун─
ки, хотя бы в стиле Undertale :))
(Wanderer: Ну так это рогалики же ) )
Other articles: