Abyss
Модератор: Jolly Roger
Abyss
Дубль 2.
Разработка опять уткнулась в тупик, из-за большого разрастания кода и отсутствия пресловутого ООП. Поэтому проект плавно переехал на рельсы понравившегося мне Ruby, на котором я и начну его с нуля. Что ж, надеюсь у меня что-нибудь получится.
Good Luck!
Разработка опять уткнулась в тупик, из-за большого разрастания кода и отсутствия пресловутого ООП. Поэтому проект плавно переехал на рельсы понравившегося мне Ruby, на котором я и начну его с нуля. Что ж, надеюсь у меня что-нибудь получится.
Good Luck!
Последний раз редактировалось JustHarry 22 мар 2011, 08:46, всего редактировалось 28 раз.
Re: Abyss
Все работает, коллега. Движок - готов. Осталось всего-ничего, несколько лет покорпеть.
Re: Abyss
надо нажимать маленькую y, может из-за этого.Почему-то имя не вводится... при нажатие Enter "File not found"
Если нажать любую клавишу кроме у, выбирается Load Game. Сам знаю, что плохо, но до завтра оставлю так.
Потом поправлю, сделаю меню нормальное.
Re: Abyss
понятно теперь.
мне понравилась эта фишка с фразочками оформленными как в комиксах =D> (на скрине правда на клетку выше уехало облачко и фраза другая...)
мне понравилась эта фишка с фразочками оформленными как в комиксах =D> (на скрине правда на клетку выше уехало облачко и фраза другая...)
Re: Abyss
На скрине еще не доделанная фишка. Насчет фраз: их будет достаточно большое количество и у игрока и у монстров, так что встречи с ними будут запоминаться, особенно если уникальных монстров озвучить.мне понравилась эта фишка с фразочками оформленными как в комиксах =D> (на скрине правда на клетку выше уехало облачко и фраза другая...)
Re: Abyss
Вообщем здесь такая штука, если проект запускается под русской раскладкой, нажимается y, раскладка меняется на английскую (shift + alt), печатается имя, при нажатии enter появляется это сообщение... Это происходит стабильно. Если при окне где нужно нажать y\n сменить раскладку и только потом нажимать y, то все нормальноПочему-то имя не вводится... при нажатие Enter "File not found"
Re: Abyss
Что касается системы тайминга.
Пока есть только такая идея.
У каждого монстра будут параметры time и speed.
Например, у игрока они будут равны 10 и 4, а у монстра 4 и 5.
Когда игрок выполняет действие, требующее N времени, то он объявляет его, и дается отсчет на эти самые N времени.
Ходит первым самый быстрый монстр. Он выполняет свои действия данное количество времени. Потом более медленный монстр и т.д. Игрок тоже подходит под эти действия.
К концу хода параметры time будут меняться.
Например:
Игрок, time=10, speed=4.
Крыса, time = 3, speed = 10.
Огр, time = 11, speed=20.
Игрок ходит и объявляет действие на 10 единиц времени.
Крыса ходит 10\3, 3 раза, и у нее остается к концу хода 1 единица времени. Конечно же, она может и не ходить, или сходить всего один раз, иначе с 1 единицей времени ей придется пропустить сл.ход.
Игрок ходит 1 раз. Его время к сл. ходу опять равно 10.
Огр не ходит. От его времени отнимается 10(=1). Он сходит на сл. ход.
Вот такие нехитрые итерации. В процессе написания узнаем слабости задумки=)
Пока есть только такая идея.
У каждого монстра будут параметры time и speed.
Например, у игрока они будут равны 10 и 4, а у монстра 4 и 5.
Когда игрок выполняет действие, требующее N времени, то он объявляет его, и дается отсчет на эти самые N времени.
Ходит первым самый быстрый монстр. Он выполняет свои действия данное количество времени. Потом более медленный монстр и т.д. Игрок тоже подходит под эти действия.
К концу хода параметры time будут меняться.
Например:
Игрок, time=10, speed=4.
Крыса, time = 3, speed = 10.
Огр, time = 11, speed=20.
Игрок ходит и объявляет действие на 10 единиц времени.
Крыса ходит 10\3, 3 раза, и у нее остается к концу хода 1 единица времени. Конечно же, она может и не ходить, или сходить всего один раз, иначе с 1 единицей времени ей придется пропустить сл.ход.
Игрок ходит 1 раз. Его время к сл. ходу опять равно 10.
Огр не ходит. От его времени отнимается 10(=1). Он сходит на сл. ход.
Вот такие нехитрые итерации. В процессе написания узнаем слабости задумки=)
Последний раз редактировалось JustHarry 28 фев 2011, 07:15, всего редактировалось 1 раз.
- Jolly Roger
- Сообщения: 2973
- Зарегистрирован: 27 ноя 2009, 09:10
- Откуда: Minsk, Belarus
Re: Abyss
Интересно, а что там ещё с AI будет?
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.
Re: Abyss
?Интересно, а что там ещё с AI будет?
- Jolly Roger
- Сообщения: 2973
- Зарегистрирован: 27 ноя 2009, 09:10
- Откуда: Minsk, Belarus
Re: Abyss
Ну как ты будешь реализовывать AI, просто подошёл к этому и интересуюсь.JustHarry писал(а):?Интересно, а что там ещё с AI будет?
Книги по этой теме кусачие в плане цен, а будет ли, что полезное, вот вопрос.
Эх! был бы свой Макконнелл от AI!
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.
Re: Abyss
Сам впервые занялся этим всерьез.Ну как ты будешь реализовывать AI, просто подошёл к этому и интересуюсь.
Книги по этой теме кусачие в плане цен, а будет ли, что полезное, вот вопрос.
Эх! был бы свой Макконнелл от AI!
Пока делаю кирпичики для монстров, из которых они будут строить свое мышление - возможность определять обстановку вокруг, видеть игрока, находить путь в точку, и т.д. Собственно первоначальный ИИ получится самый простой:
1) если монстр будет видеть игрока, он будет идти за ним.
2)Бой. Об боевом AI пока ничего говорить не буду, у монстров даже хп сейчас нет
3) если у него останется 10-20, или n процентов хп, он будет линять. Реализуется тоже несложно. При этом убегать, это не значит просто идти в какую клетку. Монстры должны активно юзать всякие магические плюшки, блинк, телепорт, пьяное дыхание, и т.д, чтобы отстать от врага. Также копать стены и закапывать их назад(вот, про эту способность я забыл!).
В остальное время монстры будут тупо рандомно ходить по данжону, время от времени юзать некоторые способности, которые, кстати, активно должны(по идее) использовать.
Алсо, хотелось бы запилить простенький сенсорный ИИ, как я делал в прошлом недопроекте про червяков. Там у каждой клетки был параметр noise, и если монстры "видели" шумную клетку, то ползли на нее. Причем каждый ход они ползли на самую близкую клетку шума, то есть шум распространялся в течение одного хода, и можно было отвлекать их от нужного направления. Естественно с видящими монстрами такое не прокатит, у них приоритет - цель, которую монстр видит. Но все равно, сенсорный ИИ (самый простой) довольно несложен в реализации, и эффективен. По крайней мере, позволяет монстрам догонять противника, которого они потеряли из поля зрения. Хотя это не основное его преимущество.
- Jolly Roger
- Сообщения: 2973
- Зарегистрирован: 27 ноя 2009, 09:10
- Откуда: Minsk, Belarus
Re: Abyss
Хмм... тут понимаешь, какая загогулина. Сделать шибко умный (для рогалика, те 2D игры.) AI нет ничего проще.JustHarry писал(а):Сам впервые занялся этим всерьез.Ну как ты будешь реализовывать AI, просто подошёл к этому и интересуюсь.
Книги по этой теме кусачие в плане цен, а будет ли, что полезное, вот вопрос.
Эх! был бы свой Макконнелл от AI!
Пока делаю кирпичики для монстров, из которых они будут строить свое мышление - возможность определять обстановку вокруг, видеть игрока, находить путь в точку, и т.д. Собственно первоначальный ИИ получится самый простой:
1) если монстр будет видеть игрока, он будет идти за ним.
2)Бой. Об боевом AI пока ничего говорить не буду, у монстров даже хп сейчас нет
3) если у него останется 10-20, или n процентов хп, он будет линять. Реализуется тоже несложно. При этом убегать, это не значит просто идти в какую клетку. Монстры должны активно юзать всякие магические плюшки, блинк, телепорт, пьяное дыхание, и т.д, чтобы отстать от врага. Также копать стены и закапывать их назад(вот, про эту способность я забыл!).
В остальное время монстры будут тупо рандомно ходить по данжону, время от времени юзать некоторые способности, которые, кстати, активно должны(по идее) использовать.
Алсо, хотелось бы запилить простенький сенсорный ИИ, как я делал в прошлом недопроекте про червяков. Там у каждой клетки был параметр noise, и если монстры "видели" шумную клетку, то ползли на нее. Причем каждый ход они ползли на самую близкую клетку шума, то есть шум распространялся в течение одного хода, и можно было отвлекать их от нужного направления. Естественно с видящими монстрами такое не прокатит, у них приоритет - цель, которую монстр видит. Но все равно, сенсорный ИИ (самый простой) довольно несложен в реализации, и эффективен. По крайней мере, позволяет монстрам догонять противника, которого они потеряли из поля зрения. Хотя это не основное его преимущество.
Сделать такой AI, чтобы он при этом не требовал дополнительную восьмипроцессорную рабочую станцию для свой обработки, вот вопрос достойный решения.
Уверен же, что существуют уже проработанные алгоритмы и правила, не зря вспомнил Макконнелла, выработанные по`том, кровью и процессорным временем.
EDIT:
Вот например Космические Рейнджеры, какой там AI! вай конфетка и быстрый, скотина такая!
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.
Re: Abyss
Эм... разве это простой АИ? Это уже интеллект, достойный машинок из Deus Ex, хехехе.Сделать такой AI, чтобы он при этом не требовал дополнительную восьмипроцессорную рабочую станцию для свой обработки, вот вопрос достойный решения.
Я не думаю, что простой АИ будет требовать большего, чем нужно. Ибо в моей игре все монстры вне поля зрения игрока будут ограничиваться очень примитивными действиями, и только те 5-10, которых игрок видит, будут использовать его по полной.
Пока что, самый затратный по времени алгоритм это поиск в ширину для нахождения пути. Он работает по сути за квадрат, но его использовать будут только активные монстры, которые увидели или услышали игрока. Так что вряд ли это дело будет тормозить.
Мне нравится изобретать велосипеды, поэтому я пока сейчас ничего не использую. Когда понадобится избавляться от тормозов, тогда может и займусь тотальной оптимизацией. Где-то нашел статью про нейронные сети и ИИ, но такую идею воплощать в жизнь еще рано. очень сложно.Уверен же, что существуют уже проработанные алгоритмы и правила, не зря вспомнил Макконнелла, выработанные по`том, кровью и процессорным временем.
Еще бы, написан самим Гусаровым. Он то в ИИ сечет, это его хобби, считай.Вот например Космические Рейнджеры, какой там AI! вай конфетка и быстрый, скотина такая!
- Jolly Roger
- Сообщения: 2973
- Зарегистрирован: 27 ноя 2009, 09:10
- Откуда: Minsk, Belarus
Re: Abyss
Хмм. попробую пояснить свои идею, я не против изобретения велосипеда, но тут есть большая разница,
собирать велосипед из готовых частей, самому гнуть трубы или же вообще с нуля, по сути, изобретая всю мастерскую, конструировать трубогиб, сварочник, даже не представляя себе, как они устроены. Вот это уже перебор, ИМХО.
Скажем Макконнелл подсказывает про испльзование переменных перечислимого типа, но с добавление разделительных индексов и ошибок, те
Те до этого нужно доходить самому, тратя кучу времени впустую и генеря заранее бестолковый код?
Зачем с муками и пыхтением из бан на неделю и палочек собирать тот же трубогиб, если можно сразу начать делать толковый велосипед?
Конечному потребителю, в нашем случае игроку-рогаликолюбу, глубоко фиалетово, какие мы с тобой умники и заново придумали алгоритм, что до нас ещё 100500 лет назад сформулировал Дейкстра, им важен работающий продукт, с максимальным количеством фич, которых будет куда меньше, если заниматься бегом на месте.
собирать велосипед из готовых частей, самому гнуть трубы или же вообще с нуля, по сути, изобретая всю мастерскую, конструировать трубогиб, сварочник, даже не представляя себе, как они устроены. Вот это уже перебор, ИМХО.
Скажем Макконнелл подсказывает про испльзование переменных перечислимого типа, но с добавление разделительных индексов и ошибок, те
Код: Выделить всё
Te_Variable = (e_Variable_ERROR = 0,
e_First_Variable = 1,
e_Variable_MIAU = 1,
e_Variable _GAF = 2,
e_Last_Variable = 2);
Зачем с муками и пыхтением из бан на неделю и палочек собирать тот же трубогиб, если можно сразу начать делать толковый велосипед?
Конечному потребителю, в нашем случае игроку-рогаликолюбу, глубоко фиалетово, какие мы с тобой умники и заново придумали алгоритм, что до нас ещё 100500 лет назад сформулировал Дейкстра, им важен работающий продукт, с максимальным количеством фич, которых будет куда меньше, если заниматься бегом на месте.
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя