Gyre! [2D rlg/trpg]

Форум для проектов, находящихся на стадии Альфа и Бета. В них ещё не реализована вся задуманная автором функциональность, а значит идёт активная разработка.

Модераторы: Sanja, Максим Кич

Аватара пользователя
kipar
Сообщения: 2120
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Разработка [пока-что-без-имени] рогалика

Сообщение kipar » 09 янв 2014, 08:18

Ну, накосячить наверняка можно. Томе4 вот тоже тормозит на старых компах.
Но все-таки 80*40 полигонов для современной видеокарты это не цифра. Может логика, физика или какая-то постобработка тормозит?

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Jesus05 » 09 янв 2014, 08:19

Берем Qt.
Берем QGraphicView
Зафигачиваем в него 45 000(150х150 х 2 слоя (земля и юниты)) тайлов и он начинает благополучно тормозить.

Аватара пользователя
kipar
Сообщения: 2120
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Разработка [пока-что-без-имени] рогалика

Сообщение kipar » 09 янв 2014, 08:22

Jesus05 писал(а):Берем QGraphicViewЗафигачиваем в него 45 000(150х150 х 2 слоя (земля и юниты)) тайлов и он начинает благополучно тормозить.
тайлы - 32 на 32? А если зафигачить картинку 4800*4800 + 22500 тайлов (земля стала одним куском) - не тормозит?

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Jesus05 » 09 янв 2014, 08:32

kipar писал(а):
Jesus05 писал(а):Берем QGraphicViewЗафигачиваем в него 45 000(150х150 х 2 слоя (земля и юниты)) тайлов и он начинает благополучно тормозить.
тайлы - 32 на 32? А если зафигачить картинку 4800*4800 + 22500 тайлов (земля стала одним куском) - не тормозит?
А где собирать эту картинку? если в QPicture\QImage то тогда алгоритм сборки большой картинки из тайлов тормозить начинает :D
в общем :) от графики в Qt я решил отказаться разве, что в прототипе. (а в конечном варианте перенести это все на QGLWidget)

Venom
Сообщения: 51
Зарегистрирован: 05 апр 2011, 21:44

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Venom » 09 янв 2014, 08:45

Jesus05 писал(а): А где собирать эту картинку? если в QPicture\QImage то тогда алгоритм сборки большой картинки из тайлов тормозить начинает :D
в общем :) от графики в Qt я решил отказаться разве, что в прототипе. (а в конечном варианте перенести это все на QGLWidget)
Хехе, по сходной причине мне и показалось хорошей идеей собирать из тайлов в текстуру единожды.
Хотя тесты я еще не проводил - что быстрее, собрать и отрисовать маленькую текстуру или отрисовать рект из большой? Подозреваю, второе быстрее. Ну и в целом дружелюбнее к оптимизации.
Алсо, графика на Qt - просить себе проблем. Почему бы не сделать на нормальном решении, если уж брать готовое?

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Jesus05 » 09 янв 2014, 08:55

Venom писал(а):
Jesus05 писал(а): А где собирать эту картинку? если в QPicture\QImage то тогда алгоритм сборки большой картинки из тайлов тормозить начинает :D
в общем :) от графики в Qt я решил отказаться разве, что в прототипе. (а в конечном варианте перенести это все на QGLWidget)
Хехе, по сходной причине мне и показалось хорошей идеей собирать из тайлов в текстуру единожды.
Хотя тесты я еще не проводил - что быстрее, собрать и отрисовать маленькую текстуру или отрисовать рект из большой? Подозреваю, второе быстрее. Ну и в целом дружелюбнее к оптимизации.
Алсо, графика на Qt - просить себе проблем. Почему бы не сделать на нормальном решении, если уж брать готовое?
Мне Qt-шка нравится, когда писал тот движок на котором выяснил эти проблемы хотел все на Qt сделать.
счас Qt-шную графику использую что-бы быстро что-то отрисовать не заморачиваясь со своим рендером, пока отрабатываю внутренние структуры и взаимодействия.
Если единожду то все было-бы нормально, но мир хотелось сделать побольше чем 150х150 и замкнутый (уходишь вправо выходишь слева), поэтому эту большую картинку приходилось периодически пересобирать.

Venom
Сообщения: 51
Зарегистрирован: 05 апр 2011, 21:44

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Venom » 09 янв 2014, 09:15

