Результаты поиска
| |
TonyForge | Дата: Суббота, 11 Июля 2015, 17:43 | Сообщение # 21 | Тема: Обновление большого количества объектов в реальном времени |
частый гость
Сейчас нет на сайте
| Цитата Достаточно будет сделать обновление по схеме Loading – постепенно. Расскажи поподробнее, пожалуйста, или ссылочку дай где почитать, что за схема такая.
Вообще в моем представлении если не каждый фрейм обновлять, то это: - либо обновлять все, но с меньшей частотой кадров и тогда для отрисовки нужна интерполяция (на больших скоростях объекты могут себя нестабильно вести, пролетать сквозь препятствия и т.п., надо подбирать шаг). - либо обновлять объекты не все разом, а порциями и тогда чем больше объектов, тем сильнее будет заметна задержка в реакции на события в игре. Вроде тоже не хорошо.
Все-таки 30 раз в секунду обновлять все объекты - это некий залог стабильности и предсказуемости работы игры.
|
|
| |
TonyForge | Дата: Суббота, 11 Июля 2015, 13:39 | Сообщение # 22 | Тема: Обновление большого количества объектов в реальном времени |
частый гость
Сейчас нет на сайте
| Gudleifr, Ты навел меня на хорошую мысль. Надо разбить корабли на два 2 класса: NPC и мобы. - Мобы это полиция, пираты, локальные грузовые корабли, вобщем все, что живет внутри сектора никогда его не покидая. И их как раз создавать при загрузке сектора и удалять при выгрузке, а количество их в секторе определять некоторыми параметрами (вероятностями или пропорциями). - NPC это уже полноценные виртуальные игроки, которые могут перемещаться между секторами, садиться и взлетать со станций, покупать себе охрану и т.д. Главное, что их число жестко ограничено и не слишком большое.
MR_Borg, Думаю я тебя понял, из твоей идеи тоже можно кое что почерпнуть. Думаю для NPC можно будет сделать два разных алгоритма обновления: 1 - когда NPC и игрок находятся в одном секторе, тут все без упрощений 2 - когда NPC в одном из соседних секторов и вот тут как раз обновлять его по упрощенной модели, как ты предлагаешь, т.е. порезать по максимуму все не нужные вычисления поворотов, огибания препятствий и т.п. Рассматривать их как материальные точки с радиусом и простой логикой взаимодействия. При касании радиусов разных кораблей вычислять сразу итог касания (коснулся с пиратом - вычислился результат схватки, коснулся станции - вычислился результат пребывания на станции и т.д.)
Вообще ребята спасибо, думаю если все это вместе реализовать + в случае сохранения тормозов обновлять не каждый кадр, то должно получиться.
Сообщение отредактировал TonyForge - Суббота, 11 Июля 2015, 13:40 |
|
| |
TonyForge | Дата: Суббота, 11 Июля 2015, 12:55 | Сообщение # 23 | Тема: Обновление большого количества объектов в реальном времени |
частый гость
Сейчас нет на сайте
| MR_Borg, Тоже думал про вариант с упрощением вычислений, но не понятно как быть с событиями, которые мы пропускаем перебрасывая корабль сразу в точку назначения (по пути на него могли напасть пираты, которые как раз летели тем же курсом и в заранее неизвестной точке пересеклись с кораблем и сбили его, это просто как пример. Учитывая, что корабли у меня выбирают курс с помощью steering behaviors, то заранее предсказать куда корабль свернет сложно, слишком много факторов нужно учитывать, к примеру ему по пути мог попасться астероид и облетая его он наткнулся на пиратов, не предсказуемо). Насчет схватки согласен, если поймать сам момент начала боя, то можно все упростить в этом месте до простого броска кубика и подсчета очков. Так если подумать, то поймать момент тоже не очень просто (см. выше про характер движения кораблей в мире).
Т.е. понятно, что упрощение нужно, но слишком сильно упрощать не хочется.
Сообщение отредактировал TonyForge - Суббота, 11 Июля 2015, 12:58 |
|
| |
TonyForge | Дата: Суббота, 11 Июля 2015, 12:27 | Сообщение # 24 | Тема: Обновление большого количества объектов в реальном времени |
частый гость
Сейчас нет на сайте
| Всем привет!
Делаю реалтаймовый космосим (3D, только сингл, платформа PC). Игровая вселенная разбита на секторы (каждый сектор как отдельная локация-кубик, с планетами, станциями и кораблями). Вот такие возможности хочется реализовать для кораблей: - взаимодействие со станциями (посадка/взлет, выполнение некоторого алгоритма на станции, к примеру покупка оборудования, груза) - взаимодействие между кораблями (навигация через steering behaviors, без поиска путей, выполнение некоторого не очень сложного алгоритма имитирующего ИИ, к примеру выбор врагов/друзей, атаковать или преследовать врагов, защищать друзей) - переход кораблей между секторами (хочется, чтобы корабли могли последовать за игроком или летать с грузом на планеты в соседних секторах и т.п.)
При этом сама игра в реальном времени, но когда игрок переходит между секторами можно выполнять любое количество операций (все равно игрок будет смотреть экран загрузки), но пока игрок внутри сектора летает происходящее в других секторах на паузу нельзя поставить (по крайней мере очень не хочется).
Проверил, уже 500 кораблей только с навигацией через steering behaviors и без отрисовки моделей сильно просаживают FPS (неиграбельно). Т.е. в лучшем случае в реальном времени я при текущем подходе смогу обновлять всего пару сотен кораблей на весь игровой мир. Вроде маловато.
Собственно вопрос: как в таком случае быть с производительностью игры? Может у кого-то есть какие-то идеи по организации процесса обновления объектов?
Пока у меня только одна мысль появилась: Ограничить количество кораблей на один сектор (штук 10-20) и обновлять корабли лимитированными порциями распределяя вычисления по времени. А именно: чтобы в секторе игрока обновлялись все корабли за один кадр, в соседних секторах уже за два кадра, в еще более удаленных уже за 3 кадра и так далее. Чем дальше сектор от игрока, тем сильнее размазывать во времени обновление кораблей. Получится что-то вроде замедления времени в удаленных секторах. При этом при переходе игрока в соседний сектор синхронизировать весь мир (до обновить нужное количество раз все корабли в мире, т.к. во время загрузки как я выше уже писал можно сколько угодно вычислений сделать).
Еще был вариант вообще оставить только синхронизацию мира во время перехода игрока между секторами (т.е. не обновлять соседние сектора в реальном времени, а только синхронизировать в момент перехода). Но тогда как быть с кораблями которые должны между секторами летать, они получается не смогут прилететь, пока игрок не покинет текущий сектор и не перейдет в другой.
Сообщение отредактировал TonyForge - Суббота, 11 Июля 2015, 12:31 |
|
| |
TonyForge | Дата: Суббота, 31 Января 2015, 09:12 | Сообщение # 25 | Тема: [2D] - Тулумба [Android, Arcade] |
частый гость
Сейчас нет на сайте
| Жанр игры: Arcade Движок: AndEngine Пространство: 2d Похожие игры: Ice Climber Платформы: Android 3.0+ Тип лицензии распространения: (некоммерческая) Домашняя страничка игры: http://vk.com/tonyforgegames
Описание: Tulumba - это игра о нелегком пути кусочка пресного теста, в стремлении подняться выше облаков с помощью шапки-зонтика и попутного ветра. Так как попутный ветер в мире Тулумбы не дешев и создается только методом научного тыка, отдуваться приходится, конечно же, игроку. На высоте 1000 этажей нас ждет вечеринка с друзьями Тулумбы, так что пальцы в руки и вперед, навстречу облакам!
По пути Тулумба собирает звездочки, протискивается между препятствиями, совершает головокружительные падения, аки Икар с небес, погружает свое тельце в защитные пузыри и вообще всячески получает удовольствие от процесса. Игрок же тем временем стирает в мозоли свои дрожащие пальцы и зорким вылупленным глазом непрерывно следит за ускорением свободного падения Тулумбы. Испариной покрывается его напряженное лицо, когда в очередной раз Тулумба, лишь едва коснувшись препятствия, теряет свою шапочку-зонтик и устремляется в головокружительное пике.
Да, гравитация в этой игре побеждает очень часто, в этом вся соль. Редкие передышки, пока Тулумба посиживает на облаке, можно использовать, чтобы накатить карвалольчику, пожаловаться на нелегкую судьбу своим друзьям, ну а после снова продолжается бесконечный подъем.
Скриншоты:
Скачать APK: Tulumba APK
|
|
| |
TonyForge | Дата: Среда, 03 Декабря 2014, 08:01 | Сообщение # 26 | Тема: Разработка игры |
частый гость
Сейчас нет на сайте
| Еще ведь Blitz3D недавно стал бесплатным, хорошо подойдет чтобы простенький шутер или тот же tower defence сделать. И 3d и 2d можно сделать, в его составе куча примеров идет, все необходимое (графика,звук,ввод/вывод,сеть) там есть.
|
|
| |
TonyForge | Дата: Четверг, 20 Ноября 2014, 22:55 | Сообщение # 27 | Тема: Оружие в атмосфере с взрывоопасными газами |
частый гость
Сейчас нет на сайте
| Водомет, Винтовка Гаусса, noise-ган (это который звуком убивает), пси-оружие
Сообщение отредактировал TonyForge - Четверг, 20 Ноября 2014, 22:58 |
|
| |
TonyForge | Дата: Понедельник, 17 Ноября 2014, 23:18 | Сообщение # 28 | Тема: [2D] Den of Evil [TDS] |
частый гость
Сейчас нет на сайте
| Спасибо
Уже пробовали понажимать на картины на стенах, или полки? Иногда нужно чтобы герой был повернут лицом к к ним, чтобы открылись секретные двери. Кстати, некоторые западни срабатывают только при определенных условиях (не повесили все картины в комнате, прежде чем открывать сундук в центре комнаты и т.п.).
Еще рекомендую когда найдете золотой ключ (он нужен чтобы открыть главные ворота во дворе) сходить на самый нижний уровень в тюрьму, одна из камер открывается как раз таким ключом. К слову в игре не 3, а 4 вида оружия.
Ну и самом собой в конце игры будет босс, на последнем уровне сложности я его и сам убить ни разу не смог
|
|
| |
TonyForge | Дата: Понедельник, 17 Ноября 2014, 20:01 | Сообщение # 29 | Тема: [2D] Den of Evil [TDS] |
частый гость
Сейчас нет на сайте
| Жанр: Top-Down шутер про особняк с нежитью Технологии: Flash Описание: Герой ищет выход из зловещего особняка, попутно отстреливая зомбаков и подобную нечисть. Запутанные лабиринты, внезапные засады с монстрами и потайные комнаты в комплекте. Игра делалась в качестве хобби, пришло время ей поделиться с общественностью, комментарии приветствуются В планах попробовать сделать продолжение или другую игру на основе этой.
Управление: WSAD (или стрелки) + Мышь С или ENTER - для открывания дверей и ящиков, перемещения по лестницам, взаимодействия с другими объектами (к примеру, чтобы нажать на картину в стене, открывающую потайную дверь). 1,2,3 - для смены оружия ESC - пауза
Звуковое сопровождение можно отключить кнопочкой в левом верхнем углу
Играть в браузере: https://dl.dropbox.com/s/s77tbl2cax9juvq/denofevilplay.html
Скачать: https://www.dropbox.com/s/48mmv3039o9sph9/denofevil.swf?dl=0
Скриншоты:
|
|
| |
|