Gamedev LectureФорум

Мини-лекция про IMGUI [лектор - Zeux] (комментарии)

Страницы: 1 2 Следующая »
#0
4:23, 16 сен 2007

Мини-лекция про IMGUI [лектор - Zeux] (комментарии)

Это сообщение сгенерировано автоматически.

#1
4:23, 16 сен 2007

Во-блин! Только увидел!
НЕ ДЕЛАЙТЕ ТАК!!! Это в ЛЮБОМ случае который чуть сложнее тривиального приведет даже страшно подумать к чему.
Размазывать код гуи по всему проекту это ппц.
Zeux
ты реально(до сих пор? пост просто давно был) не понимаешь почему это плохо?

#2
20:52, 21 сен 2007

> НЕ ДЕЛАЙТЕ ТАК!!!
ТАК это как?

> Это в ЛЮБОМ случае который чуть сложнее тривиального приведет даже страшно подумать к чему.
> Размазывать код гуи по всему проекту это ппц.
o_O размазывать код гуи по всему проекту как-то относится к IMGUI?

> ты реально(до сих пор? пост просто давно был) не понимаешь почему это плохо?
А ты понимаешь? Расскажи, если понимаешь...

#3
3:30, 22 сен 2007

Zeux
:)
>ТАК это как?
я подумал, что будет понятно, что я про использование IMGUI.

>o_O размазывать код гуи по всему проекту как-то относится к IMGUI?
могу пояснить, просто я подумал что и так понятно. просто используя этот так называемый IMGUI у тебя выйдет просто мешанина кода гуи с игровым и не дай бог системным, мало того IMGUI это невероятный 100%й тормозняк, ибо оптимизации он не поддается(если не рассматривать примитивизмы типа "а сколько тактов на функцию ушло").

>А ты понимаешь? Расскажи, если понимаешь...
Как надо я рассказывать пожалуй не буду(надоело уже), а вот минусов IMGUI подхода могу еще привести. Только на конкретном примере уже чтобы голословным не быть.

#4
14:42, 22 сен 2007

> могу пояснить, просто я подумал что и так понятно. просто используя этот так называемый IMGUI у тебя выйдет просто мешанина
> кода гуи с игровым и не дай бог системным
Откуда такая идея?

> мало того IMGUI это невероятный 100%й тормозняк, ибо оптимизации он не поддается(если не рассматривать примитивизмы типа "а сколько тактов на функцию ушло")
А такая идея откуда?

> минусов IMGUI подхода могу еще привести. Только на конкретном примере уже чтобы голословным не быть.
Угу, нужны примеры ко всему.

#5
14:58, 22 сен 2007

Cool Ace
Ты серьезно не понимаешь, что проблемы IMGUI мягко говоря совсем не те, о которых ты пишешь?

#6
18:43, 22 сен 2007

Zeux
Допрос? по первым 2м пунктам, во первых это не идеи это факты, а ответ  значит "из жизненного опыта", который не маленький в этой теме. Или, чтобы более понятно, то я просто работал с разными ГУИ столько, что знаю что к чему приводит и при каких условиях, причем знаю и видел это все и на практике, мало того я предсказывал проблемы в практике, которые возникнут при использовании того или иного подхода, еще до реализации идей на практике.

Значит пример такой, есть игра в которой интерфейс достаточно объемный, чтобы называть его сложным, полный редизайн и рефункционал(назовем так изменение функциональности, к примеру использовалось текстовое отображение уровня персонажа, потом его сменили на прогресс бар) его проводился 4 раза на моей памяти. Что придется делать в IMGUI? Нам пришлось 2 раза подправить код. Скорость программирования окна в случае IMGUI какая? В нашем случае с RMGUI окно вставлялось за час(окно это 20 живых контролов и еще примерно 20 оформительских). Локализовать как? В нашем случае была статическая локализация(на китайский в том числе).

MiF
Возможно! Каковы истинные проблемы IMGUI? И вообще какие проблемы могут быть с GUI? Это же так элементарно! Это же не ШЭЙДЫРЫ ПЕСАДЬ :))))

#7
19:41, 22 сен 2007

> Допрос? по первым 2м пунктам, во первых это не идеи это факты, а ответ значит "из жизненного опыта", который не маленький в этой теме.
> Или, чтобы более понятно, то я просто работал с разными ГУИ столько, что знаю что к чему приводит и при каких условиях, причем знаю и видел это все и на практике, мало того я предсказывал проблемы в практике, которые возникнут при использовании того или иного подхода, еще до реализации идей на практике.
Это все чудесно, но к конкретике - никакого отношения не имеет. Я хотел бы услышать конкретные комментарии по поводу мешанина кода гуи с игровым и не дай бог системным и IMGUI это невероятный 100%й тормозняк, ибо оптимизации он не поддается.

> Значит пример такой, есть игра в которой интерфейс достаточно объемный, чтобы называть его сложным, полный редизайн и рефункционал(назовем так
> изменение функциональности, к примеру использовалось текстовое отображение уровня персонажа, потом его сменили на прогресс бар) его проводился 4 раза
> на моей памяти. Что придется делать в IMGUI? Нам пришлось 2 раза подправить код.
Ну как бы если у тебя есть некоторая сущность, которая представляет собой уровень персонажа, и внутри нее в случае скажем RMGUI скрыт ProgressBar или Label - то все просто, а если везде явно используется ProgressBar - то все сложно.
Если у тебя есть скажем функция, и внутри нее в случае IMGUI скрыт do_progress_bar или do_label - то все просто, а если везде явно используется do_progress_bar - то все сложно.

> Скорость программирования окна в случае IMGUI какая? В нашем случае с RMGUI окно вставлялось за час(окно это 20 живых контролов и еще примерно 20 оформительских).
Скорость программирования окна в случае IMGUI - за сколько ты успеешь набрать тот код :) 20 контролов, живых, строчек по 10 на контрол... Еще строчек 40-50 на оформительские, you get the idea. Зависит исключительно от качества imgui фреймворка - как и в случае rmgui, плохой фреймворк способен все испортить.

#8
23:05, 22 сен 2007

Zeux
>Если у тебя есть скажем функция, и внутри нее в случае IMGUI скрыт do_progress_bar или do_label - то все просто, а если везде явно используется do_progress_bar - то >все сложно.
Таких абстрагирующих оберток сколько понадобится на проект где много ГУИ?

Значит конкретные комментарии
производительность сядет на выводе нестатичного форматированного текста, в листбокс к примеру, батчинг бай бай(по крайней мере батчинг естественным путем а не извращаясь)
верстать гуи силами программистов это имхо дол...ство менеджеров.
невозможно отделить и отлаживать гуи от среды где он находится лекким способом
редактированию слабо поддается.
а по поводу размазывания кода.. как и где ты сделаешь окно управляющее опциями игры(геймплей + система), какой объем кода такого окна?
Вопрос: в реальных проектах использовал такое IMGUI? Если да то сколько времени потрачено примерно на разработку интерфейса.

#9
23:20, 22 сен 2007

Cool Ace
> Таких абстрагирующих оберток сколько понадобится на проект где много ГУИ?
Ну ровно столько же, сколько при RMGUI, нет?

> производительность сядет на выводе нестатичного форматированного текста, в листбокс к примеру, батчинг бай бай(по крайней мере батчинг естественным путем а не извращаясь)
Нестатичный форматированный динамический текст в играх? Ну, будет тормозить, сделаем кеширование, с явным setText, увы.

> верстать гуи силами программистов это имхо дол...ство менеджеров.
> невозможно отделить и отлаживать гуи от среды где он находится лекким способом
Ура!! Мы наконец-то наткнулись на недостаток IMGUI...

> а по поводу размазывания кода.. как и где ты сделаешь окно управляющее опциями игры(геймплей + система), какой объем кода такого окна?
Ровно там же, где и RMGUI, объем кода надо считать после, а не до...

> Вопрос: в реальных проектах использовал такое IMGUI?
Нет, в реальных проектах я не занимаюсь разработкой GUI :)

#10
0:35, 23 сен 2007

Zeux
>Ну ровно столько же, сколько при RMGUI, нет?
нет, нужно просто немного дальше пойти в своих представлениях архитектуры RMGUI

>Нестатичный форматированный динамический текст в играх? Ну, будет тормозить, сделаем кеширование, с явным setText, увы.
какая разница где, важно что решаться это будет уже так как в RMGUI, а значит...

>Ура!! Мы наконец-то наткнулись на недостаток IMGUI...
Это ясно как божий день с самого начала.

>Ровно там же, где и RMGUI, объем кода надо считать после, а не до...
нет

>Нет, в реальных проектах я не занимаюсь разработкой GUI :)
Я так и думал, вот именно поэтому я и сказал НЕ ДЕЛАЙТЕ ТАК, ибо гуи настолько тонкая и тяжелая вещь, что  шаг влево или вправо это ппц, огромные просто затараты времени, человеческих ресурсов, денег и нервов. Самая дибилистическая ошибка многих фирм в том что считается что ШЭЙДЭР это круто и сложно, а гуй, система ресурсов, организация логики это просто. Такой подход ведет к тому что игры затягиваются в 2-3 раза по срокам и деньгам.

#11
1:28, 23 сен 2007

Извини, мне с тобой абсолютно не о чем говорить - я услышал только два аргумента, про текст и про про редактор, все остальное - это какие-то непонятные экивоки в стиле "мое RMGUI делает твое IMGUI не напрягаясь".

