SFML библиотеки для кодеров, Помощь для искавших такой комплекс всего сразу |
Здравствуйте, гость ( Авторизация | Регистрация )
Перед публикацией рекомендуем ознакомиться с правилами раздела
SFML библиотеки для кодеров, Помощь для искавших такой комплекс всего сразу |
09.08.2013, 20:34
Сообщение
#1
|
|
Доктор Игровых Наук Репутация: 544 Группа: Участник Сообщений: 3657 Награды: 9 Регистрация: 12.07.2007 |
Периодически читаю и ищу "всяко разное" на просторах и тут наткнулся на просто уму непостижимые библиотеки.
Simple and Fast Multimedia Library (Простая и быстрая мультимедиа библиотека). Текущая версия: 2.1 По сути является огромным и реально простейшим фреймворком над разносторонними(в т.ч. бесплатными) библиотеками(OAL, OGL ...). Преимущества: 1)Имеет лицензию zlib/png license (Предоставляется как есть, можно использовать в коммерческих целях с указанием использования библиотеки). 2)Полностью кроссплатформена(Win, MacOs X, Linux), вскоре ожидается порт на Android и IOS. 3)Полностью открытый исходный код. 4)Библиотеки как для х64 так и х86(тяжело поверить но это реально так и все сделано аккуратно), также поддержка разных компиляторов. 5)Официально поддерживает языки C и .Net, благодаря сообществу есть порты на Java, Ruby, Python, Go и множество других яп. 6)Библиотеки для работы: - с сетью. HTTP|FTP|tcp\ip|udp|socks ... - со звуком. Воспроизведение и т.п.| Запись | Работа со звуком в 3D | VoIP ... - с графикой. Спрайты | текст | примитивы | лоадеры графики ... - с системой. Таймеры | стримы(Streams) | потоки(Threads) | строки(поддерживает кирилицу =) ) | векторы ... - с окнами. Окна на основе OpenGL(есть поточный рендер). Клава,мышь,джостик | эвенты ... 7)Все библиотеки независимы друг от друга. Т.е. можно взять только библиотеку звука или\и графики и т.п. Можно в совокупности всего написать игру. 8)Все реально проще некуда, отличная документация, уйма примеров. 9)Минимальный размер в 9 мегов с примерами, исходниками,документацией, скомпиленными либами и dll. Недостатки пока не нашел. Личное ощущение что нашел клад, sdl нервно курит в сторонке. Приведу пару примеров: Контекст OpenGL #include <SFML/OpenGL.hpp> ... sf::ContextSettings settings; settings.depthBits = 24; settings.stencilBits = 8; settings.antialiasingLevel = 4; settings.majorVersion = 3; //Мажор версия OGL settings.minorVersion = 0; //Минор версия OGL т.е. используем OpenGL 3.0 . Те кто пробовал инициализировать oGL от 2.0 и выше поймут какой это геморой sf::Window window(sf::VideoMode(800, 600), "OpenGL", sf::Style::Default, settings); Гениально и просто. Потоки #include <SFML/System.hpp> ... sf::Thread thread(&func); Создаем поток // Запуск thread.launch(); Звук #include <SFML/Audio.hpp> int main() { sf::SoundBuffer buffer; if (!buffer.loadFromFile("sound.wav")) return -1; sf::Sound sound; sound.setBuffer(buffer); sound.play(); return 0; } Это лишь минимум примеров, но абсолютно любой модуль также прост. На примере звука точно также работают текстуры и шейдеры, т.е. весь апи однообразен. Жду вашего мнения, а сам потихоньку отхожу от шока и читаю api PS: Существует книга по разработке игр на этих либах, гуглится в бухте пиратов по "SFML Game Development" Сообщение отредактировал jamakasi - 09.08.2013, 20:55 |
 
|
|
|
|
09.08.2013, 22:16
Сообщение
#2
|
|
Игровое Воплощение Репутация: 384 Группа: Участник Сообщений: 4718 Награды: 9 Регистрация: 21.05.2008 |
Ммм... Вкусно ) нужно реально сделать раздел под программеров, чтобы можно было такие вещи постить, свои и т.п.
|
 
|
|
09.08.2013, 22:21
Сообщение
#3
|
|
Доктор Игровых Наук Репутация: 544 Группа: Участник Сообщений: 3657 Награды: 9 Регистрация: 12.07.2007 |
Ммм... Вкусно ) нужно реально сделать раздел под программеров, чтобы можно было такие вещи постить, свои и т.п. Полностью поддерживаю. Туда же можно смело перенести темы вопросников по программированию, собирать интересные статьи и библиотеки\движки. PS: нашел цикл из 11 статей по написанию Сообщение отредактировал jamakasi - 09.08.2013, 22:24 |
 
|
|
09.08.2013, 22:25
Сообщение
#4
|
|
Игровое Воплощение Репутация: 384 Группа: Участник Сообщений: 4718 Награды: 9 Регистрация: 21.05.2008 |
да именно, разделить асм там, сишники , нет , базы и т.п. , у меня гигов 20 материала по net , sql server и т.п. вещам...
Можно кидать свои исходники, как то обсуждать... искать пути решения, а не сливать все в 1 тему , где уже загадили все. |
 
|
|
09.08.2013, 22:30
Сообщение
#5
|
|
Доктор Игровых Наук Репутация: 544 Группа: Участник Сообщений: 3657 Награды: 9 Регистрация: 12.07.2007 |
nuan, разделять точно не надо т.к. на форуме не так много программистов, вот разделить например на 2 ветки WEB и С\NET... будет грамотно. Возможно многих заинтересуют некоторые темы т.к. народ по большей части на форуме креативный.
|
 
|
|
09.08.2013, 22:36
Сообщение
#6
|
|
Игровое Воплощение Репутация: 384 Группа: Участник Сообщений: 4718 Награды: 9 Регистрация: 21.05.2008 |
Но net то и asp.net и сильверлайт )) это к вэб )
|
 
|
|
09.08.2013, 23:34
Сообщение
#7
|
|
Follow me: @VIGUR91 Репутация: 2821 Группа: Участник Сообщений: 10420 Награды: 9 Регистрация: 29.03.2008 |
Когда-то серьезно задумывался об использовании SFML для своей игры... Это было после создания Megablox на движке HGE. Тогда, для нового проекта, мне хотелось в перспективе мультиплатформенности одновременно с гибкостью и дополнительными возможностями. Рассматривал кандидатуры SFML и SDL. Преимущества SFML тогда перевесили.
Даже начал что-то делать. Ковырялся с отображением кириллицы в UTF-8 для шрифтов, а потом забил на все это дело. Позже открыл для себя возможности и удобства нативного Displaylist'а в ActionScript, тогда друг посоветовал попробовать и я увидел разницу с разработкой на С++ на тех же HGE и SFML. Тогда же друг посоветовал сразу писать на на ActionScript'e, а на новом языке Haxe с использованием NME (фреймворка, который делает разработку на Haxe практически идентичной с разработкой на ActionScript, используя все преимущества последнего, но сразу "из коробки" поддерживая дополнительные удобные фичи и кроссплатформенность, т.е. возможности компиляции не только под Flash-платформу, но и под платформы HTML5(JS), Win(neko, C++), Mac, Android, iOS, Blackberry, Amazon и т.д.). Это действительно оказалось очень удобно. Сейчас заканчиваю Turnabout именно в связке Haxe + NME. Но для тех, кто хочет пописать на плюсах, все-таки могу посоветовать и SFML. -------------------- Мой ник читается как VÍGUR (с ударением на первый слог!)
Programming is like sex: one mistake and you have to support it for the rest of your life... "- Ребята, хватит. Всё. Креатива больше не надо... - Верно, согласны. Креатива больше не надо. НА СЕГОДНЯ креатива больше не надо." (с) Андрей Прохоров. |
 
|
|
09.08.2013, 23:40
Сообщение
#8
|
|
Игровое Воплощение Репутация: 384 Группа: Участник Сообщений: 4718 Награды: 9 Регистрация: 21.05.2008 |
VIGUR я плюсы , как страшный сон пытаюсь забыть ))) для небольших игр и программ ) вполне net подходит, просто и сердито.
А насчет раздела - подумай... Может реально запилить? |
 
|
|
10.08.2013, 01:20
Сообщение
#9
|
|
Доктор Игровых Наук Репутация: 544 Группа: Участник Сообщений: 3657 Награды: 9 Регистрация: 12.07.2007 |
Пара игр разрабатываемых на основе SFML которые понравились мне:
1) 2) 3) Если посмотреть проекты пользователей на форуме то там просто тьма разных игрушек и прототипов. |
 
|
|
10.08.2013, 14:19
Сообщение
#10
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
друзья! не увлекайтесь фреймворками и библиотеками на все случаи жизни, универсальность не нужна! такие библиотеки не заменят божественный дар писать чистый и понятный код, а только превратят его в говно, в попытках подстроиться под чужую идеологию (иногда не самую приглядную) многоразныхлюдей которые эти библиотеки разрабатывали. фактически, ваш код превращается в некую прослойку, т.н. app glue, между этими библиотеками, писать нечто свое гораздо интереснее и много удобнее.
это не призыв вовсе не использовать сторонние библиотеки, вроде zlib, openal и т.д. но это совсем не одно и то же, тут вы просто используете готовую библиотеку в рамках какой-то отдельной задачи, а не конструктор "сделай сам" где за вас уже кто-то подумал. VIGUR я плюсы , как страшный сон пытаюсь забыть как толсто. нельзя забыть то, что толком не знаешь, так что говори как есть - ниасилил с/с++ и философия этих языков - это не для анскильных питушков, это выбор настоящего джедая, ктоме того это единственный на сегодня инструмент разработчика игр. Сообщение отредактировал refuse - 10.08.2013, 14:26 -------------------- nop
|
 
|
|
11.08.2013, 14:51
Сообщение
#11
|
|
Доктор Игровых Наук Репутация: 544 Группа: Участник Сообщений: 3657 Награды: 9 Регистрация: 12.07.2007 |
Цитата refuse,друзья! не увлекайтесь фреймворками и библиотеками на все случаи жизни, универсальность не нужна!... Для мелких проектов самое то, а для больших лучше писать свои велосипеды тут согласен.
|
 
|
|
11.08.2013, 15:01
Сообщение
#12
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
Для мелких проектов самое то я бы согласился в том случае, если под мелким проектом подразумевалось сколотить что-нибудь на скорую руку, сильно не вникая в детали и не особо заморачиваясь на говнявость производимого кода, а так какой смысл тащить в небольшой проект туеву хучу зависимостей? -------------------- nop
|
 
|
|
11.08.2013, 17:42
Сообщение
#13
|
|
Доктор Игровых Наук Репутация: 544 Группа: Участник Сообщений: 3657 Награды: 9 Регистрация: 12.07.2007 |
refuse, например захотелось сделать просмотрщик моделей из какой либо игры. Вместо того чтобы тратить время на написание болванки рендера для строгой платформы(вин\линь) можно сразу заняться эксперементами и парсингом модели, а уже потом думать по поводу написания рендера с нуля. Или же просто захотелось поэксперементировать\поизучать какую либо область геймдева например бсп деревья то не заморачиваешься с областью ответственной за рендр.
Хотя сколько людей столько и мнений, мне лично именно эти библиотеки понравились больше чем sdl т.к. не имеют никакого мусора и ненужного кода, все прозрачно и понятно. По ощущениям работает быстрее чем тот же sdl. А так даже если начать делать на таком небольшом фреймворке и проект разрастется до чего то серьезного то можно будет и переписать одноименные методы либо просто подправить под свои нужны ,благо код более читаемый чем "опять же " в sdl. PS: написал кашу какую то , не выспался я сегодня( Сообщение отредактировал jamakasi - 11.08.2013, 17:44 |
 
|
|
11.08.2013, 18:09
Сообщение
#14
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
например захотелось сделать просмотрщик моделей из какой либо игры. Вместо того чтобы тратить время на написание болванки рендера для строгой платформы(вин\линь) можно сразу заняться эксперементами а, ну тогда ок. я правда все же предпочитаю свой графический движок, единожды написанный и используемый в подобных случаях, но было время использовал ogre, osg и qt. Сообщение отредактировал refuse - 11.08.2013, 18:10 -------------------- nop
|
 
|
|
11.08.2013, 18:14
Сообщение
#15
|
|
Игровое Воплощение Репутация: 384 Группа: Участник Сообщений: 4718 Награды: 9 Регистрация: 21.05.2008 |
refuse а зачем заморачиваться ) если можно быстро и эффективно что-то сделать... бывает заказчик хочет сейчас ) ему не нужно чтобы быстро работало, стабильно или еще как то ) главное чтобы кому - то показать )
|
 
|
|
11.08.2013, 18:35
Сообщение
#16
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
refuse а зачем заморачиваться ) если можно быстро и эффективно что-то сделать... бывает заказчик хочет сейчас ) ему не нужно чтобы быстро работало, стабильно или еще как то ) главное чтобы кому - то показать ) ну тут речь идет об использовании в личных проэктах. если говорить о коммерческой разработке то там много условностей которые необходимо соблюдать, нельзя просто так взять и впилить в проэкт все что тебе вздумается =)) ну а если ты волен самостоятельно принимать решение, то тебе тем более надо позаботиться о сопровождаемости, коллегах и тех несчастных, коим спустя годы придется разгребать это говнище ))) -------------------- nop
|
 
|
|
Текстовая версия | Сейчас: 29.03.2024, 02:17 |