На здоровье! Если бы я не портировал SDL_ttf однажды, и не занимался изучением различных движков вывода шрифтов, то тоже бы думал, что это нечто самостоятельное.
Классная игра, спасибо! Думаю, ваша статья поможет многим новичкам использовать SDL.
Кстати, когда вышла первая статья, хабраюзер Leency сделал клон flood it! для Колибри ОС. Вы в курсе?
Хм, рискую нарваться, но это похоже на какую-то параною, буквально пару дней назад я начал читать про SDL, автор признавайся, следишь?
По самой технологии вопрос — есть ли у OpenGL возможность рисовать графику уровня Battlefield 3?
Знаете, это витает в воздухе. Однажды я написал статью на DIY-тематику, и параллельно со мной опубликовали еще три статьи той же тематики. И такое я замечаю не в первый раз.
По поводу OpenGL — да, конечно есть такая возможность.
есть ли у OpenGL возможность рисовать графику уровня Battlefield 3?
OpenGL использует видеокарту для вывода графики, соответственно может выводить графику любого качества, зависит от возможностей видеокарты и программиста.
Названием навеяло «молоко вдвойне вкусней — если это чистый спирт»
За статью респект, плюсую, приведённый код в реальной жизни бесполезен более чем полностью, но реально помогает направить мысли в нужное русло даже тем кто ничего в этом раньше не понимал… (умел бы я писать статьи, написал бы примерно также...)
Хорошо бы было упомянуть, что использование растровых шрифтов и TTF — это совсем разные вещи с точки зрения производительности и возможностей.
Freetype дает возможность использовать кучу шрифтов, в т.ч. не моноширных, менять размеры кегля, толщины линий, использовать кернинг и многое другое. Но это конечно не бесплатно — рендеринг текста ну о-о-очень медленный, т.е. много fps не выжать в игре, если рендерить текст каждую итерацию. Растровые шрифты гораздо быстрее, но сильно не поуправляешь отображением текста: какие буквы подготовили, такие и будут. Кроме того надо приложить некоторые усилия для использования шрифтов переменной ширины (а фиксированная ширина шрифта плохенько выглядит).
В принципе, рабочий вариант — это использовать TTF, но кэшировать отрендеренные символы или строки целиком для дальнейшего использования.
Современные игры даже Flash в качестве GUI используют, а вы о TTF переживаете. Естественно что растеризированные глифы кешируются — ибо > 90% текстов в игре — статические, а значит живут долше нескольких кадров и кеширование имеет место быть. Зато получаем полную свободу, и (конечно зависит от шрифта) поддержку любых языков мира.
Ага, а потом очередная версия пошаговой стратежки, которая когда-то летала на 486, еле ворочается на core 2 :)
Ну а если серьезно, есть еще мобильные платформы, где процессор разбазаривать не стоит. Кроме того, отрисовать страницу текста тем методом, как на примере, при SDL_Delay(50), будет жрать порядка 30% ядра. А в игре еще ничего даже не начиналось…
Игра на SDL — вдвойне легко