I'm not dead... yet.
Решил в свободное время начать делать компьютерную игру. Это должно стать трехмерной стратегией. Основными фишками будет то, что в ней воевать будут роботы, которых надо будет конструировать из набора запчастей. То есть не будет каких-то фиксированных юнитов. Будет несколько видов ходовых частей, корпусов, брони, много разного оружия и вундервафель. и игрок сможет это компоновать как хочет, получая юниты разных классов. Потом он будет строить армады роботов по своим проектам и отправляться громить врага. Также система повреждений будет больше напоминать варгейм - никаких полосок хелсов у юнитов. Каждый снаряд или поражает цель, или не поражает. Хорошая броня всего лишь понижает шанс удачного попадания, а хорошая пушка - всего лишь повышает. Еще хотелось бы сделать по-настоящему умных юнитов - чтобы не получилось как сейчас - один солдат воюет с врагом, а другие стоят в пяти шагах от них и не обращают никакого внимания на бой, пока игрок не щелкнет мышкой. С другой стороны, не хотелось бы, чтобы все юниты сами бросались в самоубийственную атаку на вражескую базу, завидев какое-то движение с той стороны. Надо сделать чтобы они сами могли оценивать ситуацию и игрок мог заранее определять их поведение в различных ситуациях. А может я забью на это болт. В общем планируется много интересных фишек, продумывать всю игровую механику я доверил одному человеку, который очень увлекается стратегиями и варгеймами. Авось чего и выйдет.
Вот правда моделлера и маппера нам не хватает, да и самого редактора мап пока нет...
и еще проблемы с графическим движком. Я начал разбираться в Ogre3d, но уж чересчур он тормозной. На моем домашнем компе тормозит даже то, что я наваял сейчас... просто случайно генерирующаяся карта высот, на базе которой строится "ландшафт". В программе используется всего две текстуры и выдранная из SDK модель робота (нет, я не собираюсь вставлять ее в игру), а размер карты высот составляет 80 на 80 (в игре я планировал карты размером минимум 1000х1000). В общем убожество полное, но даже это выдает всего 20-60 фпс. Буду курить мануалы по оптимизации. Или, может, перейти на какой-нибудь другой бесплатный движок, пока еще не поздно?..
п.с: скрин - cs922.vkontakte.ru/u1674956/98011260/x_ceb8db8a...
Вот правда моделлера и маппера нам не хватает, да и самого редактора мап пока нет...
и еще проблемы с графическим движком. Я начал разбираться в Ogre3d, но уж чересчур он тормозной. На моем домашнем компе тормозит даже то, что я наваял сейчас... просто случайно генерирующаяся карта высот, на базе которой строится "ландшафт". В программе используется всего две текстуры и выдранная из SDK модель робота (нет, я не собираюсь вставлять ее в игру), а размер карты высот составляет 80 на 80 (в игре я планировал карты размером минимум 1000х1000). В общем убожество полное, но даже это выдает всего 20-60 фпс. Буду курить мануалы по оптимизации. Или, может, перейти на какой-нибудь другой бесплатный движок, пока еще не поздно?..
п.с: скрин - cs922.vkontakte.ru/u1674956/98011260/x_ceb8db8a...
Напиши AI, который сможет победить любого человека в Го. Такой AI сможет управлять даже реальными армия довольно эффективно.
Ogre 3d тормозит в режиме дебага, в релизном должен выдавать вполне приличные 100-120 фпс, проверь ключи компиляции.
almaburu Просто разница в скорости между рабочим и домашним компом поразительная. Да, на работе проц побыстрее (селерон 1.8 против селерона 1.2) и оперативки гиг, а не полгига. Но то, что на работе даже в дебаге выдавало приличную скорость, дома подвесило комп минут на десять, в течение которых я пытался хоть как-то убить процесс. В любом случае, оптимизация нужна. Вообще, надо почитать как делаются большие ландшафты. Пока что ничего полезного не нагуглил. Я, конечно, могу разбить ландшафт на куски, чтобы не просчитывать сразу все, но даже первоначальное построение буфера вершин/нормалей/текстурных координат в огровских объектах при инициализации будет занимать несколько минут, а это не гут для такой примитивной графики.
Правильность доставания координат из массива и оптимизацию обхода опустим. Если закомментировать операторы, связанные с ManualObject, то обработка массива занимает 15-30 миллисекунд, в противном случае - 750-800.
думаю попробовать пихнуть этот набор треугольников в StaticGeometry, может будет лучше работать. Еще я пробовал создать меш и запихнуть в него вершины, обращаясь напрямую к его внутренним буферам. Мне кажется так должно быть побыстрее. Но, несмотря на все усилия, на выходе получалась пустота. То есть меш есть, массивы не пустые, но на экране он почему-то не отображается. Хотя код брал из примера на Ogre Wiki.
У огра есть нативная поддержка LOD, и обычно делают динамическую смену сетки для больших ландшафтов.
Есть классические реализации вроде такой - www.youtube.com/watch?v=I3_pb6Gq5hs&translated=... (700fps)
www.ogre3d.org/forums/viewtopic.php?f=11&t=4984...
И обращаю внимание еще раз, не жди на дебаге больше чем 10-12 fps, он всегда медленнее на пару порядков.
Можно еще задам вопрос, раз ты в этом разбираешься?) нужен редактор уровней. Просто не хочу изобретать велосипед. Чтобы там было удобно редактировать карту высот. Еще желательно чтобы можно было назначать для каждой клеточки свои свойства (тип материала) и кидать на карту разные произвольные объекты, но в принципе это я и сам могу запилить... И сохранять в каком-нибудь несложном формате, или вообще в XML. Должна же существовать какая-то более-менее универсальная тулза.
yaplakal
Этот вопрос не совсем ко мне