"Апокалипсис". игра от Taunco
Игра “Апокалипсис”
Описание: “В этой игре вам придётся спасти мир от монстров исходящих с поместья графа Дракулы.”
я создал новую игру соблюдая поучения Некса. Пишите ответы! пожалуйста, пртестируйте мою игру.
Taunco,
не веришь, что использование COUNTER не по назначению ведёт к багам? Пожалуйста, вот тебе пример.
if exp=>maxexp: level=level+1 & skillP=skillP+1
Этот код должен вызываться там, где увеличивается переменная exp, то есть в бою. А у тебя он вызывается в COUNTER. Как результат, игрок начинает с уровнем 1. А по задумке он должен начинать с уровнем 0, и только нарастив экспу до 25, переходить на уровень 1.
Со всем прочим кодом в COUNTER тот же косяк, но не настолько явно выраженный.
Я ещё доделал апокалипсис. Пожалуйста комментируйте:
+ добавлено
- удалено
* изменено
+ магия
+ 2 заклинания
+ 2 предмета
- 4 музыки
+ 2 музыки
в принципе всё пока что …
Я слежу за этой игрой с первой версии. Поиграл и в эту версию. Минут за 10 выиграл. Складывается ощущение, что автор не планирует сделать это полноценной игрой, а готовит сбалансированную боевку для какого то другого проекта. Слишком много лулзов, мало пафоса, не видно возможностей для расширения чего либо кроме боевки, нет и не предвидится ролевого отыгрыша.
Теперь что мне не понравилось как игроку.
1)Если уж ай фоны и телефоны нельзя никак применить кроме как продать, то зачем они захламляют инвентарь. На мой взгляд либо деньгами выдавать, как было в первых частях, либо показывать один телефон и сколько их в инвентаре.
В общем инвентарь не впечатлил. Если будет еще больше вещей, то он превратиться в помойку. Надо как минимум сделать слотами. Например тыкаешь в слот оружие, там показывается все оружие, тыкаешь в слот броня, показывается вся броня. Тыкаешь в экипировку, показывает что одето. Нечто подобное очень хорошо организовано в игре Хранители Старграда. Код там не сложный. Рекомендую изучить инвентарь Хранителей.
2)Что бы всех вынести не обязательно даже качаться, покупаешь стальной нагрудник и кобальдовую секиру, одеваешь медный котелок на репу, и идешь мочить ветряные мельницы которые в основном наносят 0 урона. Зачем такое разнообразие брони и оружия, если цены приблизительно одинаковые, можно сразу взять что по круче и набив несколько гадов идти бить глав-гада. У меня ушло 4 зелья на него.
3)Магия, я не вкурил как ей пользоваться. Нет описания заклинания, нет его стоимости, урона. Потратил несколько очков в ману, довел ее до 9, но кнопка магии в бою не реагирует. Вот фиг знает, сколько мне надо для нанесения одного удара. Я не телепат. Поэтому на прокач маны я забил болт. Не эффективно, как в сказке, да мы молока не видали пока.
4)Не сразу до меня дошло что те зеленые звездочки на экране это моя жизнь, я все ломал голову что это. Потом дотумкал, в старом ламповом виде было как то кошерней. При наличии жизни выраженной в цифре, я мог хотя бы рассчитать в уме итог боя после первого раунда.
5)Статус. Слишком много крутить колесиком. Надо либо как то разделить на статы, экипировку, звания, либо убрать nl, зачем эти отступления? И еще, убрать пустые строки. Хотя бы так как я привел ниже.
if $head > 0:PL'На репе: <<$HEAD>>' &nl
if shapka >0:PL'Защита: <<shapka>>' & nl
if $telo > 0:PL'На теле: <<$telo>>' & nl
if $ruki > 0:PL'В руках: <<$ruki>>' & nl
if $shea > 0:PL'на шее: <<$shea>>' & nl
6) Теперь к самому важному. Боевка. Если не считать того что противники не в состоянии пробить защиту игрока то боевка все равно очень слабая. Бой одной кнопкой, зачем он тогда вообще нужен? Ввел бы один навык, крутость, тот у кого он больше тот и выиграл. Зачем было заморачиватся на какие то формулы? Если что, это был сарказм. Бой одной кнопкой, убог и жалок.
Корейский рандом слишком плоский, удача не может повернуться задом или передом, нет критов. Это было бы хоть какое то разнообразие при одно кнопочном бое.
Боевка это не паханная целина в QSP я видел пока только мерзкие, омерзительные и откровенно поганые боевки. Это блин такой камень преткновения о который ломаются лучшие умы. Прошу не предлагать в качестве контр аргумента боевку Тринити, автор конечно вложил в нее много сил, за что ему искренний мой респект и уважуха, но получилось как всегда, говоря словами ослика Иа, душераздирающее зрелище.
Если не слишком углубляться в дебри то можно сделать боевку хотя бы на основе игровых праил GURPS. Только допилить их напильником до нужной кондиции.
Приведу пример боевки GURPS под редакцией моего напильника. Я в игрушке сделал каг бэ тырнет и там как бэ онлайн игру. Не фонтан, но по крайней мере в ней есть хоть какие то неожиданности, в виде критов, промахов, и износа шмота. Да и сделана она простенько и легко понятна.
Локация Игра. (Создание перса, магазин и.т.д. В локации stat отслеживается текущее время, что бы игрок видел сколько часов он висит в игре.)
Spoiler
clr
gs'stat'
if accaunt = 0:
act 'Зарегистрировать аккаунт':
cla
Set accaunt = 1
$name = input ("Как будут звать вашего игрового персонажа?")
if $name = 0:Set $name = 'Игрок'
Set lvl = 1
Set power = 10
Set speed = 10
Set agil = 10
Set vital = 10
Set health = vital*10
'Вы регистрируетесь и создаете персонажа.'
act 'Играть':gt 'игра'
end
end
if accaunt = 1 and час < 23:
*clr
Set expnext = lvl*100
'<<$name>> Уровень <<lvl>>.'
'Опыта <<exp>>, опыта нужно до следующего уровня <<expnext>>'
'Жизнь <<health>>'
'Сила <<power>>'
'Скорость <<speed>>'
'Ловкость <<agil>>'
'Стойкость <<vital>>'
if weapon > 0:'<<weapon>> урон от оружия'
if defence > 0:'<<defence>> защита от брони'
'Побед <<win>>, Поражений <<loss>>'
if health < vital*10:
act 'Ждать час пока восстановится жизнь':
cla
Set час = час + 1
Set health = vital*10
'Вы ждете час и здоровье вашего персонажа восстанавливается.'
act 'Играть':gt 'игра'
end
end
if exp >= expnext:
act 'Повысить уровень':
Set skillpoint = 5
Set lvl = lvl + 1
Set exp = 0
gt'exp'
end
end
act 'Сражаться':
Set час = час + 1
Set lvlE = lvl
Set weaponE = RAND (0,5)
Set expE = lvl*5
Set virand = RAND (0,lvl*5)
if virand < lvl*5:Set porand = RAND (0,lvl*5 - virand)
Set koef = virand + porand
if koef < lvl*5:Set agrand = RAND (0,lvl*5 - koef)
Set koef = virand + porand + agrand
if koef < lvl*5:Set sprand = lvl*5 - koef
Set powerE = 8 + porand
Set speedE = 8 + sprand
Set agilE = 8 + agrand
Set vitalE = 8 + virand
Set healthE = vitalE*10
Set narand = RAND (1,5)
if narand = 1:Set speedE = speedE + 5&Set $nameE = 'Эльф'
if narand = 2:Set agilE = agilE + 5&Set $nameE = 'Темный Эльф'
if narand = 3:Set powerE = powerE + 5&Set $nameE = 'Орк'
if narand = 4:Set healthE = healthE + 20&Set $nameE = 'Гном'
if narand = 5:Set weaponE = weaponE + 6&Set $nameE = 'Человек'
gt'fight','start'
end
if money >= 500:
act 'Купить мечь на 5 урона (500 руб)':
cla
Set money = money - 500
Set weapon = 5
gt 'игра'
end
act 'Купить броню на 5 защиты (500 руб)':
cla
Set money = money - 500
Set defence = 5
gt 'игра'
end
end
if money >= 1000:
act 'Купить синий мечь на 10 урона (1000 руб)':
cla
Set money = money - 1000
Set weapon = 10
gt 'игра'
end
act 'Купить синюю броню на 10 защиты (1000 руб)':
cla
Set money = money - 1000
Set defence = 10
gt 'игра'
end
end
if money >= 1500:
act 'Купить фиолетовый мечь на 15 урона (1500 руб)':
cla
Set money = money - 1500
Set weapon = 15
gt 'игра'
end
act 'Купить фиолетовую броню на 15 защиты (1500 руб)':
cla
Set money = money - 1500
Set defence = 15
gt 'игра'
end
end
end
Локация exp (Распределение навыков.)
Spoiler
Set health = vital*10
'<<lvl>> уровень'
'Опыт - <<exp>>'
'<<power>> - Сила'
'<<speed>> - Скорость'
'<<agil>> - Ловкость'
'<<vital>> - Стойкость'
pl'<<health>> - Здоровье'
'<<skillpoint>> - очков повышения навыков.'
if skillpoint = 0:
act 'Выйти':gt'игра'
end
if skillpoint > 0:
act 'Сила':
cla
Set skillpoint = skillpoint - 1
Set power = power + 1
gt'exp'
end
act 'Скорость':
cla
Set skillpoint = skillpoint - 1
Set speed = speed + 1
gt'exp'
end
act 'Ловкость':
cla
Set skillpoint = skillpoint - 1
Set agil = agil + 1
gt'exp'
end
act 'Стойкость':
cla
Set skillpoint = skillpoint - 1
Set vital = vital + 1
gt'exp'
end
end
Локация fight (собственно сам бой)
Spoiler
if $ARGS[0]='start':
cla
*nl
'==========================='
'<<$nameE>> уровень <<lvlE>>'
'Жизнь врага <<healthE>>'
'Ваша жизнь <<health>>'
'==========================='
*nl
if healthE > 0:
'<<$nameE>> бросается в атаку'
wait 1000
Set broreactE = RAND (1,speedE)
if broreactE >= speedE*3/4:'<<$nameE>> наносит вам <font color=red>КРИТИЧЕСКОЕ ПОПАДАНИЕ</font>'&xgt'fight','kritE'
if broreactE < speedE/4:'<<$nameE>> проваливает атаку'&xgt'fight','player'
if broreactE < speedE*3/4 and broreactE >= speedE/4:&xgt'fight','udarE'
end
if healthE <= 0:
Set exp = exp + expE
Set win = win + 1
if weapon > 0:Set weapon = weapon - 1
if defence > 0:Set defence = defence - 1
'<<$nameE>> падает на землю. Вы победили!'
act 'Вернуться':gt'игра'
end
end
if $ARGS[0]='kritE':
cla
!Критическое попадание, защита не действует
Set kritrand = RAND (1,speedE)
Set uronE = kritrand + powerE + weaponE
'Удар был резким и внезапным вы не успели защитится от него'
'<<$nameE>> наносит вам <<uronE>> критического урона'
Set health = health - uronE
xgt'fight','player'
end
if $ARGS[0]='udarE':
cla
!Ударил прицельно, но должен пробить защиту
Set uvorot = RAND (0,agil)
Set popadE = RAND (0,speedE)
if uvorot > popadE:
'Вы уклонились от удара'
xgt'fight','player'
end
if uvorot <= popadE:
Set protect = RAND (0,uvorot)
Set prot = protect + defence
Set uronE = powerE + weaponE
Set uronE = uronE - prot
if uronE <= 0:Set uronE = 0
Set health = health - uronE
'<<$nameE>> наносит вам <<uronE>> урона'
xgt'fight','player'
end
end
if $ARGS[0]='player':
cla
!Игрок атакует
*nl
'==========================='
'<<$nameE>> уровень <<lvlE>>'
'Жизнь врага <<healthE>>'
'Ваша жизнь <<health>>'
'==========================='
*nl
if health <= 0:
Set loss = loss + 1
if weapon > 0:Set weapon = weapon - 1
if defence > 0:Set defence = defence - 1
'Вы проиграли'
act 'Вернуться':gt'игра'
exit
end
if health > 0:
act 'Атака':gt'fight','atak'
end
end
if $ARGS[0]='atak':
cla
*nl
'Вы бросаетесь в атаку'
wait 1000
Set broreact = RAND (1,speed)
if broreact >= speed*3/4:'Вы наносите <font color=red>КРИТИЧЕСКОЕ ПОПАДАНИЕ</font>'&xgt'fight','krit'
if broreact < speed/4:'Вы проваливаете атаку'>'fight','start'
if broreact < speed*3/4 and broreact >= speed/4:&xgt'fight','udar'
end
if $ARGS[0]='krit':
cla
!Критическое попадание, защита не действует
Set krrand = RAND (1,speed)
Set uron = krrand + power + weapon
'Вы нанесли резкий и внезапный удар. <<$nameE>> не успел защитится от него.'
'Вы наносите <<uron>> критического урона'
Set healthE = healthE - uron
xgt'fight','start'
end
if $ARGS[0]='udar':
cla
!Ударил прицельно, но должен пробить защиту
Set uvorotE = RAND (0,agilE)
Set popad = RAND (0,speed)
if uvorotE > popad:
'<<$nameE>> уклонился от удара'
xgt'fight','start'
end
if uvorotE <= popad:
Set protectE = RAND (0,uvorotE)
Set protE = protectE + defenceE
Set uron = power + weapon
Set uron = uron - protE
if uron <= 0:Set uron = 0
Set healthE = healthE - uron
'Вы наносите <<uron>> урона'
xgt'fight','start'
end
end
Дерзайте в своих благих начинаниях. Но в боевочку все же стоит добавить изюминок, станов, критов, промахов, кровотечений, уворотов. Опять же что бы противники стилистически отличались, один станит, другой лупит фаерболами как чекнутый, третий очень скользкий, что трудно поймать на удар. У меня этого нет, но я и не ставил целью сделать хорошую боевку. Мне хватало однокнопочной по задачам игры. А у вас же во главе угла боевка, следовательно ее и надо развивать.
Дядюшка Ау,
поясняю, откуда берётся “однокнопочная боёвка” - новички как правило берут её из примеров кода: Пример реализации боя.
Согласен, этот бой очень примитивный.
Дядюшка Ау:
Боевка это не паханная целина в QSP я видел пока только мерзкие, омерзительные и откровенно поганые боевки. Это блин такой камень преткновения о который ломаются лучшие умы.
Всё правильно, но это относится не только к текстовым играм и qsp в частности, но ко всем играм, где боёвка нужна в принципе. Боёвка - самая сложная часть игры даже в играх ААА класса. Удачаня боёвка - 3/4 успеха.
Дядюшка Ау:
Если не слишком углубляться в дебри то можно сделать боевку хотя бы на основе игровых праил GURPS. Только допилить их напильником до нужной кондиции.
А вы попробуйте сделать игру с такой боёвкой. Только чтобы это была пускай небольшая, но полноценная игра, а не сухой пример, оторванный от действительности. Чтобы в игре с такой системой стала интересна прокачка, сражения, торговля, быть может.
P.S. надо бы Нексу перенести обсуждение о боёвке в отдельный топик (но в этом же разделе, ибо по теме)
Zeantar,
отдельных рассуждений о боёвках и так хватает. Здесь обсуждается боёвка применительно к игре “Апокалипсис”. Если Дядюшка Ау захочет, он сам может создать по своей GURPS-боёвке отдельную тему.
Zeantar:
А вы попробуйте сделать игру с такой боёвкой. Только чтобы это была пускай небольшая, но полноценная игра, а не сухой пример, оторванный от действительности. Чтобы в игре с такой системой стала интересна прокачка, сражения, торговля, быть может.
Аргумент “сперва добейся”. Я вас где то задел лично? Если так, то извините, я вас не знаю и не имею причин задевать вас.
Меня не интересует создание игры, где во главе угла будет боевка. Пример я привел не отвлеченный, он из моей игры, те функции что я возложил на боевку он выполняет, большего мне пока не нужно. А понятие интересна игра или нет, это на столько размытое понятие, что тут и обсуждать не чего. Мне интересно то что я создаю, но гарантий, что это будет интересно другим, я дать не могу, каждому свое.
Дело в том, что ваш совет “использовать GURPS” или иную свободную систему правил бесполезен без конкретики. С таким же успехом можно было бы просто сказать: “сделайте игру лучше”, ничего при этом не объясняя - это советы одного уровня. GURPS достаточно сложная система, не так ли? Придется её переработать полностью, чтобы уложиться в рамки текстовой игры. По сути это будет совсем другая система правил. А потому ваш совет “слегка поработать над GURPS напильником” выглядит легкомысленно. :) Дьявол кроется в деталях, потому я и предложил вам написать небольшую игру с подобной боевой системой. Не отвлеченный пример, а готовую игру - пускай небольшую и демонстрационную. Ведь придумать несколько параметров - сила, ловкость, телосложение и т.п. - довольно просто. Тяжело найти баланс, чтобы играть было не слишком просто, но и не муторно, а также подходящую систему развития персонажа, которая вписалась бы в рамки текстовых игр. Пока не будет готовой игры, хотя бы прототипа, оценить гармонию боевой системы невозможно.
В любом случае будет любопытно взглянуть на вашу игру. Успехов!
Я не в коем случае не призываю использовать GURPS. Но в любом случае бой это прежде всего формула и проще не изобретать велосипед, а взять уже готовый велосипед, то есть формулу и очевидно что формулу надо брать не со Скайрима или Фалаута, а с настольных РПГ, таких как DnD, GURPS, или еще каких. Допиливать напильником придется в любом случае. Тупо воспроизводить книгу правил GURPS в игре не рационально, например урон зависит от силы, и он не укладывается в общую формулу, а вычисляется из конкретного значения силы. Придется вбивать расчет урона для всех возможных значений силы, что не есть гуд. Так что основная мысль конечно в том, что надо делать боевку разнообразней. Я просто указал самые легкие пути, оставить одну кнопку, добавить станы, увороты, криты, кровотечения, разнообразить тактику противника, правила вычисления того же крита или уворота проще взять с какой нибудь другой системы, чем рассчитывать самому, это не так просто как может показаться. Что я не правильно сказал? Или мне в качестве совета надо выкладывать свою игру которая будет превосходить на голову игру автора? Упорство автора, мне очень симпатично, на столько, что я даже потрудился зарегистрироваться и потратил свое время, что бы помочь ему с направлением развития игры. Сейчас я уже конечно жалею, что сделал это, мне оказывается надо было с готовой игрой приходить.
очевидно что формулу надо брать не со Скайрима или Фалаута, а с настольных РПГ, таких как DnD, GURPS, или еще каких.
А мне вот нравится в jRPG боёвка. Она и простая и достаточно интересная.
обновка за 05,01,13
Добавил 9 артефактов
добавил жену в доме
добавил 1 яд
добавил эффекты для артефактов
для деревянного щита меню ещё нет
Так я хочу знать ваше общее мнение об игре!
Укажите:
1 фунции макс 10 баллов
2 оформление макс 10 баллов
3 предметы и их функции макс 10 баллов
4 сюжет макс 5 баллов
5 бой макс 10 баллов
6 концовка макс 10 баллов
вот тебе наипростейший пример организации предметов в инвентаре. Предметы добавляются через специальную подпрограмму, которая в зависимости от условий добавляет новый “предмет” в инвентарь, или просто увеличивает количество.
пример организации рюкзака
1 фунции макс 10 баллов, фиг знает, я не понял вопроса, что за функции такие.
2 оформление макс 10 баллов, цветовая гамма приятная для глаз, иконки, только шрифт огромадный, в экран не лезет, 9 баллов.
3 предметы и их функции макс 10 баллов, предметов много, разнообразные, очень не плохо, но все же на максимум не тянет, 8 баллов.
4 сюжет макс 5 баллов, - да ладно, где же там сюжет, есть только указание, плохие находятся там, фас. 2 балла.
5 бой макс 10 баллов, с ходу вылазят ошибки, я убил противника первым же ходом, а у меня вылазит кнопка бежать, плюс примитивность боя и однообразность. Итого 2 из 10.
6 концовка макс 10 баллов, не доиграл, раньше доигрывал до конца потому что можно было просто тыкать в самую верхнюю кнопку, сейчас постоянно вылазит кнопка бежать, надоело мышью шевелить.