Jesus05 писал(а): Мне Qt-шка нравится, когда писал тот движок на котором выяснил эти проблемы хотел все на Qt сделать.
счас Qt-шную графику использую что-бы быстро что-то отрисовать не заморачиваясь со своим рендером, пока отрабатываю внутренние структуры и взаимодействия.
Если единожду то все было-бы нормально, но мир хотелось сделать побольше чем 150х150 и замкнутый (уходишь вправо выходишь слева), поэтому эту большую картинку приходилось периодически пересобирать.
Чем вы мне нравитесь, ребята, в отличии от геймдева и /agdg - отсутствием ответа "возьми готовое и не парь нам мозг" =)

Так вот, о рендере - у нас разные задачи, собственно, и решения у нас разные.
У меня относительно маленькие пространства - think of Alien Shooter 2 - поэтому нужно внимание к деталям. Вместо того, чтобы каждый раз дергать объекты во время рендера, проще нарисовать один раз, дорисовывая потом поверх кровь, обломки, битое стекло, етс. Это, правда, накладывает свои ограничения - невозможность эффективно снести уровень до состояния "пол и небо", но это и не нужно, в принципе.
В любом случае, рендерер у меня скрыт за интерфейсом и с остальным кодом не пересекается, так что его внутреннее устройство можно в любой момент поменять.
Как вариант, рисовать всё-таки tile-by-tile, но эффекты - кровь, стекло и всё остальное - всё-таки рендерить в текстуру и хранить.

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Jesus05 » 09 янв 2014, 09:34

Нас мало и мы рады любому начинанию. а на ГД.ру начинаний много, и спамеро\критиков много.

под OpenGL запросто можно рисовать и tile-by-tile, и одной текстурой, там мощностей по любому хватит даже на какой-нить дохлой intel.

Аватара пользователя
kipar
Сообщения: 2120
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Разработка [пока-что-без-имени] рогалика

Сообщение kipar » 09 янв 2014, 10:07

Jesus05 писал(а):под OpenGL запросто можно рисовать и tile-by-tile, и одной текстурой, там мощностей по любому хватит даже на какой-нить дохлой intel.
+1, а для оптимизации не передавать каждый кадр статические данные а использовать VBO. Правда у автора SDL2, как там сделано не знаю, но можно же и напрямую к OpenGL обратиться.

А насчет 150*150 не совсем понятно - ты все время рисуешь всю карту? Нужно рисовать только то что влезает в экран. Или у тебя экран с нереальным разрешением и туда столько влезает?

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Jesus05 » 09 янв 2014, 10:30

kipar писал(а):
Jesus05 писал(а):под OpenGL запросто можно рисовать и tile-by-tile, и одной текстурой, там мощностей по любому хватит даже на какой-нить дохлой intel.
+1, а для оптимизации не передавать каждый кадр статические данные а использовать VBO. Правда у автора SDL2, как там сделано не знаю, но можно же и напрямую к OpenGL обратиться.

А насчет 150*150 не совсем понятно - ты все время рисуешь всю карту? Нужно рисовать только то что влезает в экран. Или у тебя экран с нереальным разрешением и туда столько влезает?
рисовал то что влезало на экран + по одному тайлу с каждой стороны (когда делал большой картинкой).
а когда делал тайлами тогда рисовал все. (но там QGraphicView сам отрезает лишнее по идеи, выводил их с помощью QGraphicsPixmapItem там сам класс довольно тяжелый)

Venom
Сообщения: 51
Зарегистрирован: 05 апр 2011, 21:44

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Venom » 09 янв 2014, 13:13

kipar писал(а): +1, а для оптимизации не передавать каждый кадр статические данные а использовать VBO. Правда у автора SDL2, как там сделано не знаю, но можно же и напрямую к OpenGL обратиться.
У автора SDL2 сам цепляется к тому, чему найдет - DX, OGL, OGL ES, если не найдет ничего - есть фолбэк в виде довольно шустрого софтвара. Некоторые на этом софтваре пишут порты всяких там Doom-ов, выдающие играбельный фреймрейт.
Я сторонник YAGNI, так что буду напрямую цеплять OGL только если того, что есть не хватит. Обильных эффектов или трансформаций над спрайтами мне не нужно, так что это можно считать эффективным "никогда".

Алсо, трачу рабочее время в личных целях - господа, кто-нибудь гугловские Protocol Buffers пробовал для хранения даты использовать? Выглядит как идеальное решение - быстрое, дружелюбное к машине, стабильное и надежное. Человекочитаемость не нужна - зачем бы это человекам читать мою дату?

