Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!

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

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

 
Ответить в данную темуНачать новую тему
> SFML библиотеки для кодеров, Помощь для искавших такой комплекс всего сразу
jamakasi
сообщение 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 smile.gif
PS: Существует книга по разработке игр на этих либах, гуглится в бухте пиратов по "SFML Game Development" biggrin.gif

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


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

Репутация:   384  
Группа: Участник
Сообщений: 4718
Награды: 9
Регистрация: 21.05.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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

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

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


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

Репутация:   384  
Группа: Участник
Сообщений: 4718
Награды: 9
Регистрация: 21.05.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   384  
Группа: Участник
Сообщений: 4718
Награды: 9
Регистрация: 21.05.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


Но net то и asp.net и сильверлайт )) это к вэб )
Перейти в начало страницы
 
VIGUR
сообщение 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. smile.gif Тогда же друг посоветовал сразу писать на на 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...

"- Ребята, хватит. Всё. Креатива больше не надо...
- Верно, согласны. Креатива больше не надо. НА СЕГОДНЯ креатива больше не надо." (с) Андрей Прохоров.

Перейти в начало страницы
 
nuan
сообщение 09.08.2013, 23:40
Сообщение #8


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

Репутация:   384  
Группа: Участник
Сообщений: 4718
Награды: 9
Регистрация: 21.05.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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


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

Репутация:   86  
Группа: Участник
Сообщений: 128
Награды: 4
Регистрация: 05.05.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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

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

Сообщение отредактировал refuse - 10.08.2013, 14:26


--------------------
nop
Перейти в начало страницы
 
jamakasi
сообщение 11.08.2013, 14:51
Сообщение #11


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   86  
Группа: Участник
Сообщений: 128
Награды: 4
Регистрация: 05.05.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

я бы согласился в том случае, если под мелким проектом подразумевалось сколотить что-нибудь на скорую руку, сильно не вникая в детали и не особо заморачиваясь на говнявость производимого кода, а так какой смысл тащить в небольшой проект туеву хучу зависимостей?


--------------------
nop
Перейти в начало страницы
 
jamakasi
сообщение 11.08.2013, 17:42
Сообщение #13


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

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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

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


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

Репутация:   86  
Группа: Участник
Сообщений: 128
Награды: 4
Регистрация: 05.05.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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

Сообщение отредактировал refuse - 11.08.2013, 18:10


--------------------
nop
Перейти в начало страницы
 
nuan
сообщение 11.08.2013, 18:14
Сообщение #15


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

Репутация:   384  
Группа: Участник
Сообщений: 4718
Награды: 9
Регистрация: 21.05.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


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


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

Репутация:   86  
Группа: Участник
Сообщений: 128
Награды: 4
Регистрация: 05.05.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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

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


--------------------
nop
Перейти в начало страницы
 

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

 



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