И одним из ключевых параметров любой ячейки поля, как и любого туалета, является "занято", то есть стоит ли там какой-нибудь юнит, или нет.
Вообще-то на хардах традиционно есть два массива - это указатели и собственно массив данных. Так вот винда стирает файл в массиве указателей, откуда система видит, что в адресах с такого по такой есть файл с таким-то названием. (Это вкратце принцип FAT, NTFS работает вроде чуток по-другому)
А то, что ты делаешь - это что-то маньячное. Обычно всё же делаются массивы объектов с в т.ч. параметром "координата", а для отрисовки сканируются эти массивы. Потому что логика игры исходит от юнитов обычно, а не от координат на карте.
Блин, может кому интересно найти ошибку, а то хочется уже починить. Отрезок очень простой, доступен и нечего не знающему человеку, несмотря на кажущуюся запутанность, ниже я всё объясню. Задача боса (это его скрипт) такая – если вокруг него столпилось 1-2 человека, телепортироваться от них куда-нибудь, и желательно – в самую противоположную от них точку. Он же не всегда телепортируется далеко, а без заглушки так может даже телепортнуться на моего (хотя солидную часть времени делает всё правильно). Я грешу всё-таки на Паскаль, он и вложенные функции как-то странно обрабатывает, но нередко до этого загвоздка была в моей невнимательности\недопонимании структуры паскаля, хотя тут уже раз 10 прошёл – и ничего. Сначала даю чистый отрезок, потом тот же с комментариями.
Spoiler
if (abi[2]=0) and (not pole[vragy,vragx].shodil) then begin o:=1; onsight:=0; for t:=vragy-1 to vragy+1 do for r:=vragx-1 to vragx+1 do if (t in [1..pwidth]) and (r in [1..plength]) then if (pole[t,r].svch=svoi) and (pole[t,r].zanyato) then begin inc(onsight); abi[5]:=t; abi[6]:=r end; if (onsight>=2) or ((onsight=1) and (random(100)<75)) then begin if abi[5]<=(pwidth div 2) then abi[7]:=pwidth else abi[7]:=1; tprdy:=false; if abi[6]<=(plength div 2) then abi[8]:=plength else abi[8]:=1; abi[9]:=abi[7]; abi[10]:=abi[8]; if checksurr(abi[7],abi[8]) and (not pole[abi[7],abi[8]].zanyato) then tprdy:=true else begin abi[9]:=abi[7]; if abi[8]=1 then abi[10]:=plength else abi[10]:=1 end; if checksurr(abi[9],abi[10]) and (not tprdy) and (not pole[abi[9],abi[10]].zanyato) then tprdy:=true else begin if abi[7]=1 then abi[9]:=pwidth else abi[9]:=1; abi[10]:=abi[8] end; if checksurr(abi[9],abi[10]) and (not tprdy) and (not pole[abi[9],abi[10]].zanyato) then tprdy:=true else repeat t:=random(pwidth)+1; r:=random(plength)+1; if checksurr(t,r) and (not pole[t,r].zanyato) then begin abi[9]:=t; abi[10]:=r; tprdy:=true end else inc(o) until (o>=200) or tprdy; if tprdy and (not pole[abi[9],abi[10]].zanyato) then begin peredat(pole[abi[9],abi[10]], pole[vragy,vragx], chuzh); setcolor(phon); miveto(vragy,vragx); outtext(pole[vragy,vragx].name[1]); delstat(vragy,vragx); chattextout('Павшего откидывает прочь',green); vragy:=abi[9]; vragx:=abi[10]; abi[2]:=4; pole[vragy,vragx].shodil:=true end; for o:=5 to 10 do abi[o]:=0; end; end;
function checksurr(y,x:integer):boolean; var q,w:integer; begin checksurr:=true; for q:=y-1 to y+1 do for w:=x-1 to x+1 do if (q in [1..pwidth]) and (w in [1..plength]) then if (pole[q,w].svch=svoi) and (pole[q,w].zanyato) then checksurr:=false end;
Spoiler
if (abi[2]=0) and (not pole[vragy,vragx].shodil) then {если абилка откатилась и враг ещё не сходил; зачинающее условие, не имеющее для нас ценности} begin {глобальный бегин}
o:=1; {рабочая переменная, чтобы игра вечно не зациклилась} onsight:=0; {ключевая переменная, считающая, сколько наших стоит вокруг врага; пока мы всё обнуляем}
for t:=vragy-1 to vragy+1 do for r:=vragx-1 to vragx+1 do {vragy, vragx – координаты врага по оси игрек и икс (вертикаль и горизонталь) соответсвенно, мы переменными т и р проверяем +-1 от них, то есть все 9 клеток, 8 окружающих врага и одну свою посередине}
if (t in [1..pwidth]) and (r in [1..plength]) then {константы пвайдс и пленгс задают ширину и длину поля соответственно (их можно в любой момент поменять), тут мы проверяем, чтобы перебираемые +- не вышли за границу поля, например, если враг стоит на клетке 1,1 это может случиться, такие мы не проверяем}
if (pole[t,r].svch=svoi) and (pole[t,r].zanyato) then begin {если на перебираемом поле стоит наш, и поле - занято (занятость всегда надо проверять, потому что и незанятая клетка может быть либо нашей либо не нашей)} inc(onsight); abi[5]:=t; abi[6]:=r end; {то увеличиваем счётчик и в 5,6 записываем координаты; если наших больше одного, там останутся координаты самого последнего найденного}
if (onsight>=2) or ((onsight=1) and (random(100)<75)) then begin {если вокруг врага 2 наших или 1, и стогранный кубик в пределах 0-74 (не всегда при одном будем трусить и упрыгивать), то начинается основное тело этого участка (полуглобальный бегин)}
if abi[5]<=(pwidth div 2) then abi[7]:=pwidth else abi[7]:=1; {если записанная координата по оси игрек того самого последнего нашего меньше половины ширины, то есть находится выше половины, то 7-ке даём максимально удалённую точку, то есть значение ширины, это будет самый низ, в противно случае наоборот – единичку, в итоге мы берём противоположный от врагов (наших) угол}
tprdy:=false; {оно станет равно true сразу же, как только мы найдём точку телепорта}
if abi[6]<=(plength div 2) then abi[8]:=plength else abi[8]:=1; {аналогично по оси икс}
abi[9]:=abi[7]; abi[10]:=abi[8]; {5,6 – выходят из игры, в 7,8 будут храниться исходные координаты, что мы вывели выше, а с 9,10 мы будем работать, пока передаём им исходные значения}
if checksurr(abi[7],abi[8]) and (not pole[abi[7],abi[8]].zanyato) then {тут я использовал 7,8, хотя желательно было бы рабочие 9,10, но они пока одинаковы. Итак, если рядом никого, то есть чексурр=тру (см.её описание внизу)..}
tprdy:=true else begin {…то говорим, что мы готовы телепортироваться, иначе…}
abi[9]:=abi[7]; if abi[8]=1 then abi[10]:=plength else abi[10]:=1 end; {9-ке снова даём исходну 7-ку, а вот 10-ке берем противоположную, восьмерке, если 1 – то макс, если макс, то 1. Сделано это потому, что раз уж предыдущая точка не подошла, то одну координату оставляем старую, а другой пробуем другой, второй угол. Да, сначала мы перебираем все углы, как наиболее удобные}
if checksurr(abi[9],abi[10]) and (not tprdy) and (not pole[abi[9],abi[10]].zanyato) then tprdy:=true else begin
if abi[7]=1 then abi[9]:=pwidth else abi[9]:=1; abi[10]:=abi[8] end; {тоже самое, но добавляется исловие иф нот тпрэди, потому что если мы уже нашли нужную точку, и готовы стартовать, то дальнейшее делать не нужно. Теперь мы смотрим третий угол, грубо говоря это последний угол треугольника, мы вернули измененную переменную, и изменили ту, которую до этого не изменяли; самый противоположный мы проверять не будем, потому что там враг близко}
if checksurr(abi[9],abi[10]) and (not tprdy) and (not pole[abi[9],abi[10]].zanyato) then tprdy:=true else repeat {если не нашли, то просто начинаем перебирать случайные координаты, пока не найдем точку, свободную от соседей. Стоит заметить, и это вот та самая основная проблема, что иногда даже при свободных углах, программа переходила к этой части (пусть и редко), телепортируя боса недалеко от наших на случайную точку, то есть что-то вот выше там подглючивает}
t:=random(pwidth)+1; r:=random(plength)+1; if checksurr(t,r) and (not pole[t,r].zanyato) then
begin abi[9]:=t; abi[10]:=r; tprdy:=true end else inc(o) {увеличиваем о на один}
until (o>=200) or tprdy; {o служит страховщиком от бесконечного цикла, давая 200 попыток на все про все} if tprdy and (not pole[abi[9],abi[10]].zanyato) then begin {ну и вот, если нашли, то включаются разные мои процедуры стирания значка, рисования его в другом месте, и передачи данных с той клетки, с которой ушли, в ту, на которую пришли. Я не зря поставил тут проверку, а не занята ли найденная точка телепорта (которая априори должна была быть не занятой), без этого иногда (очень редко, но) творилось странное – враг иногда нахлестывался на клетку с моим, может даже выходил за ее пределы, хз, это и есть та заглушка}
peredat(pole[abi[9],abi[10]], pole[vragy,vragx], chuzh);
setcolor(phon); miveto(vragy,vragx); outtext(pole[vragy,vragx].name[1]);
delstat(vragy,vragx); chattextout('Павшего откидывает прочь',green);
vragy:=abi[9]; vragx:=abi[10]; {координаты врагу даём те, куда телепортнулись, потому что программа именно с врагу\х потом будет работать, врагх\у, кстати, имеют тип байт 0..255, а большинство местных переменных – интеджер -32000...+32000}
abi[2]:=4; pole[vragy,vragx].shodil:=true end; { добавили кд, завершили передачу}
for o:=5 to 10 do abi[o]:=0; {обнуляем рабочие переменные}
end {конец полуглобального бегина, начинающегося, если с врагом стоит кто-то из наших};
end {конец самого глобального бегина};
function checksurr(y,x:integer):boolean; var q,w:integer; begin {эта функция проверяет, есть ли хоть кто-нибудь рядом с врагом из наших, сначала она равна –да-, но если найдет хоть одного, сразу станет –нет-, именно в ней, думаю, вся загвоздка, потому что изредка враг телепортируется рядом с моим. Передаём мы две координаты и она проверяет все вокруг них}
checksurr:=true; for q:=y-1 to y+1 do for w:=x-1 to x+1 do
if (q in [1..pwidth]) and (w in [1..plength]) then {также аналогично проверяем все 9 клеток, и если она занята и там стоит "свой" (а это всегда мой), то она уходит в –нет-}
if (pole[q,w].svch=svoi) and (pole[q,w].zanyato) then checksurr:=false end;
Только сейчас наткнулся на эту тему, название то обощённое, подумал, что будут общие рассуждения, а оказалось всё вертится вокруг одного проекта.
Задача боса (это его скрипт) такая – если вокруг него столпилось 1-2 человека, телепортироваться от них куда-нибудь, и желательно – в самую противоположную от них точку.
Башка не варит вникать в подробности, особенно на непривычном языке, но в принципе, если задача телепортировать объект, то можно же представить,грубо говоря, вокруг объекта пару десятков точек. Найти из них самую выгодную по дистанции от врагов. И при необходимости немного сдвинуть.
***
А игра моей мечты это рпг, в которой игрок открывает карту. То есть карта изначально заготовлена, но её прикрывает чёрная маска (или какая то текстура). И игрок, шагая туда-сюда, стирает пыльцу с карты, делает прозрачной маску. В идеале, должно учитываться поле зрения, чтоб он не мог открывать области карты, находящиеся за преградами. Но главный вопрос не в этом. Допустим, просто, куда бы не пошёл игрок, вокруг него в радиусе 10 метров стирается пыльца с карты. А карта то большая. Или в игре даже несколько больших карт. И в каждом сейве должно быть сохранено очертание открытой местности. Но при этом хочется максимально уменьшить размер сейвфайла, а точнее - время загрузки. И что делать?
Только сейчас наткнулся на эту тему, название то обощённое, подумал, что будут общие рассуждения, а оказалось всё вертится вокруг одного проекта.
Так обобщённое, я вроде в начале и разные варианты перебрал. Но за всех же думать не могу, с миру по нитке, каждый о своём. Суть в том, что делать игры - можно, а не только мечтать о них. Конечно, не без ограничений, но как минимум это интересно
Башка не варит вникать в подробности, особенно на непривычном языке, но в принципе, если задача телепортировать объект, то можно же представить,грубо говоря, вокруг объекта пару десятков точек. Найти из них самую выгодную по дистанции от врагов. И при необходимости немного сдвинуть.
Там в том и проблема, что парень он (язык программирования) исполнительный, но очень упрямый и тугоумный, сказать ему, Михалыч, вот далече отойди - не пойдёт. Ему надо объяснять на пальцах, притом в слепую, притом если ты пальцем нос почешешь, он в ту же сторону и пойдёт. Но суть не в том, решение-то я нашел, там в комментах к отрезку оно есть (перебираем удалённые углы для начала), суть в том, что я в упор не вижу ошибки. Есть такой вариант досуга - ошибку в задаче выискивать. Вот может кто выискает.
А игра моей мечты это рпг, в которой игрок открывает карту. То есть карта изначально заготовлена, но её прикрывает чёрная маска (или какая то текстура). И игрок, шагая туда-сюда, стирает пыльцу с карты, делает прозрачной маску. В идеале, должно учитываться поле зрения, чтоб он не мог открывать области карты, находящиеся за преградами. Но главный вопрос не в этом. Допустим, просто, куда бы не пошёл игрок, вокруг него в радиусе 10 метров стирается пыльца с карты. А карта то большая. Или в игре даже несколько больших карт. И в каждом сейве должно быть сохранено очертание открытой местности. Но при этом хочется максимально уменьшить размер сейвфайла, а точнее - время загрузки. И что делать?
Ну учитывая, что некоторые игры по пол часа загружаются (та же цивилизация), думаю никто и не заморачивается. Вопрос в том (я тоже думал о карте) - как реализовать эту карту. Если прям каждый шажок - это отдельная переменная квадратного массива, то у тебя и так куча клеток будет сохраняться, а каждой клетке уже можно написать, открыта она или закрыта. Но мне кажется, изометрические игры это по другому делают. А как реализовать, вот такая идея. По-моему архивы так делают, и раньше Спектрум так же графику выводил, сохраняя пространство, да и я так имена сохранял (ибо приходилось в цифре). Если, скажем, с 1 по 10 поле по горизонтали открыто, а с 11 по 20 - закрыто, то пишем так: 99 10 0 99 10 1. 99 - ключ, сигнализирующий, что дальше будут две указывающие переменные, 10 - сколько однотипных будет, 0\1 - открыто закрыто. А простенькая процедура это будет считывать и преобразовывать. Если этот участок в середине чередующихся, то выглядит так 0 1 0 1 99 10 0 99 10 1 1 0 1 0. Ну а в загрузке можно извращаться насколько терпения хватит. Например, делаем всю карту затемненной, и потом метим только открытые, притом, если вся строка темная, то мы ее не обрабатываем (вводим ключ 69 например для таких случаев), выискиваем скопления основной открытости (при сейве задаём прямоугольник внтури карты, в котором есть открытости, за его пределами при загрузке не смотрим) и от неё пляшем, и т.д.
Чтобы не тратить время при сохранении, вычисляя этот прямоугольник, в отдалённо схожей ситуации я делал вот так. Начинаем мы на клетке 50 по горизонтали, скажем. Тогда xmin:=50; xmax:=50; (х минимальному и икс максимальному обоим присваиваем начальную точку). Теперь каждый раз шагая вправо, мы проверяем, не больше ли текущая клетка чем xmax, и если больше, то присваиваем xmax новое значение, тем самым раздвигая границы. Влево - работаем с xmin. Например шагнули вправо - xmax:=51; вверх - ничего не произошло. влево - ничего. два раза вправо - xmax:=52. И также сохраняем эти координаты в сейве. Много времени это при ходе не отнимет. А как реализовывать алгоритм открывания непосредственно в игре, думаю, и будет той интересной задачей, которую ты будешь решать.
Сколько вообще можно тянуть с реализацией своей идеи? Иногда кажется, что надо торопиться, игропром развивается. Если какая-то ниша казалась перспективной и незаполненной, то пока ты будешь работать в её направлении, она успеет заполниться. И останется только "демпинговать цены"? Или раздавать забесплатно, ещё унижаясь, чтоб хоть кто-то обратил внимание. А иногда кажется, что время не важно - всё равно никто за тебя не сделает то, что ты хочешь. Может такое представление в чём-то лучше. Чтоб ты не дёргался. Но, что если чтобы поддерживать такое состояние души, надо сузить кругозор до каких то дешёвых проектов. С одной стороны это здраво - зачем конкурировать даже в мыслях с большими проектами?
выглядит так 0 1 0 1 99 10 0 99 10 1 1 0 1 0
Что это за двоичный код с совой? Или только у меня цифра 9 ассоциируется с совой? Хотя, в любом случае спасибо за идеи, но я вспомнил что именно меня смущало. Дело в том, что хотелось чтобы маска карты имела плавный переход.
ну то есть сохранить произвольный периметр это не так уж сложно. Но как сделать чтобы альфа канал красивенько расплывался в обе стороны этого периметра?
Ты дебаг вообще освоил в паскале?
Добавь в отслеживание нужные переменные, да смотри в step by step куда программа пошла при твоих вводных данных.
Я большие вложенные циклы сейчас в себя не загружаю, мозги нужны для другой работы.
Да освоил немного, но он немного геморный чтоли, всё как бы в одном окне, как в виндовских окна не развесишь нормально. То есть, если это модуль - надо точки прерывания ставить, и каждый раз запускать, и мышь после пары запусков перестаёт в досбоксе работать. Ну лень мне короче. Тут же брешь обычно в человеческой логике, а не в переменных, и желательно писать условие, когда прерывать, чтоб только на ошибочных тормозило. Но я понял в чём там проблема, нарвался на те же грабли. Если надо 2 сделать 3, а 3 сделать 2, то программа if 2 sdelai 3; if 3 sdelai 2 в случае двойки прогонит её два раза и снова сделает два. Но я об этом ЗНАЛ, когда писал. Просто не стал их связывать глобальным else так как видел, что всё нормально. Но я добавил в каждое условие ЛОКАЛЬНЫЙ else, и в случае невыполнения условия оно переходило на этот else, даже если искомые координаты уже были найдены, и там такой кавардак начинался, что варфоломеевская ночь отдыхает. В общем, раз плюнуть по сравнению с морским боем, который я с горем пополам добавил в игру, и который глючит лишь в 10 процентов случаев. Тут я уже просто умываю руки. Степ бай степ не поможет, если не знаешь, при каких условиях это происходит.
Сколько вообще можно тянуть с реализацией своей идеи? Иногда кажется, что надо торопиться, игропром развивается. Если какая-то ниша казалась перспективной и незаполненной, то пока ты будешь работать в её направлении, она успеет заполниться. И останется только "демпинговать цены"? Или раздавать забесплатно, ещё унижаясь, чтоб хоть кто-то обратил внимание. А иногда кажется, что время не важно - всё равно никто за тебя не сделает то, что ты хочешь. Может такое представление в чём-то лучше. Чтоб ты не дёргался. Но, что если чтобы поддерживать такое состояние души, надо сузить кругозор до каких то дешёвых проектов. С одной стороны это здраво - зачем конкурировать даже в мыслях с большими проектами?
Ну если это действительно нишевый проект (зомби, тдшки, выживалки, сериалы, ещё что там, что в какой-то момент резко популяризовалось), то да, можно пролететь. Мне даже интересно, что это за проект такой, который метит в новую нишу. А если проект, на который ниша никогда не самообразуется, ввиду сложности её вычленения, то время неподвластно. Я заметил, что большинство наиболее интересных инди-игр, окзывается, начало разрабатываться ещё при выходе первого Брэйда, то есть когда только началась волна сам.издат игр, и люди поняли, что они могут, оказывается, сделать -игру своей мечты-. Это потом уже в этой нише стало модно словить хайп\сделать полуфабрикат, и покатить за следующей удачей. А раздавать забесплатно и унижаться может прийтись при любой игре, как я выяснил, тут надо уметь баламутить народ. Вон, Cuphead (игра на рефлексы с графикой советских мультиков), делали свою игру не то 7, не то 9 лет, и им повезло, взлетела, а сколько глубоких вещей "висят", никому неизвестные? В любом случае, даже нишевый проект, но сделанный отдуши, будет на голову выше своих сверстников, но вот комерческий успех его не факт что ждёт. Надо нанимать промоутеров, наверное.
Тут я уже просто умываю руки. Степ бай степ не поможет, если не знаешь, при каких условиях это происходит.
В проблемных местах проги поставь запись в файл вроде такого 'Строка ххх: i='+i+' j='+j. А потом сиди и анализируй то, что записалось, может быть поймаешь ошибку.
В проблемных местах проги поставь запись в файл вроде такого 'Строка ххх: i='+i+' j='+j. А потом сиди и анализируй то, что записалось, может быть поймаешь ошибку.
Кстати да, спасибо, отличная идея. Пусть в случае глюка пишет все значения переменных в файл, так заметно удобнее. Попробую как-нибудь!
Еее, поздравьте меня, глюк пофиксен! Оказывается, я в одном месте переменной-массивом описался, и, меняя поле врага, косвенно изменял и своё то же. Просто когда всё так замудренно, даже боишься проверять простенькие моменты, думаешь, что проблема во вложенных друг в друга процедурах. А тут я начал выводить на экран, сколько у врага и меня кораблей осталось, и вдруг заметил, что в одном месте он его "убил", когда тот всего лишь ещё ранен был. Провёл параллель с ещё одним моментом, когда при перезаходе в мини-игру поле как-то по-другому прорисовывалось, и проверил первое, что пришло в голову. Сработало. Теперь сообщение "glyuk has happened, fix the glyuk!" не выскакивает , можно и АИ усложнять.
Поздравляю! Вы обуздали своё детище. Маленькая победа в глобальном противостоянии.
Теперь сообщение "glyuk has happened, fix the glyuk!" не выскакивает
У меня для таких ситуаций был сниппет с коротким сообщением "wtf"
Мне даже интересно, что это за проект такой, который метит в новую нишу.
Я задумал проект несколько лет назад. Партийное рпг от первого лица для мобильных устройств. Это ещё до того как вышли "Might and Magic X" и "legend of grimrock 2" на ПК. А на мобильных считалось, что нормальных рпг нет и быть не может. Хотя они видимо всё таки были. The Quest, например. Он потом перекочевал с эплстора в стим, и до сих пор получает положительные отзывы. Вот и я думал сделать игру в которой дизайн "уровней" это дело пятое, а лор - десятое. Главное менеджмент партии.
Я задумал проект несколько лет назад. Партийное рпг от первого лица для мобильных устройств. Это ещё до того как вышли "Might and Magic X" и "legend of grimrock 2" на ПК. А на мобильных считалось, что нормальных рпг нет и быть не может. Хотя они видимо всё таки были. The Quest, например. Он потом перекочевал с эплстора в стим, и до сих пор получает положительные отзывы. Вот и я думал сделать игру в которой дизайн "уровней" это дело пятое, а лор - десятое. Главное менеджмент партии.
Хмм, ну да. Первый выехал на имени, а второй на том, что якобы возродил старые поклеточные рпг-бродилки. Там же потом ещё неплохая игра типа ЛоГ на кикстатере была (визуально), от какого-то однофамильца именитого гейм дизайнера (то ли авалонне, то ли ещё кто), но вряд ли уже снискала ту же популярность. Кто успел, тот и съел. Идея, конечно, здравая. Я сам не до конца понимаю что включает в себя пресловутый менеджмент партии, но я так понимаю это когда ты с кайфом вазюкаешься с персонажами. Я, правда, не шибко предпочитаю, когда всего и много, в своих делал сбалансированный минимализм (пусть отчасти из-за того, что не потяну много интересного контента). Но опять же, раз у вас какая-то идея есть ("никто кроме меня такую не сделает"), то чем чёрт не шутит, может в неё интереснее будет играть, правда выехать на "возрождении жанра", наверное, будет уже сложнее. Самому сейчас вот, глянув на Elex, захотелось какой-нибудь н\ф квест сделать, я не люблю шаблоны, когда обязательно должны быть разные стороны конфликта с оттенками серого, просто хотелось сделать что-нибудь атмосферное. Может даже украсть пару сюжетецов, да засунуть боёвку первых игр. Ещё б таланта, а то зарёкся никогда больше за этот Паскаль\Дельфи не садиться, время жрёт огого.
Я сам не до конца понимаю что включает в себя пресловутый менеджмент партии, но я так понимаю это когда ты с кайфом вазюкаешься с персонажами. Я, правда, не шибко предпочитаю, когда всего и много, в своих делал сбалансированный минимализм
На счёт минимализма, мне тоже не нравится когда в начале игры при выборе персонажей сразу вываливается куча всего. Я бы хотел чтобы при создании партии игрок выбрал основные качества персонажей типа сила, ум, удача и тд; сферы интересов и какие-то личные качества. А потом, в процессе исследования мира встречалось изучение навыков относящихся к определённой сфере интересов. И у меня в игре нет такого чтобы выбирать в начале лучника, мечника или мага. Про это вообще ни слова. Просто, когда по ходу игры вам попадётся оружие или заклинание и придётся его применить, то со временем вдруг в листке персонажа появится "владение этой штукой +1".
чем чёрт не шутит, может в неё интереснее будет играть, правда выехать на "возрождении жанра", наверное, будет уже сложнее.
Да уж, с одной стороны я очень вдохновлялся старыми играми типа той же МиМ, но если бы хотел привлечь игроков, то стоило бы во всём следовать канонам. А так... получается нечто не рыба не мясо. И вообще, сначала думал, надо сделать что-то простое, ну как сейчас данжн кроулеры. А потом уже в следующем проекте мудрить. Но так не интересно.
Ещё б таланта, а то зарёкся никогда больше за этот Паскаль\Дельфи не садиться, время жрёт огого.
Может всё таки перестроиться на современный движок?
На счёт минимализма, мне тоже не нравится когда в начале игры при выборе персонажей сразу вываливается куча всего. Я бы хотел чтобы при создании партии игрок выбрал основные качества персонажей типа сила, ум, удача и тд; сферы интересов и какие-то личные качества. А потом, в процессе исследования мира встречалось изучение навыков относящихся к определённой сфере интересов. И у меня в игре нет такого чтобы выбирать в начале лучника, мечника или мага. Про это вообще ни слова. Просто, когда по ходу игры вам попадётся оружие или заклинание и придётся его применить, то со временем вдруг в листке персонажа появится "владение этой штукой +1".
Да, я тоже люблю такой подход. Я бы предпочитал, чтобы игрока уже по мере прохождения знакомили с разными классами, и он уже делал осознанный выбор, а не чесал в раздумьях репу в начале, пытаясь угадать, как ему это аукнется. Я так понимаю, у тебя тут некий подход Готики, в плане начинания никем, плюс бесклассовая система, и прокачка от использования (более тонкая). Я как раз во второй игре тоже схоже сделал. Но у меня, повторюсь, там довольно мало "переменных".
Да уж, с одной стороны я очень вдохновлялся старыми играми типа той же МиМ, но если бы хотел привлечь игроков, то стоило бы во всём следовать канонам. А так... получается нечто не рыба не мясо. И вообще, сначала думал, надо сделать что-то простое, ну как сейчас данжн кроулеры. А потом уже в следующем проекте мудрить. Но так не интересно.
Комерчески такое не прокатит (там подавай всего и безвкусно), но если найти уютное гнёздышко ценителей, проект, развиваемый малюсенькими но продуманными порциями, будет встречен теплее. Например TKoK3 и Gaias Retaliation (партийные бродилки на движке третьего Варкрафта)
Может всё таки перестроиться на современный движок?
Да не, тут либо 3Д, который я не потянул бы в плане контента в любом случае, либо текстовый движок, у нас как раз все текстовые квесты на бурговском, своего нету. Перестраиваться я уже никуда не буду, это раньше надо было, когда сам процесс програмирования был интересен, сейчас для меня это лишь средство для достижения цели. Но не могу найти место, где люди такими играми делятся, поэтому время своё точно тратить не буду, и не хватит литературного навыка.
Перестраиваться я уже никуда не буду, это раньше надо было, когда сам процесс программирования был интересен, сейчас для меня это лишь средство для достижения цели.
Может, наоборот, если вы пытаетесь добиться своего старыми методами, то для вас интересен именно процесс, а если был бы важен результат, то вы бы изучили более современные инструменты?
Мне сначало был интересен результат, а потом, когда я забил на мечту о быстром достижении цели, то стал важен процесс. Я ограничил себя использованием только бесплатных программ, а потом и вообще заинтересовался тем, чтобы всё делать в одном движке юнити. И 3D модели и музыку. В результате на саму игру забил.
И я не могу объять все возможности и проторенные тропы. Разбираться в чужом коде это так сложно. Лучше попробовать написать свой. Я копаю-копаю, потом надоедает и забрасываю надолго. Вот почти год назад пытался написать скрипт, чтобы ты рисовал текстуру-чертёж, у тебя было разлинованное окно. Либо сетка квадратиков, либо косых линий, либо можешь подставить лекало окружности. И этот чертёж в реальном времени становился 3D данженом. Несколько дней копался и забросил. А теперь посмотрел свежим взглядом и понял - нафиг было огород городить? Анализировать попиксельно текстуру, находить внешние и внутренние периметры и пытаться преобразовывать лесенки пикселей в плавные дуги - это затратно, сложно и глупо. Лучше копнуть возможности движка и более простой вариант всплывёт на поверхность.
бесклассовая система
Да, я не хотел классовости. Но с другой стороны, если игрокам такое нравится, то может и не надо их этого лишать?
но если найти уютное гнёздышко ценителей
Я пробовал один раз найти рпг форум. Создал там тему, я им сразу написал, что это тема с обсуждением концепта, не надо относиться как на геймдевелоперских форумах типа "покажи готовый прототип или мы тебя затроллим". Но в итоге всё было на грани этого.
Я там как раз писал, что не хочу классовости, потому что основа игры - это партия исследователей. У них нет задачи спасти мир, свергнуть правительство и тп. Поэтому у них не будет развития навыков типа ношения тяжелых доспехов, и никто не будет их принимать в паладины. Но мне ответили "а что такого? Одно другому не мешает"
Может, наоборот, если вы пытаетесь добиться своего старыми методами, то для вас интересен именно процесс, а если был бы важен результат, то вы бы изучили более современные инструменты?
Ну, скажем так, я не программист по типажу. Из серии - люблю читануть книгу, да и только, люблю вбить колышек, но не строить забор вокруг кремля, сверяясь с планами и занося в инстанции. А сейчас ещё и потупел изрядно. Например в идеале твою метаморфозу косой линии в плавную арку лучше бы реализовать какой-нибудь изящной синусоидой, а я бы нагромоздил прямое как палка разбитие сегмента на десять частей с чуть ли не ручным построением пикселей в форме арки. Не хватает мне лёгкости. Поэтому если бы мне был интересен процесс (как он какое-то время был), я бы взял с++, или что там, и балдел от изучения. А сейчас пользуюсь тем, что когда-то давно вбил в голову, чуть обновив воспоминания, а это немного. Сначала конечно кайфовал, ибо с нуля изобрёл все составляющие игры (запись, инвентарь, и т.д.), но сейчас вылавливание по два часа бага уже ничего кроме раздражения не вызывает.
Мне сначало был интересен результат, а потом, когда я забил на мечту о быстром достижении цели, то стал важен процесс. Я ограничил себя использованием только бесплатных программ, а потом и вообще заинтересовался тем, чтобы всё делать в одном движке юнити. И 3D модели и музыку. В результате на саму игру забил.
Но видимо удовольствие-то получил
И я не могу объять все возможности и проторенные тропы. Разбираться в чужом коде это так сложно. Лучше попробовать написать свой. Я копаю-копаю, потом надоедает и забрасываю надолго. Вот почти год назад пытался написать скрипт, чтобы ты рисовал текстуру-чертёж, у тебя было разлинованное окно. Либо сетка квадратиков, либо косых линий, либо можешь подставить лекало окружности. И этот чертёж в реальном времени становился 3D данженом. Несколько дней копался и забросил. А теперь посмотрел свежим взглядом и понял - нафиг было огород городить? Анализировать попиксельно текстуру, находить внешние и внутренние периметры и пытаться преобразовывать лесенки пикселей в плавные дуги - это затратно, сложно и глупо. Лучше копнуть возможности движка и более простой вариант всплывёт на поверхность.
Вау, да ты прям как Кармак и Ко псевдо-3Д чуть не изобрёл. Там тоже так было, карта плоская, а потом просто всё надстраивалось сверху без обсчёта три-дэ положения. Вообще вот этот момент очень сложный. Для начала, есть движок, который ты написал с нуля, ты знаешь там каждую загогулину, и в любой момент можешь изменить правила и направить их в нужное русло. Например Пираньи со своей Готикой, которые могли от нефиг делать дать герою все анимации неписей (подметание, махание киркой). Но тебе приходится изобретать велосипед, а в наше время это непозволительная роскошь - месяцы ненужной работы. Например, я понял, на своём примере, почему интерфейс так развивался. Сначала игроку приходилось жать "идти" и тыкать на карту, потом добавилось контекстное распознавание в зависимости от типа местности - потому что они дорабатывали уже созданное ранее. Есть редактор карт - другая крайность. Всё наглядно, но приходится танцевать с бубном, чтобы уложиться в скупые возможности. Есть готовый движок - идеальный вариант. И наглядно, и многое уже сделано, и есть возможность покопаться в ресурсах, если приспичит. Например движок от Балдурс Гейта в Плэйнскейпе. КолофДути, выросший на костях Квейка. Но всё-таки немало кто и от такого подхода плюётся. Разработчик Ксенонавтов (ремейк Икскома) всё проклял, пока пытался имплементировать свои идеи в готовом движке. Какой-то из переводчиков, взявший уже готовый засовыватель ресурсов, тоже чуть с ума не сошёл, изменяя его под свои нужны. Я даже в своей первой игре это встретил, ибо решил не менять изначальную процедуру боя. Из-за этого реализовывать вещи типа лечения врага от удара в случае смены его полярности, или отпрыгивания от абилок, приходилось методом окольных неуклюжих настроений. Так что идеальный вариант сложно найти. Вот, кстати, 3д лабиринт на ограниченной по возможностям программисткой игрушке, может почерпнёшь чего.
Я пробовал один раз найти рпг форум. Создал там тему, я им сразу написал, что это тема с обсуждением концепта, не надо относиться как на геймдевелоперских форумах типа "покажи готовый прототип или мы тебя затроллим". Но в итоге всё было на грани этого.
Ну это да, именно хороший форум сейчас сложно найти, всё какое-то неприятное. В упомянутом мной примере это были кастомки на движке других игр, Варкравта3, Халф-Лайфа2, Героев3 и т.д. Там какая-то своя тусовка, вертящаяся лишь вокруг этого контента. Я не читал "Библию Фулаута" Фарго, ибо инглишь всё так же некомфортен, но начинается она просто как наброски - что будет с гулями, когда люди ушли? Ушёл их источник питания, значит через тыщу лет с ними будет то-то и то-то. Так и рождается продуманный мир.
Я там как раз писал, что не хочу классовости, потому что основа игры - это партия исследователей. У них нет задачи спасти мир, свергнуть правительство и тп. Поэтому у них не будет развития навыков типа ношения тяжелых доспехов, и никто не будет их принимать в паладины. Но мне ответили "а что такого? Одно другому не мешает"
Поподробнее. Чем они буду заниматься? Вообще, мне напомнило настолку Нуменеры (которая в недавний Тормент вошла) - тоже про исследования и минимализм в плане ненужной мишуры. Можешь почитать на досуге, она красочная.
Вообще-то на хардах традиционно есть два массива - это указатели и собственно массив данных. Так вот винда стирает файл в массиве указателей, откуда система видит, что в адресах с такого по такой есть файл с таким-то названием. (Это вкратце принцип FAT, NTFS работает вроде чуток по-другому)
А то, что ты делаешь - это что-то маньячное. Обычно всё же делаются массивы объектов с в т.ч. параметром "координата", а для отрисовки сканируются эти массивы. Потому что логика игры исходит от юнитов обычно, а не от координат на карте.
Ну насчёт первого, по-моему я угадал, нет? Грубо говоря. Стирается первый байт, то есть указатель, т.е. "занято", а всё тело, то есть куча остальных переменных, остаётся, пусть и в двух вариантах. Но спасибо за приоткрытие занавеса работы виндовса, не знал что данные там тоже в массивах, как вспомню эти дефрагментации по два часа... А насчёт второго, не согласен. Как проще реализовать фаербол? Жахнуть, и отнять по всей площади жизни у всех кто стоит в площади поражения, чем проверять в массиве объектов, стоит ли кто в искомой координате (а у меня ещё фаербол уменьшает урон от центра - лишний геморой во втором случае). И другие массовые заклинания, ауры там. Для того же расчёта коммандного действия АИ мне один фиг в уме пришлось бы вырисовывать поле с занято\нет и свой\чужой. На полях аля "Герои" ничего маньячного, самое то. Хотя у меня тут тоже второй массив для навыков, не нужных врагам, чтобы не забивать поле, он просто отталкивается от номера того, кто стоит на поле. А вот в "Казаках" каких-нибудь, да, к твоему варианту действительно стоит присмотреться, я сам бы не факт что логику поменял, так и данные сложнее потерять.
Жахнуть, и отнять по всей площади жизни у всех кто стоит в площади поражения, чем проверять в массиве объектов, стоит ли кто в искомой координате
Ты ж не вручную проверяешь, процедура выборки нужных юнитов по координате занимает полторы строчки.
В целом подход нормальный для рпг на сетке, но в массе своей РПГ делаются по-другому. Потому что юниты в РПГ обычно двигаются, получают и теряют свойства, взаимодействуют друг с другом. И это делается не переписыванием 100 раз целого набора его свойств в соседнюю область. Скажем, разрешение карты в таких случаях гораздо выше и даже пустой массив на это разрешение просто съест всю память.
Ну как у меня фаерболл работает (и то небольшим гемороем запилил) - центр получает 6 урона, ок проверяем по всему массиву юнитов не стоит ли там кто. Потом по какой-то формуле соседние получают 4, опять проверять по массиву, стоит ли там кто, ведь получаемый урон другой? Потом по этой же формуле лишь ромб вокруг получает 2, опять по всему массиву? И всё остальное по внешнему периметру получает единички, опять по массиву бегать. Это ж сотни лишних действий. А так я просто могу вычесть нужное число, даже если там никто не стоит, или быстренько каждый раз проверить. Может тут опять же всё от обратного, но не вижу как. Не удивлюсь, если и в Героях такой подход, хотя там АИ довольно мощный, принимает неординарные командные решения, так что может смешанное что. При сплошном уроне, конечно проще, но опять же и с АИ, и с аурами, и с пробивающими насквозь по прямой всех выстрелами ну в сто раз проще моим способом обрабатывать. Единственный минус, можно "не заметить потери бойца", если случайно глюком изменить поле с стоит на не стоит. Насчёт рпг на изометрической карте согласен, тут я вообще не в зуб ногой.
мне напомнило настолку Нуменеры (которая в недавний Тормент вошла) - тоже про исследования и минимализм в плане ненужной мишуры. Можешь почитать на досуге, она красочная.
Разве настолки читают, а не играют в них? Хотя я тоже как то скачивал книги для гейммастеров D&D. Но, честно говоря не читал их глазами, а включил робота, читающего текст и слушал перед сном. Так себе оказалась идея.
Поподробнее. Чем они будут заниматься?
Закономерный вопрос, да? Мне он тоже со временем пришёл на ум. Потому что я сначала постановил - не хочу в игре банального спасения мира, отражения нашествия орд демонов и тому подобного. Но ведь это рпг, а не симулятор туриста. Нельзя всю игру собирать цветочки или браконьерничать в лесу. Симулятор охотника в оболочке партийной рпг я бы тем более не потянул. Но мало помалу начала складываться картина чем можно занять игрока и каких оппонентов ему найти... Но я всё таки решил отложить этот проект и начать делать новый.
За основу берётся идея данжн-кроулера. Хочется сделать так, чтоб партия игрока могла ходить по большому городу и спускаться в данжены. И чтоб город был как данжн, только вместо стен по бокам дома. И переключаться между свободным и пошаговым передвижением. Главное в этом. Как это можно обставить? Может партия - это команда по вызову для борьбы с вредителями в подвалах. Ну не крысами, а кем то побольше. Это же альтернативный мир. Ок, допустим их будут вызывать озабоченные горожане и давать ключ от своего подвала. Но мещанский подвал не может быть большим интересным лабиринтом. Ладно, ничего страшного , для начала и маленький сойдёт. Я хочу имплементировать идею того, что город большой, а телепортироваться в нём нельзя. Вместо телепортов есть извозчики. Они всегда стоят рядом с городскими воротами, рядом с гостиницей и рядом с торговой площадью. Там ты можешь в любой момент взять извозчика, назвать адрес, и он привезёт в какое то место карты где тебе надо будет спуститься в подвал. И ты можешь попросить его подождать. За деньги. Если у тебя нет денег чтобы ему заплатить, то будешь выбираться сам. А если будешь обманывать извозчиков или хозяев подвалов и делать подобные некрасивые вещи, то создашь себе такую репутацию, что никогда не получишь лицензию на огнестрельное оружие. А без лицензии тебе ничего не продадут в оружейном магазине. И придётся как лох спускаться в новый, всё более пугающий подвал с лопатой, хлыстом и другими подручными средствами.
Разве настолки читают, а не играют в них? Хотя я тоже как то скачивал книги для гейммастеров D&D. Но, честно говоря не читал их глазами, а включил робота, читающего текст и слушал перед сном. Так себе оказалась идея.
Ну да, именно книгу для гейммастеров, которая описывает мир, ролевую систему и прочее (для игроков обычно это более мелкая книжица). А чтоб играть, там достаточно листочка и ручки для мелких вычислений. Плюс Нуменеры именно в том, что это "книжка в картинках". Оттуда можно почерпнуть ролевую систему без излишней тяжеловесности, и концепцию исследования, правда там исследование сумасшедшего мира, где можно стать узником силового поля-брони, или попасть под дождь, меняющий молекулярную структуру. Твой адекватный подход к походам мне больше нравится. Да и она сама тоже очень даже далеко от идеала. Вообще, оно всё простенько как-то оказалось, я от настолок ожидал реально продуманного мира, в который ты погружаешься с головой, обмазываясь всякими листочками, карточками, картами, политической и прочей системой, а там либо карточная битва на все лады, либо монополия на все лады, либо аднд на все лады. Плэнскейп, вот, говорят, на настроении больше основан, может там чего есть.
И чтоб город был как данжн, только вместо стен по бокам дома.
Я буду ставить ИМХО, когда отражаю своё видение, которое нафиг никому не упёрлось. Имхо, мне нравилось когда данжи на открытом воздухе были. Но правда сейчас такого достаточно, и концепция, когда охотники за нечисть спускаются во что-то страшное хорошо смотрится. В том же ВоВе, хоть и не любил пвп, но нравилось из-за этого чувствовать себя в безопасности в городах.
И переключаться между свободным и пошаговым передвижением.
Как в Майт&Мэджик 6+? По-моему там это было не очень реализовано, имхо
Может партия - это команда по вызову для борьбы с вредителями в подвалах. Ну не крысами, а кем то побольше. Это же альтернативный мир. Ок, допустим их будут вызывать озабоченные горожане и давать ключ от своего подвала. Но мещанский подвал не может быть большим интересным лабиринтом.
А вот это мне прям очень нравится, тот самый нестандартный подход, из-за которого я всю эту тему и затеял. Как раз от Шадоурана я и ожидал таких ночных забегов агентов и возвращения в дряхлую халупу, куда закрадывается неон, а не квеста
Вместо телепортов есть извозчики. Они всегда стоят рядом с городскими воротами, рядом с гостиницей и рядом с торговой площадью.
Имхо, это немного аналог телепорта, только лишь из точек отправления, НО...
И ты можешь попросить его подождать. За деньги. Если у тебя нет денег чтобы ему заплатить, то будешь выбираться сам. А если будешь обманывать извозчиков или хозяев подвалов и делать подобные некрасивые вещи, то создашь себе такую репутацию, что никогда не получишь лицензию на огнестрельное оружие.
... это добавляет солидный пласт геймплея, особенно если выбираться, как на ограблении, придётся с "хвостом" из крыс или ранами, если не заплатить извозчику за лёгкий ветерок. Может при плохой репутации он тебя даже и кинуть может, правда тогда его менеджер местного такси должен как-то наказать (имхо)
А без лицензии тебе ничего не продадут в оружейном магазине. И придётся как лох спускаться в новый, всё более пугающий подвал с лопатой, хлыстом и другими подручными средствами.
Тоже очень офигенная идея, с очень сильным технологическим ростом внутри игры. Но где этот рост не является ненавязчивым, где ты, сам того не замечая, вместо колесниц начинаешь управлять автомобилями со схожими внутриигровыми характеристиками, а где есть какие-то пласты геймплея с лицензией и прочим. Может какая-то организация будет преобладать, из-за того, что у них этого оружия навалом, или сам рост будет довольно солидным (как в игре Rust, в которую я не советую играть, но просто там начинаешь с дубиной и голыми причиндалами, а спустя долгий гринд, постройку своей халупы и замесы с такими же голозадыми, можешь и кевларовый жилет замутить)
p.s. наткнулся на один данжеонкровлер, вроде интересные находки есть
Не запустилась. А вообще, мне кажется обложки игр должны соответствовать внутриигровому стилю. Это ведь первое впечатление, плохо когда оно расходится с сутью.
Как в Майт&Мэджик 6+? По-моему там это было не очень реализовано, имхо
Там же не было пошагового передвижения. МОжно было только выключить передвижение и стоя атаковать по очереди. но только сначала все вы, а потом все враги. В Wizardry 8 хотя бы можно было двигаться в пошаговом режиме. Но там было свободное, а не поклеточное перемещение, только гораниченное временем хода. А сейчас... хош делай поклеточное хоть бесклеточное, лишь бы работало и имело какой то смысл. Но если в игре время на что-то влияет, то надо прикидывать сколько времени проходит в свободном движении, сколько тратится в бою.
p.s. наткнулся на один данжеонкровлер, вроде интересные находки есть
Какие же?
Вообще чел всё запутал, если бегло смотреть, то ничего не поймёшь.
А я давно заприметил эту игру в разработке.
Прям с экрана цветёт и пахнет, но до релиза так и не дошла. Как так? Ведь столько всего уже понапихано было. Или это какие нибудь стандартные шаблоны движка?
Не запустилась. А вообще, мне кажется обложки игр должны соответствовать внутриигровому стилю. Это ведь первое впечатление, плохо когда оно расходится с сутью.
Как-то не задумывался об этом. Но правда, я и подбирал по стилю. В игре есть музыкальные инструменты, и тут он стоит. Понятно, что такого рода уюта я в игре не нарисую, но по-моему старые игры придерживались такого же подхода, на обложке там всё эпично, а в игре всё более прозаично. Странно, что не запустилось. Чем именно? Там просто можно екзешник или батник напрямую через досбокс запустить, а можно скопировать игру в d:\games\ и просто запустить ярлык, ни о чём не заботясь (ну, в помощи это описано). Но вообще, лучше сначала первую глянь, она тоже челленджевая, но более традиционна, эта - немного эксперимент. И да, обложка к первой хоть какое-то отношение, да имеет
Там же не было пошагового передвижения. МОжно было только выключить передвижение и стоя атаковать по очереди. но только сначала все вы, а потом все враги.
Ну я больше не про поклеточное, а именно про пошаговое. Там в любой момент в бою можно было переключиться с пошага на реалтайм (и в Аркануме тоже), и чём меня эта система не устраивает, это тем, что сложно перенести тайминги пошага в реалтайм. Кто-то сразу же дракона убивал, стрейфясь за стены. Но это мелочь, я так, докопался, может в этой системе и есть потенциал, или, я так понимаю, ты сделал её именно для перемещения по городу. Если бой пошаговый, а перемещение на усмотрение игрока, и важно учитывать время, то да, сконвертировать ходы пошага в реальные минуты не так уж сложно. Гораздо важнее о чём основная игра. Я бы тебе дал свой движок битвы от второй игры (типа как в Героях), но у тебя, там, думаю, всё на уровень выше, шейдеры и т.д., я о таком вообще не бум-бум, да и замусорен он у меня разными обходами.
Какие же?
А фиг знает По-моему то, что после удара стихией, лечится тот, чья это стихия (будь то враг или друг). Это единственный вид лечения. Не люблю стандартные бутыльки в рпг. А Аракион, да-да! По-моему я именно про эту игру говорил, когда упоминал выше аналог Гримрока, сделанный каким-то двойником Авелоне или ещё кого из известных, такая прям, волшебная. На кикстартере же была? Неужели не вышла! (хотя, судя по стиму, он её делает в раннем доступе (в феврале будет доступна к продаже), но, как это и бывает, вниманием прессы и игроков он, видимо, обделён). Если б шла на моём тостере, я б даже приобрёл, будь она не шибко дорога, просто чтоб морально поддержать.
В копилку занимательных идей, из этого интервью: магия не как боевой аналог меча, а способ исследования мира (сеттинг: тёмная инквизиция): ритуалы, пентаграммы, ворожба на шишках (чёрная магия), экзорцизм (изгнание), война инквизиции на истощение, ввергающий души во тьму Люцифер, христианская вера, как защита от тёмных сил, подготовка к борьбе с теми, кто может одним словом прекратить твоё существование, проклятые места, покинутые не без причины, переговоры с ткущими интриги герцогами ада. Ведьмы из старого фольклора, убивающие детей (помню, кино прикольное было, где детей в мышей превращали), стравливающие родственников, сворачивающие молоко в выменях коровы. Издевающиеся над самым святым, как раз из-за того, что для нас это свято. Но, являясь вне моральной системы, они могут и помочь. Одна такая запрыгнула на мага, заманившего в свою халупу незадачливого путника для экспериментов, и, мяукая, выгрызла ему глаза, потом с презрением сплюнула в сторону ошарашенного путника, и ушла.
И ещё одна, забавная: у игрока типа высокий интеллект, и он умеет уламывать людей. Он начинает торговаться с дьяволом (свою душу на всякие блага), и легко выигрывает все проверки, оставляя за собой свою душу. И тогда в последней сделке дьявол просит закрепить свой контракт кровью. Игрок, уверенный в победе, подписывает, и видит, что и эту проверку он легко осилит... За исключением того, что не осилит. Он вдруг понимает, что всё это время игра врала ему, ведь нельзя просто взять и перехитрить дьявола, это наоборот он сам повлиял на всю игру и опъянил игрока, смело забрав теперь его душу, изменяя его класс.
Странно, что не запустилось. Чем именно? Там просто можно екзешник или батник напрямую через досбокс запустить, а можно скопировать игру в d:\games\ и просто запустить ярлык, ни о чём не заботясь (ну, в помощи это описано)
У меня нет диска D. Почему бы не сделать C? А дос боксом я никогда не пользовался, это надо читать-разбираться.
по-моему старые игры придерживались такого же подхода, на обложке там всё эпично, а в игре всё более прозаично.
Раньше всё было понятнее, возможностей меньше. А сейчас, мне кажется, если графика в игре ASCII, то и обложку неплохо бы делать такую же, чтоб не вводить в заблуждение.
А фиг знает По-моему то, что после удара стихией, лечится тот, чья это стихия (будь то враг или друг). Это единственный вид лечения. Не люблю стандартные бутыльки в рпг.
Ну да, неплохо. Бутылки - попса.
Неужели не вышла! (хотя, судя по стиму, он её делает в раннем доступе (в феврале будет доступна к продаже), но, как это и бывает, вниманием прессы и игроков он, видимо, обделён)
Не видел эту страницу в стиме. Сделал вывод по тому, что последняя новость на офсайте была 2016. Ну хорошо раз выходит уже скоро.
В копилку занимательных идей, из этого интервью: магия не как боевой аналог меча, а способ исследования мира
Да, так было бы жизненнее. И в своей долгостройной игре я даже хотел чтоб магия была, а полоски маны не было. Вместо этого магия отнимала здоровье или силу из артефактов. И заклинаниями нельзя было бы пуляться как из пейнтбольного ружья. Самые простые заклинания можно было кастовать раз в час, а самые сложные - раз в неделю.
Гораздо важнее о чём основная игра.
Всё таки сейчас я хотел бы занятся этим а-ля кроулером. И главное не растягивать.
Я бы тебе дал свой движок битвы от второй игры (типа как в Героях)
А битву как в героях можно переложить на пошаговое рпг?
У меня нет диска D. Почему бы не сделать C? А дос боксом я никогда не пользовался, это надо читать-разбираться.
Как так нету диска Д, в если найду? Но вообще, навязывать не буду, если загоришься, я тебе подкорректирую пути на нужные, там делов-то.
Да, так было бы жизненнее. И в своей долгостройной игре я даже хотел чтоб магия была, а полоски маны не было. Вместо этого магия отнимала здоровье или силу из артефактов. И заклинаниями нельзя было бы пуляться как из пейнтбольного ружья. Самые простые заклинания можно было кастовать раз в час, а самые сложные - раз в неделю.
Да, эта идея хорошая, и тоже там педалировалась (сильные требования). Я вообще, когда загорелся программировать - была война на Украине, санкции, и я интернет на год отключил, забыв скачать Паскаль. И весь год грезил сюжетной игрой. Начинаем обычным проходимцем, обживаемся в городе, сеем капусту, чтоб накопить на первый меч (ну, там в начале темы наброски где-то есть), занимаемся всякой рутиной. А потом случайно находим школу магии, поступаем туда, сюжетно живём там, учимся сначала академическим предметам, а потом начинаем специализироваться в некромантии. Сначала просто учимся влезать в душу других (в бою редко пригодится), и только потом под присмотром учителя оживляем своего первого мертвеца (по сути по Перумову "Рождение мага"). Когда интернет поставил, я уже чуть подостыл, и первая игра вышла только полусюжетной, хотя пару боссов я туда перенёс, а вторая вообще тупо геймплейная
Всё таки сейчас я хотел бы занятся этим а-ля кроулером. И главное не растягивать.
Так у тебя сколько игр всего было в планах?
А битву как в героях можно переложить на пошаговое рпг?
Ну, у игрока будет переход из глобальной карты в экран боя, а не бой прям в мире игры. Но опять же, мне сейчас не охота в этом особо вазюкаться (ездили двадцатилетнего кота усыплять ), да и движок у тебя явно будет другой. Но если нужны будут какие-то наброски - дам исходники, объяснив в двух словах, мне не жалко. Или помочь с АИ или ещё чем. А в первой игре у меня просто движок обмена ударами, как в jrpg, но он там очень не гибкий, заточен лишь под эту игру.
Я вообще, когда загорелся программировать - была война на Украине, санкции, и я интернет на год отключил, забыв скачать Паскаль. И весь год грезил сюжетной игрой. Начинаем обычным проходимцем, обживаемся в городе, сеем капусту, чтоб накопить на первый меч
Если вас как-то коснулась война, то не лучше ли было бы внести этот опыт в игру?
Так у тебя сколько игр всего было в планах?
Просто я отложил "игру своей мечты" и решил сделать что-то попроще. Типа данжн кроулера, как писал выше. Придерживаясь принципа - если что-то из задумок не идёт, то не буксовать на этом месте, а исключить и идти дальше, лишь бы не получился долгострой.
Вообще, я даже представил себе идею - набить руку и клепать дешёвые данжн кроулеры по несколько штук в год. И назвать компанию "Dungeon Crawler Company". Скажете что глупо, но есть пара привлекательных моментов в этой идее. В каждой игре можно было бы немного менять или обогащать механику. И варировать визуальный стиль, привнося в него псевдо-интеллектуальную сюрреалистичность. Потому что, когда приступаешь к игре, то начинаешь делать тестовую сцену. Наверное, многие берут для этих целей всякие стандартные ассеты. А я просто ищу картинки в интернете и примеряю как текстуры. Мне нравится, например, примерить на модель дерева, вместо нормальной текстуры веток, что-то неподходящее, а на стены, вместо кирпича и досок, поместить текстуру коры дерева. Ну и так далее. И портреты персонажей тоже - хотел найти что-то умеренно фентезийное, а попалось на глаза что-то совсем другое. Например:
Spoiler
Такие случайные находки и сочетания могут сформировать концепцию игры и повлиять на механику. Даже случайно примерив неподходящую текстуру на кнопку интерфейса, можно придти к какой-то идее. Но один я это вряд ли потяну, я всё таки не дизайнер и не художник. И не писатель. Хотя, в плане писательства, я как раз и не хочу в играх делать много текста, детализирующего игровой мир. Но если бы со мной сотрудничал художник-дизайнер, то ему требовалось бы чтоб я подробно расписывал идею и атмосферу, чтоб он понимал, что надо делать? Или не обязательно?
Насколько мы поняли, вы используете блокировщик рекламы в вашем браузере. Скорее всего, это AdBlock или AdBlock Plus.
Учитывая, сколько агрессивной рекламы можно встретить на различных сайтах, это, возможно, и оправданно.
Однако Riot Pixels — пока ещё небольшой сайт, мы существуем в основном на деньги, получаемые от различных
рекламодателей. Пользователей же с установленным AB/ABP на Riot Pixels сейчас — более 30%.
Это очень много.
У блокировщиков рекламы есть еще одно плохое свойство — у вас может «поехать» дизайн или перестанут показываться скриншоты.
Мы не хотим предпринимать активных действий в отношении блокировщиков рекламы (например, закрывать контент) — это
не по-человечески. Однако и безучастно смотреть никак не можем. Поэтому у нас к вам большая просьба — пожалуйста,
внесите Riot Pixels в «белый список» вашего блокировщика. Это поможет нам и дальше жить и развиваться, а вам ничего не будет стоить.
Нажмите на иконке AB/ABP в строке с путём к сайту (в правом углу, слева от звёздочки занесения в закладки)
Разотметьте галочку "Enabled for this site"
Если у вас не открыта панель дополнений внизу браузера, нажмите Ctrl+\
В панели дополнений нажмите на иконке AB/ABP
Отметьте галочку «Отключить на riotpixels.com» или «Отключить на [поддомен].riotpixels.com»
Нажмите правой кнопкой мыши на иконке блокировщика в правом углу браузера
Выберите пункт «Настройки»
Перейдите на закладку «Белый список доменов»
Добавьте к списку домены riotpixels.com и *.riotpixels.com
Перезагрузите страницу Riot Pixels, чтобы изменения вступили в силу