Запилил анимацию, возник вопрос - как вы решаете вопрос со слоями при ренедере? Как Нинтендо решала с незапамятных времен: enum Layers {Background, Middle, Front, etc} ?

И очередной вопрос про заветный UX - мне одному обилие черноты на экране кажется отталкивающим? При достаточно мелких тайлах на достаточно большом экране крайне насущный вопрос. В TOME решен увеличением тайлов, но всё равно, ситуация, когда 3\4 экрана залито чернотой - норма. В остальных рогаликах ситуация сходная, если не хуже.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1642
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Максим Кич » 09 янв 2014, 13:40

Venom писал(а):зачем бы это человекам читать мою дату?
Обычно проблема в том, что человекам надо её писать.
Dump the screen? [y/n]

Venom
Сообщения: 51
Зарегистрирован: 05 апр 2011, 21:44

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Venom » 09 янв 2014, 13:51

Максим Кич писал(а): Обычно проблема в том, что человекам надо её писать.
Я из мира несколько другой разработки прибыл, так что задам вопрос о том, что мне кажется очевидным:
Что, при разработке рогаликов вы контент набиваете руками через блокнот? Серьезно?
Я привык для таких задач использовать тулзы, всё-таки.

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1642
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Максим Кич » 09 янв 2014, 14:24

Venom писал(а):
Максим Кич писал(а): Обычно проблема в том, что человекам надо её писать.
Я из мира несколько другой разработки прибыл, так что задам вопрос о том, что мне кажется очевидным:
Что, при разработке рогаликов вы контент набиваете руками через блокнот? Серьезно?
Я привык для таких задач использовать тулзы, всё-таки.
«…как у вас там пьют какаву: с сахарином, али без?»

Чтобы для таких задач использовать тулзы — надо эти тулзы сначала написать. В играх с предопределённым контентом — редактор однозначно нужен. В рогаликах — по ситуации. Кто-то делает себе дополнительный инструмент, кто-то — нет. В моём мире на разработку ещё и редактора времени катастрофически не хватает — роскошь править две программы вместо одной я могу позволить себе только в коммерческих проектах, и только там, где под это выделены отдельные часы и средства. И я хочу отбыть в тот мир, где часов и средств на разработку всегда хватает.

Поэтому в моём случае — JSON и редактор с подсветкой синтаксиса. Серьёзно. Под тайлсеты полно готового инструмента, который на выхлопе выдаёт опять таки JSON и тайлсеты. Если мне припрёт рисовать предопределённые карты под это, внезапно, тоже есть готовые редакторы, способные выдать на-гора JSON. А имена монстрам мне проще накидать в Notepad++, чем городить под это отдельный софт.
Dump the screen? [y/n]

Venom
Сообщения: 51
Зарегистрирован: 05 апр 2011, 21:44

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Venom » 09 янв 2014, 14:29

Максим Кич писал(а): Чтобы для таких задач использовать тулзы — надо эти тулзы сначала написать. В играх с предопределённым контентом — редактор однозначно нужен. В рогаликах — по ситуации. Кто-то делает себе дополнительный инструмент, кто-то — нет. В моём мире на разработку ещё и редактора времени катастрофически не хватает — роскошь править две программы вместо одной я могу позволить себе только в коммерческих проектах, и только там, где под это выделены отдельные часы и средства. И я хочу отбыть в тот мир, где часов и средств на разработку всегда хватает.

Поэтому в моём случае — JSON и редактор с подсветкой синтаксиса. Серьёзно. Под тайлсеты полно готового инструмента, который на выхлопе выдаёт опять таки JSON и тайлсеты. Если мне припрёт рисовать предопределённые карты под это, внезапно, тоже есть готовые редакторы, способные выдать на-гора JSON. А имена монстрам мне проще накидать в Notepad++, чем городить под это отдельный софт.
Если мне не показалось - no offense was intended.
Да, несложно заметить, что большую разработку я видел только в условиях коммерческих продуктов. Часов и средств всегда не хватает, не в стране эльфов живем.
Ну, для кустарных целей - например, заполнения своего формата описания мобов - проще за пять часов накидать на шарпе простую тулзу, чем крутиться с блокнотом. Вкусовщина.
Имена монстрам - да, тут ты прав, проще руками.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 45 гостей