Просмотр полной версии : теория ИИ для 2д игры.
Создаю игру AGGRESSOR http://cs10320.userapi.com/u53856147/98301119/y_cb67e0c8.jpg на движке ALKO-ENGINE.
При создании игровой логики всё было нормально, пока не напоролся на проблему создания ИИ.
Пока-что зачатки ИИ
можете узреть в данной версии.
(управление стрелки <v>)
телепортироваться - "стрелка вниз".
Выбор фильтра клавиши 1-5.
мин. системные требования - ОЗУ 4 метра, процессор x86 совместимый, hdd жлательно не менее метра, GPU - не нужен. Ось -Linux, Windows любые версии.
мин. системные требования - ОЗУ 4 метра, процессор x86 совместимый, hdd жлательно не менее метра, GPU - не нужен. Ось -Linux, Windows любые версии. а что эта тема делает в ZX Spectrum Software ???????????????
Вобщем, нужен совет , как описать ИИ для данного вида платформера.
moroz1999
01.04.2012, 22:14
Эту бы графику - да на спектрум.
Эту бы графику - да на спектрум.
так дерзайте, тайлы я залил.
правда я их рисую в процессе создания игры. Ещё добавлю дополнительные тайлы монстров и двери, блокирующие проход, для их открытия нужно будет собирать ключи и открывать через терминалы....Но это потом, сейчас надо расхлебаться с ИИ.
---------- Post added at 21:23 ---------- Previous post was at 21:21 ----------
так спрайты или тайлы ?
Как бы странно это не звучало, но это тайлы без альфы.
А мой движок просто проходит последовательно по точкам, и если точка на bmp равна R00 G00 B00 , то он вырисовывает пиксел.
ALKO, сделай чтобы в окне работало - глаза ломает
Windowed версия (чуть тормознее):
Тормознутость происходит из-за того, что рисует CPU, а не GPU.
А так же из-за масштабирования.
Причём движок масштабирует не весь экран (как изначально я планировал, но потом чё-то намудрил с виртуальными экранами и передумал), а отдельные тайлы.
---------- Post added at 21:46 ---------- Previous post was at 21:37 ----------
Так вот....сейчас важен AI.
пока-что функция выглядит так:
void ai(char e){
if(flag==false){
int enx=karta.x;
flag=true;}
if(enx<penis.x){mirror=false;}
if(enx>penis.x){mirror=true;}
if(enx<penis.x-144){enx+=3;}
if(enx>penis.x+300){enx-=3;}
zoom(e,enx,144*2);
mirror=false;
}
переменная e - это номер тайла противника
karta.x - начальная координата противника (задаётся на матрице уровня)
penis.x - координата игрока.
zoom() процедура прорисовки отмасштабированного тайла
а что именно ты хочешь от ИИ?
ну в первую очередь размножить (сделать массив хотя б на 3-х противников)
Так как в данный момент не более одного противника на весь экран.
(это кстати ещё один минус движка - не более одной стены на экран и не более одного телепорта)
как-то маловато 1 стена и 1 телепорт
а что мешает добавить еще элементов?
а что мешает добавить еще элементов?
мой слабый мозг...:v2_dizzy_messed:
---------- Post added at 14:00 ---------- Previous post was at 13:57 ----------
цикл проходит по матрице карты, и если он находит стену - устанавливает значение переменной по соответствующей координате.
Дело в том , что переменная одна..........постойте-ка, можно через массив таких переменных сделать!!!
Гениально!!!
---------- Post added at 14:01 ---------- Previous post was at 14:00 ----------
но это дополнительно нужно будет ставить циклы между операторами условий.
---------- Post added at 14:03 ---------- Previous post was at 14:01 ----------
а вот с телепортами сложнее будет....Там вручную условия телепортации "откуда-куда" прописываю, вплоть до появления в строго заданной позиции по координатам.
ALKO, я не знаю как сделано у тебя
но посмотри как сделано например у испанцев в их играх
ftp://ftp.worldofspectrum.org/pub/sinclair/games-extras/MaritriniFreelanceMonsterSlayer_SourceCode.zip
как вам такой вариант ИИ ?
Space - выбор\стрельба (чисто символическая стрельба)
опять не в окне :)
жесть конечно :)
ну графон квадратами то приятнее (ИМХО)
И стиль я затачивал под zx и разрешение пикселей под zx.(посмотрите на титулку 256*192)
NovaStorm
04.04.2012, 15:39
жесть конечно :)
А мне нравится =Р
ALKO, герою по сравнению с монстрами явно не хватает idle анимации, хоть ещё кадр-другой.
ALKO, герою по сравнению с монстрами явно не хватает idle анимации, хоть ещё кадр-другой.
Ну у героя 3 кадра, у монстров 2.
Да и изначально я вообще планировал создать игру для 48кб спектрума, и поэтому так мало тайлов нарисовал.
---------- Post added at 16:27 ---------- Previous post was at 16:08 ----------
щас ломаю бошку, как прикрутить чиптюн.
Конечно есть вариант использовать движок BASS для запуска MOD файлов.
Но тут нужно ещё музыку наваять в стиле EBM, в MIDI очень геморно добиться годного звучания.
NovaStorm
05.04.2012, 08:04
Ну у героя 3 кадра, у монстров 2.
Да и изначально я вообще планировал создать игру для 48кб спектрума, и поэтому так мало тайлов нарисовал.
Я к тому, что в состоянии "покоя" монстров колбасит, а ГГ недвижим аки статический БГ.
Даже на 48к машине можно наверное рассчитывать килов на 30 графики. А если извращаться, то (тк экран не скроллится, а отрисовывается сразу) можно хранить тайлы бека сжатыми, и распаковывать только при выводе.
Я к тому, что в состоянии "покоя" монстров колбасит, а ГГ недвижим аки статический БГ.
Ок....учту.
Даже на 48к машине можно наверное рассчитывать килов на 30 графики. А если извращаться, то (тк экран не скроллится, а отрисовывается сразу) можно хранить тайлы бека сжатыми, и распаковывать только при выводе.
Это да, не спорю....Но для меня всё это осуществить на горбатом очень сложно.
---------- Post added at 16:52 ---------- Previous post was at 16:44 ----------
И ещё....На счёт статического бэкграунда...На самом деле он динамично обновляется.
Так что,если малёхо поднатужиться, то можно абсолютно любой элемент бэкграунда анимировать.
Оцените idle-animation
+ доделал менюшку
PS. желающих(кроме меня) реализовать эту игру на спектруме не появилось?
NovaStorm
06.04.2012, 08:58
>Оцените idle-animation
Ну, даже с одним дополнительным кадром стало лучше. Можно попробовать пушку в лапах наклонно нарисовать, а при беге пару кадров эту пушку из стороны в сторону качать, а при стрельбе чтоб как сейчас горизонтально держал.
Кадры бега наверное помедленнее сменять надо.
>желающих(кроме меня)
Желания-то вагон, а вот реально потянуть - хз. Да и пока не совсем ясно, какой игра должна быть в финале. По текущему её виду, я бы предположил, что стоит развивать как эдакую metroidvani'ю, что-то близкое к Blackthorne. Потому что шутер в таком близком масштабе врядли будет играбелен(враги шмаляют ОЯЕ!, и это выглядит как дОлжно). Но для такой игры нужно будет реально много анимации.
Ну и очень важный момент, 48/128 и наличие/отсутствие скроллинга.
Про скролл в такой игре(по 4px) я и сам задумываюсь в последнее время, но на 48м это для меня пока недостижимо.
Скроллинг не нужен
Если бы я его хотел впендюрить в игру , то впендюрил бы сразу.
Хотелось бы под 48 кб.
На создание игры вдохновился Obliterator'ом....Но в нём мне не нравится управление, дизайн ГГ и выстрелы.
Что же понравилось, так это дизайн монстров.
Опишу момент с выстрелами :
когда AI с крупными габаритами, он постепенно приближается к игроку и урон от его шмаляний больше (аля дробовик).
ежели AI мелкий и шустрый - он должен держаться на расстоянии и урон от его выстрелов больший именно с дальней дистанции (по принципу снайперской винтовки)
---------- Post added at 15:17 ---------- Previous post was at 15:13 ----------
ещё один вид монстров добавлю, которые не будут пулять , а просто атаковать, как к примеру Alien'ы
NovaStorm
06.04.2012, 16:47
Поглядел геймлей Облитератора на Амиге. По-моему, это эталонный случай хреновой попытки скрестить синематик платформер с шутером. Игра ТОРМОЗИТ, она вялая, с долгими анимациями(в том числе попаданий по гг и его падений), как и положено синематик платформеру, но при этом вполне может вылезти пара пушек с потолка и устроить картинку чуть-ли не из буллет-хелл шмапа! Мне вот очень понравилось решение этой проблемы Близзардами в Блэкторне - просто сделали уклонение.
Масштабирование урона от расстояния - имхо лишнее. Да и если такая тварь подползёт поближе логичнее выглядело бы, если б она хватала гг и хавала его =)
Без скроллинга надо как-то решать вопрос стрельбы за экран и беганье монстров между экранами.
>ещё один вид монстров
Пушки из пола/потолка надо - это ж классика.
PS:Я не одобряю, но тебе может и забавно будет...
http://www.charliesgames.com/wordpress/?page_id=18
МЕГАДРАЙВ!!!
Тоже хочу нечто бодобное сделать на opengl.(сайд скроллинг шутер) только без фалусов.
PS.что мне не нравится в играх с закосом под ретроконсоли - при вращении вращаются и пиксели (квадраты)
NovaStorm
06.04.2012, 17:13
>при вращении вращаются и пиксели
Угу, жутко бесит... =Е
Ещё раздражают отсутствие клэшинга и палитры от балды.
http://www.ufunk.net/en/univers-geek/gif-animees-3d-spinning-8-bit-sprites/
NovaStorm
08.04.2012, 10:30
Можно попробовать пушку в лапах наклонно нарисовать, а при беге пару кадров эту пушку из стороны в сторону качать
Вот так
http://www.avatarist.com/avatars/Games/Sprites/Bill-from-Contra.gif
Жаль такие сиськи на спеке не нарисуешь =(
http://www.grasskiller.ru/fotos/folders/158/Lucia_Run_by_Kuritarou.gif
Надо бы ГГ наверное ноги отрезать и анимировать отдельно.
Сейчас заметил, ты не оставляешь по краям спрайтов по пикселю на маску, это может сильно аукнуться в дальнейшем. Я, скорее, сторонник "рамки" вокруг персонажей.
Offtop:
http://www.youtube.com/watch?feature=player_embedded&v=UCmMebE0pIg
http://www.youtube.com/watch?src_vid=UCmMebE0pIg&annotation_id=annotation_722522&feature=iv&v=7omF6b576bA
http://www.youtube.com/watch?v=R4tJnjkVSnM&feature=plcp&context=C4109dadVDvjVQa1PpcFNcg2cHmJBfMNlGwFvr0X34 IDiGsbTk5ng%3D
И другие ништяки от leehardcastle =)
moroz1999
08.04.2012, 16:00
Готового движка, чтобы воплотить задумку на 48к, наверное, нет. А вот готовый движок под ZX Evolution есть, может его попробовать? Всяко увеличит шансы на то, что хоть что-нибудь получится.
Жаль такие сиськи на спеке не нарисуешь =(
Сиське - да зачётные.
Но вот пропорции ног - не очень.
Сейчас заметил, ты не оставляешь по краям спрайтов по пикселю на маску, это может сильно аукнуться в дальнейшем. Я, скорее, сторонник "рамки" вокруг персонажей.
над маской работаю.
---------- Post added at 15:59 ---------- Previous post was at 15:58 ----------
только нужно знать какие биты отвечают за красный цвет (решил его использовать в качестве маски)
Сюрфейс 8-ми битный.
Нужно проверять состояние битов красного цвета.
---------- Post added at 16:02 ---------- Previous post was at 15:59 ----------
и тех врагов с оружием убрал....Пожалуй они будут главарями.
---------- Post added at 16:04 ---------- Previous post was at 16:02 ----------
Готового движка, чтобы воплотить задумку на 48к
А как же exolon-подобные игры, коих сотни?
ALKO, а игра будет нецветная?
ALKO, а игра будет нецветная?
на ПКешке цветная - чёрный и серый цвета.
эффект телепортации (исчезание\появление) прибить бы ровно к телепортаторам, а не там где стоит герой. )
Щас гемор с маской.
Чему будет равен краный цвет в восмибитном изображении?
нужно значение в DEC системе счисления.
если в 32-х битной FF0000 (HEX)
Чему будет равен краный цвет в восмибитном изображении?
Про палитру слышал?
Про палитру слышал?
Не только слышал, но и видел.
---------- Post added at 18:37 ---------- Previous post was at 18:37 ----------
и?
NovaStorm
08.04.2012, 20:38
Маска традиционно 0xFF00FF.
И в SDL ЕМНИП пох на биты, там же просто colorkey задаётся вроде.
Не только слышал, но и видел.
---------- Post added at 18:37 ---------- Previous post was at 18:37 ----------
и?
Красный цвет в 8-битном изображении будет равен индексу цвета 0xff0000 в палитре.
ff0000 - 24-х битное значение.
в 8-мибите это ff , то есть 255 чтоли?
в 8-мибите это ff , то есть 255 чтоли?
Откуда ты взял, что это ff?
И в SDL ЕМНИП пох на биты, там же просто colorkey задаётся вроде.
У меня движок не сурфэйсами рисует , а попиксельно.
---------- Post added at 20:15 ---------- Previous post was at 20:14 ----------
Откуда ты взял, что это ff?
а как приравнять 24 к 8 битам?
---------- Post added at 20:16 ---------- Previous post was at 20:15 ----------
в 24-х разрядном коде первый байт отвечает за красный цвет, а 8-ми битах байт один.
---------- Post added at 20:19 ---------- Previous post was at 20:16 ----------
тут вроде написано 3- бита отведено на красный.
это 11100000 bin ?
http://ru.wikipedia.org/wiki/%D0%93%D0%BB%D1%83%D0%B1%D0%B8%D0%BD%D0%B0_%D1%86% D0%B2%D0%B5%D1%82%D0%B0
---------- Post added at 20:19 ---------- Previous post was at 20:19 ----------
224 DEC ???
---------- Post added at 20:24 ---------- Previous post was at 20:19 ----------
....не...всё-таки не 224
а как приравнять 24 к 8 битам?
---------- Post added at 20:16 ---------- Previous post was at 20:15 ----------
в 24-х разрядном коде первый байт отвечает за красный цвет, а 8-ми битах байт один.
---------- Post added at 20:19 ---------- Previous post was at 20:16 ----------
тут вроде написано 3- бита отведено на красный.
это 11100000 bin ?
http://ru.wikipedia.org/wiki/%D0%93%...B5%D1%82%D0%B0
---------- Post added at 20:19 ---------- Previous post was at 20:19 ----------
224 DEC ???
---------- Post added at 20:24 ---------- Previous post was at 20:19 ----------
....не...всё-таки не 224
Возвращаемся к изначальному вопросу. Расскажи, что такое палитра (это я спрашивал несколькими постами выше).
пол-литра это как литр, только половина.
В современных графических редакторах зачастую представлена в виде цветового круга.
Код цвета отображается шестнадцатиричным 24-х разрядным числом.
А к чему сей вопрос?
Код цвета отображается шестнадцатиричным 24-х разрядным числом.
А к чему сей вопрос?
Читать до просветления http://ru.wikipedia.org/wiki/Палитра_(компьютерная_граф ка)
то есть вместо того, что б сказать какой всё-таки код у красного цвета, проще ссылками на педовикию закидать...
Спасибо и на том...
то есть вместо того, что б сказать какой всё-таки код у красного цвета, проще ссылками на педовикию закидать...
Спасибо и на том...
"Вместо того, чтоб сказать какой по порядку книгой на моей полке является букварь, мне рассказывают о том, как считать предметы"
это выходит, что и BMP является индексированым файлом?
это выходит, что и BMP является индексированым файлом?
8-битный- да.
переделываю агрессора под аппаратное 2д, в этом движке допустимо наличие нескольких стен и телепортов на одном экране.
для сравнения SDL
http://sderni.ru/134736
и HGE
http://sderni.ru/134737
Круто! А когда будет мясо?
Круто! А когда будет мясо?
мясо уже есть, но глав. ге-й пока-что неуязвим.
Если клепать все уровни по одному принципу, то игра уже готова.
Но я хочу разнообразить геймплей. Добавлю ещё сайд-скроллер.
---------- Post added at 01:59 ---------- Previous post was at 01:57 ----------
Сложность построения уровней только в телепортах заключается, там вручную приходится прописывать условия if else - куда и откуда телепортировать, а так можно было бы конструктор уровня создать , но это лишняя морока.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot