IPB

Правила раздела

Перед публикацией рекомендуем ознакомиться с правилами раздела

 
 
>

SFML библиотеки для кодеров

, Помощь для искавших такой комплекс всего сразу

 
 jamakasi
сообщение 09.08.2013, 20:30
Сообщение #1


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3523
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Периодически читаю и ищу "всяко разное" на просторах и тут наткнулся на просто уму непостижимые библиотеки.
Сайт проекта.
Минитуториалы, не поймет разве что ребенок не умеющий читать.
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 (IMG:style_emoticons/default/smile.gif)
PS: Существует книга по разработке игр на этих либах, гуглится в бухте пиратов по "SFML Game Development" (IMG:style_emoticons/default/biggrin.gif)

Сообщение отредактировал jamakasi - 09.08.2013, 20:51
Перейти в начало страницы
 
 
 nuan
сообщение 09.08.2013, 22:12
Сообщение #2


Игровое Воплощение
*********************

Группа: Участник
Сообщений: 4657
Регистрация: 21.05.2008
Пользователь №: 8134



Ммм... Вкусно ) нужно реально сделать раздел под программеров, чтобы можно было такие вещи постить, свои и т.п.
Перейти в начало страницы
 
 
 jamakasi
сообщение 09.08.2013, 22:17
Сообщение #3


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3523
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Цитата(nuan @ 09.08.2013, 23:16) *
Ммм... Вкусно ) нужно реально сделать раздел под программеров, чтобы можно было такие вещи постить, свои и т.п.

Полностью поддерживаю. Туда же можно смело перенести темы вопросников по программированию, собирать интересные статьи и библиотеки\движки.

PS: нашел цикл из 11 статей по написанию простейшего пинпонга.

Сообщение отредактировал jamakasi - 09.08.2013, 22:20
Перейти в начало страницы
 
 
 nuan
сообщение 09.08.2013, 22:21
Сообщение #4


Игровое Воплощение
*********************

Группа: Участник
Сообщений: 4657
Регистрация: 21.05.2008
Пользователь №: 8134



да именно, разделить асм там, сишники , нет , базы и т.п. , у меня гигов 20 материала по net , sql server и т.п. вещам...
Можно кидать свои исходники, как то обсуждать... искать пути решения, а не сливать все в 1 тему , где уже загадили все.
Перейти в начало страницы
 
 
 jamakasi
сообщение 09.08.2013, 22:26
Сообщение #5


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3523
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



nuan, разделять точно не надо т.к. на форуме не так много программистов, вот разделить например на 2 ветки WEB и С\NET... будет грамотно. Возможно многих заинтересуют некоторые темы т.к. народ по большей части на форуме креативный.
Перейти в начало страницы
 
 
 nuan
сообщение 09.08.2013, 22:32
Сообщение #6


Игровое Воплощение
*********************

Группа: Участник
Сообщений: 4657
Регистрация: 21.05.2008
Пользователь №: 8134



Но net то и asp.net и сильверлайт )) это к вэб )
Перейти в начало страницы
 
 
 VIGUR
сообщение 09.08.2013, 23:30
Сообщение #7


Follow me: @VIGUR91
************************

Группа: Участник
Сообщений: 10414
Регистрация: 29.03.2008
Пользователь №: 7808



Когда-то серьезно задумывался об использовании SFML для своей игры... Это было после создания Megablox на движке HGE. Тогда, для нового проекта, мне хотелось в перспективе мультиплатформенности одновременно с гибкостью и дополнительными возможностями. Рассматривал кандидатуры SFML и SDL. Преимущества SFML тогда перевесили.
Даже начал что-то делать. Ковырялся с отображением кириллицы в UTF-8 для шрифтов, а потом забил на все это дело. Позже открыл для себя возможности и удобства нативного Displaylist'а в ActionScript, тогда друг посоветовал попробовать и я увидел разницу с разработкой на С++ на тех же HGE и SFML. (IMG:style_emoticons/default/smile.gif) Тогда же друг посоветовал сразу писать на на ActionScript'e, а на новом языке Haxe с использованием NME (фреймворка, который делает разработку на Haxe практически идентичной с разработкой на ActionScript, используя все преимущества последнего, но сразу "из коробки" поддерживая дополнительные удобные фичи и кроссплатформенность, т.е. возможности компиляции не только под Flash-платформу, но и под платформы HTML5(JS), Win(neko, C++), Mac, Android, iOS, Blackberry, Amazon и т.д.). Это действительно оказалось очень удобно. Сейчас заканчиваю Turnabout именно в связке Haxe + NME. Но для тех, кто хочет пописать на плюсах, все-таки могу посоветовать и SFML.
Перейти в начало страницы
 
 
 nuan
сообщение 09.08.2013, 23:36
Сообщение #8


Игровое Воплощение
*********************

Группа: Участник
Сообщений: 4657
Регистрация: 21.05.2008
Пользователь №: 8134



VIGUR я плюсы , как страшный сон пытаюсь забыть ))) для небольших игр и программ ) вполне net подходит, просто и сердито.
А насчет раздела - подумай... Может реально запилить?
Перейти в начало страницы
 
 
 jamakasi
сообщение 10.08.2013, 01:16
Сообщение #9


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3523
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Пара игр разрабатываемых на основе SFML которые понравились мне:
1) Геймплей диаблоподобной хак эн слеш. Оффсайт.
2) Трелер. Добротная космическая стрелялка, полностью играбельна. Исходники есть на гитхабе. Оффсайт
3) Геймплей. Коммерческая игра. Оффсайт.

Если посмотреть проекты пользователей на форуме то там просто тьма разных игрушек и прототипов.
Перейти в начало страницы
 
 
 autistic
сообщение 10.08.2013, 14:15
Сообщение #10


Геймер
******

Группа: Участник
Сообщений: 125
Регистрация: 05.05.2012
Пользователь №: 14751



друзья! не увлекайтесь фреймворками и библиотеками на все случаи жизни, универсальность не нужна! такие библиотеки не заменят божественный дар писать чистый и понятный код, а только превратят его в говно, в попытках подстроиться под чужую идеологию (иногда не самую приглядную) многоразныхлюдей которые эти библиотеки разрабатывали. фактически, ваш код превращается в некую прослойку, т.н. app glue, между этими библиотеками, писать нечто свое гораздо интереснее и много удобнее.
это не призыв вовсе не использовать сторонние библиотеки, вроде zlib, openal и т.д. но это совсем не одно и то же, тут вы просто используете готовую библиотеку в рамках какой-то отдельной задачи, а не конструктор "сделай сам" где за вас уже кто-то подумал.

Цитата(nuan @ 10.08.2013, 00:40) *
VIGUR я плюсы , как страшный сон пытаюсь забыть

как толсто. нельзя забыть то, что толком не знаешь, так что говори как есть - ниасилил (IMG:style_emoticons/default/smile.gif)
с/с++ и философия этих языков - это не для анскильных питушков, это выбор настоящего джедая, ктоме того это единственный на сегодня инструмент разработчика игр.

Сообщение отредактировал refuse - 10.08.2013, 14:22
Перейти в начало страницы
 
 
 jamakasi
сообщение 11.08.2013, 14:47
Сообщение #11


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3523
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



Цитата
refuse,друзья! не увлекайтесь фреймворками и библиотеками на все случаи жизни, универсальность не нужна!...
Для мелких проектов самое то, а для больших лучше писать свои велосипеды тут согласен.
Перейти в начало страницы
 
 
 autistic
сообщение 11.08.2013, 14:57
Сообщение #12


Геймер
******

Группа: Участник
Сообщений: 125
Регистрация: 05.05.2012
Пользователь №: 14751



Цитата(jamakasi @ 11.08.2013, 15:51) *
Для мелких проектов самое то

я бы согласился в том случае, если под мелким проектом подразумевалось сколотить что-нибудь на скорую руку, сильно не вникая в детали и не особо заморачиваясь на говнявость производимого кода, а так какой смысл тащить в небольшой проект туеву хучу зависимостей?
Перейти в начало страницы
 
 
 jamakasi
сообщение 11.08.2013, 17:38
Сообщение #13


Доктор Игровых Наук
*******************

Группа: Участник
Сообщений: 3523
Регистрация: 12.07.2007
Из: Энгельс
Пользователь №: 6560



refuse, например захотелось сделать просмотрщик моделей из какой либо игры. Вместо того чтобы тратить время на написание болванки рендера для строгой платформы(вин\линь) можно сразу заняться эксперементами и парсингом модели, а уже потом думать по поводу написания рендера с нуля. Или же просто захотелось поэксперементировать\поизучать какую либо область геймдева например бсп деревья то не заморачиваешься с областью ответственной за рендр.
Хотя сколько людей столько и мнений, мне лично именно эти библиотеки понравились больше чем sdl т.к. не имеют никакого мусора и ненужного кода, все прозрачно и понятно. По ощущениям работает быстрее чем тот же sdl. А так даже если начать делать на таком небольшом фреймворке и проект разрастется до чего то серьезного то можно будет и переписать одноименные методы либо просто подправить под свои нужны ,благо код более читаемый чем "опять же (IMG:style_emoticons/default/smile.gif) " в sdl.

PS: написал кашу какую то (IMG:style_emoticons/default/wink_old.gif) , не выспался я сегодня(

Сообщение отредактировал jamakasi - 11.08.2013, 17:40
Перейти в начало страницы
 
 
 autistic
сообщение 11.08.2013, 18:05
Сообщение #14


Геймер
******

Группа: Участник
Сообщений: 125
Регистрация: 05.05.2012
Пользователь №: 14751



Цитата(jamakasi @ 11.08.2013, 18:42) *
например захотелось сделать просмотрщик моделей из какой либо игры. Вместо того чтобы тратить время на написание болванки рендера для строгой платформы(вин\линь) можно сразу заняться эксперементами

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

Сообщение отредактировал refuse - 11.08.2013, 18:06
Перейти в начало страницы
 
 
 nuan
сообщение 11.08.2013, 18:10
Сообщение #15


Игровое Воплощение
*********************

Группа: Участник
Сообщений: 4657
Регистрация: 21.05.2008
Пользователь №: 8134



refuse а зачем заморачиваться ) если можно быстро и эффективно что-то сделать... бывает заказчик хочет сейчас ) ему не нужно чтобы быстро работало, стабильно или еще как то ) главное чтобы кому - то показать )
Перейти в начало страницы
 
 
 autistic
сообщение 11.08.2013, 18:31
Сообщение #16


Геймер
******

Группа: Участник
Сообщений: 125
Регистрация: 05.05.2012
Пользователь №: 14751



Цитата(nuan @ 11.08.2013, 19:14) *
refuse а зачем заморачиваться ) если можно быстро и эффективно что-то сделать... бывает заказчик хочет сейчас ) ему не нужно чтобы быстро работало, стабильно или еще как то ) главное чтобы кому - то показать )

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

ну а если ты волен самостоятельно принимать решение, то тебе тем более надо позаботиться о сопровождаемости, коллегах и тех несчастных, коим спустя годы придется разгребать это говнище )))
Перейти в начало страницы
 
 
 
 

 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 16.12.2019, 14:00