RU

Очередной РПГ движок

WladySpb #8 30.12.2011 08:14 23 comments 13911 views

Да. Я опять это задумал. Не надо кидаться гнилыми яйцами) Я очень долго и мучительно пытался сообразить, как сделать все элементы, которые многие считают обязательными для рпг, и при этом не усложнить код до невозможности. Самое сложное - это боёвка. С одной стороны - она должна быть. С другой стороны - она должна быть простой для игрока. С третьей - она должна быть легко реализуема в коде. с четвёртой - предоставлять игроку реальную возможность влиять на исход боя. С пятой - не быть слишком замороченной. С шестой… Ну, в общем, понятно что это пипец) Далее, на мой взгляд, необходимые вещи - это умения, статсы, инвентарь… В общем, ещё куча всего. Ну, и самое главное - это сюжет готовой игры, квесты, возможность влиять на персонажа, зависимость развития игры от поступков… Всё это варится в моей голове уже не первый год. Итак, к чему я пришёл на данный момент:

Умения в игре добавляются в несколько школ, они могут даваться за уровни, за квесты, изучаться по книгам.. Неважно. Основные школы, важные для боя - это Сила, Ловкость и Магия. Каждое умение повышает класс сложности в соответствующей школе. Например, мы знаем 6 умений школы силы, и 2 - школы ловкости. В сражении с монстром мы выбираем, что использовать - силу, ловкость или магию. А у монстра, соответственно, есть класс защиты против этих трёх школ. Добавляем немножко рандома и получаем результат, положительный или отрицательный, по итогам раунда либо герой ударяет монстра, либо, если не повезло, наоборот. Так проходит большинство боёв(вводить их много не вижу смысла, толпы монстров - плохой выбор для ролевой игры). Ключевые противники могут обладать завышенным сопротивлением к всем трём школам, но, например, быть уязвимыми для конкретного умения(Грациозный прыжок лосося, Мастерский удар из под выподверта) или к конкретному оружию(Меч кладенец, Игла возмездия).

Умения, как таковые, ничего не значат, всего лишь повышая класс сложности школы(мирные - Торговля, Дипломатия, Наука), но могут быть востребованы в жизненных ситуациях. Кроме вышеприведённого примера с требованием умения для схватки с конкретным монстром возможны варианты, когда для того чтобы обмануть кого-то, нужно изучить умение “врать не краснея” и класс сложности школы дипломатии не ниже 5-ти, или, чтобы починить что-то, нужно умение “чинить что-то” и класс сложности школы науки не ниже 10-ти.

Есть идея ввести разные языки, но она востребована только при больших размерах игры. Система примерно как в AD&D - если интеллект позволяет, мы изучаем несколько языков, если нет - только родной для своей расы. В игре это может быть использовано несколькими способами. Например, персонаж у которого можно взять какой-то квест, не говорит на всеобщем, если мы той же расы - берём квест, если нет - пока не изучим язык, фиг пообщаемся. Или где-то два эльфа общаются на эльфийском, думая что их никто не понимает, и их можно подслушать. Как реализовать многоязычие и понимание\непонимание, включая генератор “непонятных” фраз на разных языках, я уже придумал, но, количество ситуаций в которых это можно реализовать, крайне мало, и я не уверен, что это стоит трудов по внедрению если игра не очень большая. Но идея бродит в голове, и не даёт покоя)

Пока это всё что я хотел сказать, интересно ваше мнение по названным пунктам)

Я вот почитал, что ты написал, и осознал как же наверное трудно людям читать МОИ опусы )

А если по делу…
Боёвка выглядит скучновато. Выбор из трех пунктов и чистый рандом. Ну либо достаточно знать школу/силу к которой противник уязвим и лупить ей до посинения. Однокнопочно как-то. Я люблю когда мозг в напряг идет.
Языки отдельная большая тема. Не думаю что она нужна именно как вшитая в движок реализация. Этим имхо должен заниматься автор игры, а не движка. Хотя сама идея добрая - может добавить глубины при хорошей реализации.

Про остальное сказать вообще ничего не могу, ибо не понял ничерта.
Что такое “класс сложности” и как он работает? Подробней раскрой систему умений пожалуйста. Можно на примере (тот “пример” который в тексте вообще не катит).

Aleks Versus Moderator 31.12.2011 06:13 (14 years ago)

Согласен с последним оратором. Хотя понял не в пример больше. Впрочем это никак не улучшает ситуацию в плане хорошего движка для rpg. Пока что боёвка в моей игре реализована так, как сказал WladySpb, разве что ловкость используется скудновато, а ведь я тоже люблю шевелить мозгами (как masterset). К тому же в текстовых играх играть-то и нужно на шевельении мозгами! И всё же убийство монстра через решение головоломок не самый лучший вариант. Если монстров больше одного - сам Бог/Аллах/Будда велел делать универсальный способ сражения. Универсальный способ сражения ломается в разработке баланса. Мирные навыки ломаются в широте применения. Ни к чему развивать скрытность, если она используется лишь один раз за всю игру.

Думаю, наш подход к созданию движков неправильный. Давайте сначала наберём наибольшее количество возможных ситуаций, а потом уже решим, как их реализовывать. Ибо как только мы пытаемся делать наоборот, движок приходится перетачивать под соответствующую ситуацию.

Хм, ну да, твои опусы тяжелы) Обычно, пока не запущу - вообще не понимаю, о чём это)

Попробую сейчас объяснить…
Боёвка в данном случае служит только для того, чтобы быть. Основная цель игры - это квесты и отыгрыш персонажа, и очень надеюсь, что мне удастся всё это реализовать. Боёвка тут постольку поскольку, все считают, что она необходима для рпг, и я сам тоже начал так считать) Ну и вообще, логично что в свободном мире есть возможность в том числе и драться. Суть как раз в том, что для большинства интересных противников нужно будет достать артефакт\изучить умение, иначе их не победить.

Языки - я сам в них сомневаюсь. Их реализация, как я уже писал, актуальна только в рамках большого проекта. А насчёт разницы между движком и игрой - в данном случае движок пишется под конкретные цели игры.

Класс сложности - смотри, у монстра есть три цифры сопротивления - силе, ловкости и магии. У героя есть сумма умений в школе, которые обеспечивают своеобразный “уровень”. Дальше идёт просто сравнение уровня в школе с аналогичным сопротивлением монстра, с добавлением d20 к каждой цифре для некоторого рандома.

2 Aleks Versus Да, я как раз постоянно прокручиваю в голове свою игру, и пытаюсь примерить к ней разные реализации, попутно шлифуя их для лучшего совмещения… Много раз уже брался за это, обламываясь на разных пунктах в процессе осознания того, насколько сложно сделать ту или иную задумку. Не факт, что этот объект переживёт стадию планирования и кодинга, поскольку сюжет пока в столь же туманной фазе)

Aleks Versus:

К тому же в текстовых играх играть-то и нужно на шевельении мозгами!

Именно поэтому я не хочу вообще зацикливаться на боёвку. В большинстве случаев она нужна для поднятия опыта, выполнения квеста, снятия шмота… Какое тут шевеление мозгами? Возьмите хорошую фэнтезийную книжку. Как часто там происходит бой? И сколько времени уделено диалогам, решению поставленных задач, мыслям, передвижениям… А теперь запишите подробно, в красках, прохождение одного уровня Diablo II. Интересное чтиво?) 217 убийств и несколько строчек диалогов)
Но для рпг нужен бой. Хоть сколько то. Попробуем скинуть с боёвки часть обязанностей. Опыт можно получать за квесты и действия. Всё, от толпы убийств можно избавиться! Квесты - не обязательно убийство! Часть, конечно, может быть героическими подвигами, но и мирных заданий должно быть в достатке. Ещё пачку убийств убрали. Шмотки? Магазин, клады, или вообще минимизировать значение вещей в игре. Ещё меньше убитых монстров.. Вот и остаётся, к примеру, задира в кабаке, который случайно докопался до героя, стражник, который не пускал его в крепость, случайно напавший в лесу волк, и Кащей бессмертный, которого нужно убить мечём кладенцом. И никакого поиска чего-либо агрессивного “чтобы подкачать левел и набить шмота”! У нас текстовые игры, и любой бой вы видим только в воображении. Без красивой графики нам неинтересно убивать монстра одним кликом или комбо-комбинацией, нам интересно читать литературное описание каждого убийства, а это как раз, вопрос индивидуальной подготовки каждого монстра.

Насчет рандомайзера рекомендую использовать 3d6 вместо d20. Там распределение выходит мягче. Но это не принципиально, конечно.
Решительно против того, чтобы боёвка была просто потому что она должна быть. Так хорошие вещи не делаются. Добавлять в игру неинтересный кусок только ради того, что он там как бы должен быть по закону жанра это порочная практика. И то что бой будет редко, никак не решает вопроса.
Наоборот, если три раза в игру всего дерешься - каждый бой должен быть особым и запоминающимся. Причем для редкого боя как раз сбалансированной то системы и не надо. Можно вообще построить ее на выборах из диалоговых опций.
Есть еще вариант, чтобы не концентрироваться на бое просто выдавать сразу его результат, а сам процесс свести к случайно генерируемому описанию рубилова.
Оба эти варианта гораздо больше подходят для литературного стиля. Но я, к примеру, никогда их реализовывать не буду, потому что пишу игры а не книги. В игре ключевой является “интерактивность”. Естественно игроку хочется влиять на исход любого важного события (к которым сражение и относится). И процесс влияния должен быть ему интересен.

Aleks Versus Moderator 02.01.2012 10:29 (14 years ago)

WladySpb:

Именно поэтому я не хочу вообще зацикливаться на боёвку.

аналогично.

WladySpb:

И никакого поиска чего-либо агрессивного “чтобы подкачать левел и набить шмота”!

Оставим это графическим играм.

MasterSet:

Но я, к примеру, никогда их реализовывать не буду, потому что пишу игры а не книги…. Естественно игроку хочется влиять на исход любого важного события (к которым сражение и относится). И процесс влияния должен быть ему интересен.

Да. Да. И еще раз да.

Итак у нас дилемма - с одной стороны нам необходима возможность влиять на ход боя (чем больше влияния, тем лучше - ака шевеленьие мозгом), с другой стороны боевка не должна быть основополагающим элементом движка, дабы не отвлекать игрока от чтения. На примере “Trinity” мы увидели достаточно хорошее описание боя, чтобы он мог показаться читателю/игроку интересным, однако процесс игры в бой отвлекает внимание от этих описаний обилием информации, за которой нам предложено следить.

Ммм… есть мысль.

Знаете, я тоже много думал о боёвке и пришёл к выводу:
Игрок читает приключение. Поэтому я решил всрыть все чиселки и статы, а показать лишь описание битвы, а она будет проходить литературно, с событиями, с многими вариантами развития. Сложно? Сложно! Но интересно, а потрудится всегда можно, труд даром здесь не пропадёт

Antipod:

всрыть

Скрыть?

Antipod:

лишь описание битвы, а она будет проходить литературно, с событиями, с многими вариантами развития.

Имеешь ввиду много описаний? У нас в Инквизе так.

Aleks Versus Moderator 06.01.2012 04:46 (14 years ago)

Antipod:

Игрок читает приключение. Поэтому я решил всрыть все чиселки и статы, а показать лишь описание битвы, а она будет проходить литературно, с событиями, с многими вариантами развития. Сложно? Сложно! Но интересно, а потрудится всегда можно, труд даром здесь не пропадёт

А я решил отделить описание от журнала боя и вуаля: простая табличка - слева описание, справа всё остальное.
Слева герою херанули по черепу большой и толстой кувалдой, справа - он ещё не совсем дохлый, ибо шлем -25 урона. :=D Плюс простота выбора действий, не сильно загружающая игрока расчётами, наличие некоторых ресурсов (ака мана, выносливость, здоровье [К чему больше?]) и несложные формулы для исчисления. Думаю для ведения интересного боя должно хватить.

Кстати, никто не нарабатывал базу описаний для атак, защитных стоек и прчего? ;)

Он имеет в виду, что ты не будешь видеть никаких числовых показателей. Только текстовые описания.

Я давно к этому хочу подобраться и проблема вовсе не в технической сложности реализации, а в сложности самой игры. Когда пласт механики скрыт, становится сложнее на порядок играть это раз. И кроме того, это сразу отсекает любителей классических CRPG - они любят качать. А когда ты не видишь как качается это не интересно.
В общем идея витает в воздухе, но ее успех сомнителен.

Попробуй! )

Aleks Versus Moderator 07.01.2012 12:25 (14 years ago)

MasterSet:

Он имеет в виду, что ты не будешь видеть никаких числовых показателей

Тык это я понял. Но без числовых показателей совсем, мне кажется, не получится. Простой рандомайзер и примитивная арихметика и то требуют вывода хоть каких-то данных. Можно скрывать всю статистику, если человеку она не интересна, и поднимать для тех, кому нужна.

MasterSet:

А когда ты не видишь как качается это не интересно.

Можно показать изменение уровня другими способами, хотя “перко-скилльская” система представляется наиболее удобной и наглядной.

А какая разница, что она перко-скильная?
Либо есть циферки, либо их нет. Удобнее циферок еще ничего для наглядного отражения характеристики не придумали. Ну чем их можно заменить?
Двоичной логикой либо есть навык либо его нет? Теряется глубина.
Словесной шкалой: плохо, нормально, хорошо, отлично? Я пробовал - загромождается интерфейс, теряется наглядность данных и обратно глубину сложнее выдерживать. Не подобрать же 20 или 100 эпитетов. А если и подобрать, кто в них разберется?

Не без циферок заманчиво, но очень сложно. Я пока не сумел придумать как это оптимально реализовать.

Без циферок можно обойтись:
| - 1 левел
|| - 2 левел
||| - 3 левел
|||| - 4 левел
||||| - 5 левел
и т.д. :)

Aleks Versus:

Кстати, никто не нарабатывал базу описаний для атак, защитных стоек и прчего? wink

Я хотел, но посчитал это всё же лишним. Но если что, могу помочь с выдумыванием стопицоттретей стойки.

Log in or Register to post comments.