> Самая дибилистическая ошибка многих фирм в том что считается что ШЭЙДЭР это круто и сложно, а гуй, система ресурсов,
> организация логики это просто. Такой подход ведет к тому что игры затягиваются в 2-3 раза по срокам и деньгам.
Нихрена себе, гуй, система ресурсов, и организация логики это уже вещи одного порядка? Много того гуя в шутерах и в экшенах?

#12
2:38, 23 сен 2007

Zeux
Слушай ну ты чего? Просто имхо только одно то что редактор это целая эпопея, это уже такой минус против которого все плюсы ничто. Производительность в любом случае меньше, те просто недоступны те оптимизации которые доступны в случае RMGUI. А самое главное плюсов нет, все что перечислено как плюсы это элементарно делается в RMGUI. Прикол еще в том что с РМГУИ теоретически можно вообще не программировать, а вот в случае IMGUI этого неизбежно просто катострофически много. Локализовать как? В код пробивать "ПА РУСКi"? Или ID по которому кто-то будет возвращать правильный текст и кучу флагов для текста со смыслом "а тут по арабски" или "а тут по китайски сверху вниз". Вот еще тема... как помигать кнопкой, а если 5 типов мигания и если одна мигает зеленым то другая должна мигать красным. и они находятся как бы в разных кусках кода? Как это сделать без управления?

Про "моё RMGUI" я тут вообще не говорил, я сказал, что пробовал много разного.

>Нихрена себе, гуй, система ресурсов, и организация логики это уже вещи одного порядка? Много того гуя в шутерах и в экшенах?
Да одного порядка, если в игре нужна более чем одна кнопка.

ЗЫ. Не хочешь не говори. Научись просто видеть.
ЗЗЫ. Все что я описал не надуманные примеры, а из жизни.

Прошло более 7 месяцев
#13
9:57, 20 апр 2008

Вообще на самом деле тема интересная, потому как IMGUI vs RMGUI это такой классический тест на вменяемость процесса.
IMGUI vs RMGUI - это экономия на масштабе "стоимость изготовления фишки" vs "стоимость изготовления тула для изготовления фишки + стоимость изготовления фишки на туле".
Стоимость в данном случае понимается и как классическая стоимость дизайн+кодинг+QA+управление, так и непрямая стоимость в виде потери/приобретения opportunities.
Поэтому очень интересно как в конкретных случаях выглядят гибриды lerp(i, IM, RM).

В космосе экономии на масштабе - Правильнее и Дешевле делать в RMGUI.
Однако любой тул создает предпосылки для борьбы не с проблемой (фишкой), а с собственно тулом.
Типа "но ведь это же кнопка, а кнопки не умеют дрожать и разделяться на две кнопки!".
Естественный ответ на это - "кнопка - у тебя в голове, а в дизайне написано - дрожит и разделяется".

Пример из реальной жизни.
При споре о стоимости работ по изготовлению довольно сложного меню я привел прямолинейный аргумент - если тупо накодить всё меню тупо руками (~IMGUI), получается никак не больше чем X.
А если через Правильный и Удешевляющий Тул - то почему-то 10*X, ибо надо много всего дописать, перерефакторить и т.п.

Через это и возникают гибриды по схеме
    простой IMGUI
    простой RMGUI с простым тулом нацеленным на конкретные use-cases (и поэтому всё работает)
    неподъемный RMGUI, который возводит слишком высокую стену "кнопки бывают такие, такие и вот такие, альтернативно - пиши совсем свою кнопку"
    простой IMGUI поверх RMGUI (который в данном случае скорее из-за "так исторически сложилось")

И тем не менее, голый IMGUI обычно не очень жизнеспобен.
Если кто видел живой IMGUI или гибрид в сравнительно реальной жизни - расскажите, очень интересно.

#14
19:38, 27 апр 2008

aruslan
>Пример из реальной жизни.
>При споре о стоимости работ по изготовлению довольно сложного меню я привел прямолинейный аргумент - если тупо накодить всё меню тупо руками >~IMGUI), >получается никак не больше чем X.
>А если через Правильный и Удешевляющий Тул - то почему-то 10*X, ибо надо много всего дописать, перерефакторить и т.п.

Либо клинический случай с тулом был, либо я не верю в такое, ибо мой пример из жизни когда и тул и система выдержала много переделок достаточно сложных окон (по 5 раз), мало того система насколько мне известно живет и нормально в другом проекте.


>Если кто видел живой IMGUI или гибрид в сравнительно реальной жизни - расскажите, очень интересно.

Примером нормального как бы гибридного подхода может наверное считаться программирование одного "окна" в пределах одной единицы трансляции, тогда есть пример у меня :) - гуи который в DXUT все просто и быстро делается, для девелоперских нужд быстро и просто создаются достаточно сложные "окна".

Но я все равно считаю, что вменяемый RMGUI способен творить чудеса в области экономии ресурсов при разработке игры насыщенной этим самым интерфесом.

Страницы: 1 2 Следующая »
Gamedev LectureФорум

Тема в архиве.