Как стать автором
Обновить

Комментарии 25

Спасибо большое, жду продолжение. Новая политика кармы не даёт сделать добро.
Этот комментарий делает то же самое, что и ^(для меня).
Это статья последняя на тему Flood-it. Хотя ещё есть OpenGL и другие плюшки к SDL…
А вы не пробовали SFML?
Только слышал, писать не приходилось. Когда будет свободное время. обязательно посмотрю.
Для текста еще можно freetype использовать.
Упустил. Попытаюсь дополнить статью, разобравшись с реализацией.
SDL_ttf — это обертка для freetype.
Спасибо, буду знать.
На здоровье! Если бы я не портировал SDL_ttf однажды, и не занимался изучением различных движков вывода шрифтов, то тоже бы думал, что это нечто самостоятельное.
Я видел как freetype используется в teeworlds, поэтому и написал =)
По ascii картинке подумал, что будет addon к Dwarf fortress o_O
Честно говоря, её от вики DF и взял, как удачный пример :\
Классная игра, спасибо! Думаю, ваша статья поможет многим новичкам использовать SDL.
Кстати, когда вышла первая статья, хабраюзер Leency сделал клон flood it! для Колибри ОС. Вы в курсе?
image
Скриншот отвалился.
Хм, рискую нарваться, но это похоже на какую-то параною, буквально пару дней назад я начал читать про SDL, автор признавайся, следишь?
По самой технологии вопрос — есть ли у OpenGL возможность рисовать графику уровня Battlefield 3?
Знаете, это витает в воздухе. Однажды я написал статью на DIY-тематику, и параллельно со мной опубликовали еще три статьи той же тематики. И такое я замечаю не в первый раз.
По поводу OpenGL — да, конечно есть такая возможность.
Не поверите, про SDL тоже читаю некоторое время, вы за мной следите?

//два анекдота прямо в тему
Сидят две собаки, одна другой говорит:
— По моему тот мужик параноик…
— Почему?
— Он думает что я читаю его мысли…

Ну и правда жизни:
— Если у вас паранойя, это ещё не значит что за вами не следят
есть ли у OpenGL возможность рисовать графику уровня Battlefield 3?

OpenGL использует видеокарту для вывода графики, соответственно может выводить графику любого качества, зависит от возможностей видеокарты и программиста.
И от того кто рисовал

(во времена Doom и без всяких SDL рисовали графику уровня Doom)
Это очень сильно мотивирует, спасибо.
Названием навеяло «молоко вдвойне вкусней — если это чистый спирт»

За статью респект, плюсую, приведённый код в реальной жизни бесполезен более чем полностью, но реально помогает направить мысли в нужное русло даже тем кто ничего в этом раньше не понимал… (умел бы я писать статьи, написал бы примерно также...)
Хорошо бы было упомянуть, что использование растровых шрифтов и TTF — это совсем разные вещи с точки зрения производительности и возможностей.
Freetype дает возможность использовать кучу шрифтов, в т.ч. не моноширных, менять размеры кегля, толщины линий, использовать кернинг и многое другое. Но это конечно не бесплатно — рендеринг текста ну о-о-очень медленный, т.е. много fps не выжать в игре, если рендерить текст каждую итерацию. Растровые шрифты гораздо быстрее, но сильно не поуправляешь отображением текста: какие буквы подготовили, такие и будут. Кроме того надо приложить некоторые усилия для использования шрифтов переменной ширины (а фиксированная ширина шрифта плохенько выглядит).
В принципе, рабочий вариант — это использовать TTF, но кэшировать отрендеренные символы или строки целиком для дальнейшего использования.
Современные игры даже Flash в качестве GUI используют, а вы о TTF переживаете. Естественно что растеризированные глифы кешируются — ибо > 90% текстов в игре — статические, а значит живут долше нескольких кадров и кеширование имеет место быть. Зато получаем полную свободу, и (конечно зависит от шрифта) поддержку любых языков мира.
Ага, а потом очередная версия пошаговой стратежки, которая когда-то летала на 486, еле ворочается на core 2 :)

Ну а если серьезно, есть еще мобильные платформы, где процессор разбазаривать не стоит. Кроме того, отрисовать страницу текста тем методом, как на примере, при SDL_Delay(50), будет жрать порядка 30% ядра. А в игре еще ничего даже не начиналось…
Оу, да я вообще какую-то фигню делал. Теперь все поправил, SDL_Delay больше и не требуется.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации