Russian Qt Forum

Программирование => Разработка игр => Тема начата: Dodge от Июль 17, 2009, 20:06



Название: PiperWar [Qt4, OpenGL, C++]
Отправлено: Dodge от Июль 17, 2009, 20:06
Предыстория.
В апреле, решив открыть сезон, пошли с другом кататься на роликах. Но вот незадача - упал и сломал ногу, причем сломал будь здоров - двойной перелом с подвывихом и еще чего-то там (это я так с поребрика съехал, стаж катания на ролика 4,5 раза). Короче говоря попал в больницу, получил операцию и теперь хожу с железками в ноге. Суть не в этом, суть в том, что с того момента и по сей день я сижу на больничном и "от безделья" родился ОН - PiperWar (кстати родился не только он, но еще и бубноредактор (http://code.google.com/p/lambdapro), в нем писался код для PiperWar).

PiperWar.
Наверное многие помнят как сидя на уроке, рисовали в школьных тетрадях. Кто-то играл в крестики-нолики, точки или палочки, а может даже в танчики, устраивая на бумаге в клетку целые баталии. PiperWar - это тоже игра на бумаге, только - виртуальной. На сегодняшний день, PiperWar лишь в начале пути, но разработка идет полным ходом. Есть дома, деревья и даже враги способные "мыслить". В общем можно вдоволь пострелять и побегать.

сайт проекта на гугле (http://sites.google.com/site/piperwar)
Тут последний ролик (http://www.youtube.com/watch?v=iy9a29nHF1s), остальные там рядом, "Другие видео от: dodgeag"

Ролики можно посмотреть прямо на сайте, там же можно скачать последнюю сборку и исходники.

Буду рад услышать ваше мнение обовсемэтом  :)


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: Khs от Июль 17, 2009, 23:54
можно еще усложнить это как с графической точки зрения так и с функциональной, сделав аналог контрстрайка (например) в 2D (сетевой режим, режим с ботами) ((конечно есть вроде уже такой, но может самому интересно буит))  :D


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: Dodge от Июль 18, 2009, 00:10
Сетевая игра может и будет. Все зависит от расположения звезд ;D

Вообще в игре планируется сюжет.
И на заметку, тут не совсем 2Д, это скорее top down 3д (покачто не 3д  :D). Этого пока не видно, ибо ничего 3х мерного нет, 3д будет - ланшафт и некоторые элементы окружения. Инструменты формирования ландшафта пока не написаны, но все для этого есть.
Возможно персонажи тоже будут трехмерные, если найдется моделлер-аниматор.


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: ufna от Июль 18, 2009, 01:10
задумка интересная :) Единственное - сильно тормозит. Сетевой режим обязателен, иначе это как контра с ботами.

Очень хочу релизную версию :)


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: Dodge от Июль 18, 2009, 13:36
задумка интересная :) Единственное - сильно тормозит. Сетевой режим обязателен, иначе это как контра с ботами.

Очень хочу релизную версию :)
Какая видеокарточка? Сколько фпс в спокойном режиме, когда стреляем и когда боты "возбуждаются" (Если конечно разница заметна)?


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: ufna от Июль 18, 2009, 13:48
1. что в обычном режиме, что с ботами - в среднем 24 (21-25 обычно).
2. в любом состоянии бывают рывки, достаточно частые, когда фпс становится равным 15-16 - при ходьбе чаще, чем в спокойном режиме.
3. карточка - ATi Mobile Radeon HD 2400


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: crackedmind от Июль 18, 2009, 14:08
Сильно в код в не вникал.
Но зачем 3 одинаковых цикла?

Код
C++ (Qt)
for ( y = 0; y <p_tiles - 1; y ++ )
glDrawElements( GL_TRIANGLE_STRIP, rowSize, GL_UNSIGNED_INT, indexes + rowSize * y );
for ( y = 0; y <p_tiles - 1; y ++ )
glDrawElements( GL_TRIANGLE_STRIP, rowSize, GL_UNSIGNED_INT, indexes + rowSize * y );
for ( y = 0; y <p_tiles - 1; y ++ )
glDrawElements( GL_TRIANGLE_STRIP, rowSize, GL_UNSIGNED_INT, indexes + rowSize * y );


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: Rcus от Июль 18, 2009, 14:22
Хм, так и не смог скачать исходники, ссылка ведет на 404


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: Dodge от Июль 18, 2009, 14:47
За исходники прошу прощения, перезалил старые и выложил новые. Обновил сборку и нашел проблему, она действительно в отрисовке "ландшафта" :)
Тормоза при "хождении" ботов похоже обусловлены алгоритмом поиска пути, вернее тем что внутри него много вывода отладочной информации (было).

Все поправлю в ближайшее время.

Работы по оптимизации еще много и есть куда.


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: lit-uriy от Июль 18, 2009, 16:02
Dodge, а как собрать твой редактор?
может сделаешь корневой pro-файл?
какой версии сцинтилла нужна, если нужна?


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: Dodge от Июль 18, 2009, 16:22
собирай с про файлом из каталога lambdapro
Код:
cd lambdapro/lambdapro
qmake
make
Запускать при помощи скрипта лежащего рядом (run.[sh|bat])

На счет версии редактора - бери последнюю не ошибешься =)

З.Ы. Если хочешь собрать под винду, то могу выложить готовую сборку.


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: lit-uriy от Июль 18, 2009, 16:24
а как Сцинтиллу-то указать, есть у меня она, только о её существовании qmake/pro-файл не знает


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: Dodge от Июль 18, 2009, 19:22
а как Сцинтиллу-то указать, есть у меня она, только о её существовании qmake/pro-файл не знает

Ну вообще сцинтилла "ставится в Qt" (покрайнеймере по дефолту инсталл был именно туда). Каталог с инклюдами копируется в каталог инклюдов Qt, либины тож рядом с Qt'шными.


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: lit-uriy от Июль 18, 2009, 19:39
Спасибо, теперь может быть соберу.

>>Ну вообще сцинтилла "ставится в Qt" (покрайнеймере по дефолту инсталл был именно туда).
Может быть, я просто никогда make install не делаю, а то так Qt'шный каталог любым хламом завалится.


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: Dodge от Июль 18, 2009, 20:21
Может быть, я просто никогда make install не делаю, а то так Qt'шный каталог любым хламом завалится.
а make uninstall не помогает?  :)


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: lit-uriy от Июль 18, 2009, 20:26
>>а make uninstall не помогает?
А авторы разные бывают, не всегда всё корректно делают.

Да и не универсально вслучае, когда на машине несколько версий Qt. А главное цель не понятна, свою же программу в каталоге с Qt не разрабатываешь.


Название: Re: PiperWar [Qt4, OpenGL, C++]
Отправлено: Dodge от Июль 18, 2009, 20:40
>>а make uninstall не помогает?
А авторы разные бывают, не всегда всё корректно делают.

Да и не универсально вслучае, когда на машине несколько версий Qt. А главное цель не понятна, свою же программу в каталоге с Qt не разрабатываешь.
Я честно говоря не знаю разработчиков которые make-файлы пишут руками, обычно используют систему сборки (qmake, cmake, scons и т.д.), которая и создает все цели для сборки, в том числе и install, unnstall. Так что пользуйся не бойся, в linux это совершенно нормально.