forum
Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1
  • 2
  • 3
  • 4

ТЕМА: Сравнение SDL2 и Cocos2d

Сравнение SDL2 и Cocos2d 24.11.2013 00:36 #4649

  • Wins_Vega
  • Wins_Vega аватар
  • Вне сайта
  • Разработчик
  • GameDev
  • Сообщений: 22
  • Спасибо получено: 10
  • Репутация: 5
До меня дошли слухи, что есть программист, который занимается разработкой логической игрушки для Андроида.

Для разработки используется кросплатформенный движок Cocos2d.

Так совпало что этой осенью я тоже занялся изучением компиляции программ под Андроид.
В частности я пробовал скомпилировать Qt4 и SDL2 для своего телефона.
С SDL все прошло более-менее, а вот Qt в этом плане еще очень сырая, никакой поддержки нет, компиляция Qt, видимо, для гиков еще более усердных чем я.

Собственно мне хотелось бы пообщаться с программистом, который работает сейчас на Cocos2d. Мне интересно сравнить производительность SDL2 и Cocos2d.
Wins Vega Wins
Последнее редактирование: 24.11.2013 12:46 от AnnTenna.
Администратор запретил публиковать записи.

Сравнение SDL2 и Cocos2d 24.11.2013 12:48 #4656

  • AnnTenna
  • AnnTenna аватар
  • Вне сайта
  • Администратор
  • ловлю волны настроения
  • Сообщений: 4133
  • Спасибо получено: 1387
  • Репутация: 324
Эй, Винс, вообще-то я и не говорила, что создам тему именно вчера, но если так не терпится, то ладно, но название ты ей дал несколько некорректное, и само сообщение тоже не совсем тактично сформулировано, так что подправила. А вообще, общайтесь, конечно, я только за деление опытом между программистами :whistle:
Последнее редактирование: 24.11.2013 12:49 от AnnTenna.
Администратор запретил публиковать записи.

Новый проект Анны (игрушка под андроид) 24.11.2013 13:01 #4659

  • StaticZ
  • StaticZ аватар
  • Вне сайта
  • Разработчик
  • Демиург
  • Сообщений: 292
  • Спасибо получено: 143
  • Репутация: 68
Здравствуйте, слухами земля полниться =)

На деле SDL не движок а API, сравнение их не совсем полит коректно. В целом мое мнение - Cocos2d хорош для простеньких игр, в то время как SDL лучше для сложных игр (к примеру для которых надо делать частичную прорисовку), хотя с кривыми руками никакой движок не спасет... Так же тут все зависит от платформы, в целом кокос по синтетическим тестам показал далеко не лучшие показатели хотя и обошел многие другие мобильные кроссплатформеные свободные аналоги (хотя то что та же XNA и даже LibGDX обогнали его с большим отрывом, говорит о нем явно не лучшим образом). Показательным является и падение быстродействия почти на 1\4 у MonoGames по сравнению с XNA. MonoGames - по сути является высокоуровневой имитацией XNA, примерно тоже самое твориться и коксом:

Конечно куда интереснее результаты на андройдах и айфонах, но думаю там примерно таже тенденция как на убунте. Так что в синтетических тестах SDL наверняка обойдет кокс с большим отрывом (если нет, то разработчики SDL полные лошары xD). Главные плюсы кокса - активное развитие, большое сообщество, поддержка большого числа платформ, лицензия из серии "делайте что хотите с ним". Но честно говоря я разочаровался в коксе - поддержка винды через одно место, не вставили даже Sleep(1), что бы не грузить CPU, для звука/музыки не работает управление громкости - пришлось даже такие вещи допиливать\переписывать. Так что в целом я склоняюсь к переходу в следующем проекте на SDL.

Если интересно то давайте сравним, только нужно определиться с алгоритмом для сравнения...

PS А вообще меня сейчас куда больше интересует производительность .Net на андройде, все таки скорость и удобство работы мне кажутся куда важнее....
Game isn't a dream, it is the reality, reality which is coming while we dream...
Последнее редактирование: 24.11.2013 13:09 от StaticZ.
Администратор запретил публиковать записи.
Спасибо сказали: AnnTenna

Сравнение SDL2 и Cocos2d 24.11.2013 13:04 #4660

  • StaticZ
  • StaticZ аватар
  • Вне сайта
  • Разработчик
  • Демиург
  • Сообщений: 292
  • Спасибо получено: 143
  • Репутация: 68
AnnTenna пишет:
и само сообщение тоже не совсем тактично сформулировано, так что подправила.
:lol: :woohoo: я даже не обратил внимания сначала... Кто у нас тут такие слухи распускает????
Game isn't a dream, it is the reality, reality which is coming while we dream...
Последнее редактирование: 24.11.2013 13:04 от StaticZ.
Администратор запретил публиковать записи.

Сравнение SDL2 и Cocos2d 24.11.2013 13:13 #4661

  • AnnTenna
  • AnnTenna аватар
  • Вне сайта
  • Администратор
  • ловлю волны настроения
  • Сообщений: 4133
  • Спасибо получено: 1387
  • Репутация: 324
:lol: :woohoo:
я даже не обратил внимания сначала... Кто у нас тут такие слухи распускает????
:blush: Нууу... :pinch: да, немного рассказывала, но каждый понимает по-своему :laugh: :side: я не так выражалась :silly: Да и кстати уже шло обсуждение движка и в блоге тоже немножко :) Ну разве плохо быть немножечко знаменитым :) Да, и спасибо за статистику :)

Но явно правильнее было бы выражаться не "новый проект Анны", а новый проект Локатора, а то складывается впечатление, что это какая-то моя личная игра :pinch:
Последнее редактирование: 24.11.2013 13:15 от AnnTenna.
Администратор запретил публиковать записи.

Сравнение SDL2 и Cocos2d 24.11.2013 15:41 #4662

  • Wins_Vega
  • Wins_Vega аватар
  • Вне сайта
  • Разработчик
  • GameDev
  • Сообщений: 22
  • Спасибо получено: 10
  • Репутация: 5
.Net несомненно работает лучше.
Если делать .Net кросплатформенное приложение, надо использовать Unity3D.
Это пожалуй лучший инструмент сейчас для разработки кросплатформенных игр.
Я с ним не много работал.

Unity3D
+IDE
+не надо париться с компиляцией под платформы. просто ставим галочку, остальное за нас делает IDE
+большое сообщество
+Активно разрабатывается большой командой
-Коммерческий
-Студия частенько падает (терпимо)


Что касается просто набора кода для доступа к графике, звуку, ввода.
Поработав с этим делом я выделил для себя следующие критерии сравнения.

!) Сколько придется париться прежде чем настроить проект (скажем в Visual Studio 2012) чтобы он нормально компилировался под нужную платформу
2) JavaActivity Сколько багов нужно отследить и устранить при работе на андроид. (SDL например у меня так и крашиться если во время работы приложения включить блокировку экрана / либо сменить ориентацию экрана)
3) Сколько нужно допиливать самому.

Вот что могу сказать про SDL
-По первому пункту:
Шаблонный проект открылся Visual Studio и нормально скомпилировался со всеми расширениями с помощью Tegra Android
-Второй
Код надо писать очень аккуратно. Любая не объявленная переменная или неочищенная память или динамический указатель могут привести к падению приложения.
Ряд глюков так и остался (приложение зависает при смене ориентации экрана или включения блокировки экрана. Вероятно это связано с работой JavaActivity, который управляет главным потоком приложения и общается с андроидом.
-Третий
Очень сыро все. Нужно закодить самому:
*Отрисовка Анимации
*Вывод динамического текста (оптимизация отсутствует)

С остальным проблем вроде нет. Звук/Сеть должны работать.
Для выполнения программ по универу я закодил систему интерфейса на SDL. (Формочки/Кнопочки)


Вывод:
Для больших и масштабных кросплатформенных приложений подойдет Unity3D. (С#/Java)
Но надо учитывать что и работы с ними будет больше. (Найти необходимые пакеты для юнити, разобраться как с ними работать)

SDL (С++) годится для быстрой компиляции маленького приложения. Основной проблемой однако является отсутствие каких-либо классов/библиотек для организации работы с воспроизведением звука/анимацией/интерфейса и так далее. Практически все нужно писать на С/С++ самому. Ряд багов при работе на Андроиде я так и не профиксил.
Wins Vega Wins
Последнее редактирование: 24.11.2013 15:43 от Wins_Vega.
Администратор запретил публиковать записи.

Сравнение SDL2 и Cocos2d 24.11.2013 17:33 #4666

  • StaticZ
  • StaticZ аватар
  • Вне сайта
  • Разработчик
  • Демиург
  • Сообщений: 292
  • Спасибо получено: 143
  • Репутация: 68
Unity3D - по мне раскрученный движок, а его заслуги сильно преувеличены. Для использования 2х мерных игр много не надо, для относительно объемных 3д игр под десктопы возможно его использование и имеет смысл в остальном - крайне не однозначно. Главная его проблема - экономическая неэффективность, мало того что он сам по себе стоит не мало, так еще компиляция под Android и/или iOs требуют сторонних библиотек Xamarian, лицензирование которых тоже стоит не мало. Дело еще усугубляется тем, что все они имеют очень дурную систему лицензирования - т.е. лицензия приобретается не на сам продукт а лишь на его использование в течении года. Доход от не больших игрушек даже не окупит затрат на оплату всего этого. Так что мое мнение - применение его не имеет никакого смысла до тех пор пока в основе разработки вашего проекта не будет лежать рабочий бизнес-план. Очевидно, что подобный подход не наш случай.

Что касается пунктов:
1) Настройка проекта - дело разовое, на общем фоне сил и времени затраченных на разработку это мелочь.
2) Не занимался, но опять же один раз разобраться и все.
3) Естественно, как я уже сказал SDL это не движок, а посути кроссплатформеный врапер OpenGL\DirectX и иже с ними. Если нужен движок используйте кокс, там навалом готовых средств и по работе с текстом и с спрайтами и анимацией и тд и тп.

Что касается выводов, то они у Вас совсем не верные, SDL как раз хорош для работы с сложными проектами, так как там стандартные возможности движков общего назначения типа кокса сильно мешаются. К примеру рендинг большой карты с большой плотностью тайлов ни один движок общего назначения не потянет - там не оптимизирован рендинг под это дело, тут проще написать самому к примеру на том же SDL, чем переписывать ядро чужого движка. А вот для простых проектов движки общего назначения как раз отлично подходят.

Другое дело что написание кода на С\С++ требует куда больше сил и времени на отладку и багофиксы (про возню с ошибками линковки я уж молчу - это настоящий кошмар). Использование C# сильно ускоряет и упрощает работу, позволяя по сути целиком сосредоточиться на разработки логики приложения, да и работать в нем одно удовольствие. Так что для следующего проекта я активно ищу способы перейти на C#. Пока остановился на связке dot42 + SDL. dot42 - C# для Dalvik Runtime, главным его преимуществом является, то что он пропускает компиляцию в промежуточный IL код, сразу компилируя Dex код, тем самым убирая лишнии задержки и потери проксирования и маршаллинга вызовов между средами CLR и Dalvik. Честно говоря лично сам пока не тестировал, но согласитесь звучит крайне заманчиво - .Net приложение посути будет на андройде плавать как рыба в воде безо всяких там сред Mono. Использование SDL как раз позволит абстрагироваться от платформо зависимого кода по работе с аппаратной частью. Так что данная связка будет работать в Windows, Linux, MacOs, Android, Windows Phone 8+, последний имеет родную поддержку C#. Конечно dot42 - тоже коммерческий продукт, но покупка пожизненной лицензии за 399$ того стоит. За бортом к сожалению остается iOs, ну да и фиг с ним, в принципе при большом желании можно скомпилировать под iOs через Xamarin, но имхо оно того не стоит....
Game isn't a dream, it is the reality, reality which is coming while we dream...
Последнее редактирование: 24.11.2013 17:37 от StaticZ.
Администратор запретил публиковать записи.

Сравнение SDL2 и Cocos2d 24.11.2013 22:29 #4667

  • Wins_Vega
  • Wins_Vega аватар
  • Вне сайта
  • Разработчик
  • GameDev
  • Сообщений: 22
  • Спасибо получено: 10
  • Репутация: 5
Вообще именно это я и хотел сказать. Что SDL не предоставляет каких-либо готовых решений в отличие от движков типа Unity.

Собственно что мы хотим обсудить конкретно.
Мы ищем среду/способ разработки приложений под андроид.

Не совсем понял как SDL будет сочетаться с dot42.
Но если dot42 покажет высокую производительность конкретно на андроид, стоит к нему присмотреться.


Как я понял у нас выбор следующий
dot42 cocs2d SDL2
Wins Vega Wins
Администратор запретил публиковать записи.

Сравнение SDL2 и Cocos2d 24.11.2013 23:23 #4669

  • StaticZ
  • StaticZ аватар
  • Вне сайта
  • Разработчик
  • Демиург
  • Сообщений: 292
  • Спасибо получено: 143
  • Репутация: 68
Моя цель - создание тяжелого олдскульного движка для разработки тайловых рпг-образных игр, так что мне и не нужны готовые решения ибо подходящих попросту нет (ну конечно кроме закрытых коммерческих движков). Естественно слоны за один день не растут так что это задачка скорее всего не на один проект.


SDL - дллка, зацепить ее через C# не сложно, ну а дальше все что остается это лишь создать контекст устройства на хендле форточки и можно приступать ее юзать. По хорошему для андройда и винфона конечно надо будет избавиться от нее, но это лишь в самом конце если не будет хватать тяги у двигла. dot42 - это посути компилятор C# т.е. код под андройд компилируем в нем, а под остальные платформы в студии (ну он тоже цепляется к ней на самом деле так что вылезать из студии не придется, что вообщем то для меня большой плюс). Ну а дальше надо лишь писать C# код совместимый с компилятором dot42.

Что касается кокса, то лично я в нем разочаровался, но так как уже начал на нем писать - этот проект закончу. Но опять же тут все зависит от целей и задач у меня они немного специфичные =)
Game isn't a dream, it is the reality, reality which is coming while we dream...
Администратор запретил публиковать записи.

Сравнение SDL2 и Cocos2d 05.12.2013 00:38 #4714

  • Wins_Vega
  • Wins_Vega аватар
  • Вне сайта
  • Разработчик
  • GameDev
  • Сообщений: 22
  • Спасибо получено: 10
  • Репутация: 5
Главная его проблема - экономическая неэффективность, мало того что он сам по себе стоит не мало, так еще компиляция под Android и/или iOs требуют сторонних библиотек Xamarian, лицензирование которых тоже стоит не мало. Дело еще усугубляется тем, что все они имеют очень дурную систему лицензирования - т.е. лицензия приобретается не на сам продукт а лишь на его использование в течении года. Доход от не больших игрушек даже не окупит затрат на оплату всего этого. Так что мое мнение - применение его не имеет никакого смысла до тех пор пока в основе разработки вашего проекта не будет лежать рабочий бизнес-план. Очевидно, что подобный подход не наш случай.

Можно пруф пожалуйста?
Wins Vega Wins
Администратор запретил публиковать записи.
  • Страница:
  • 1
  • 2
  • 3
  • 4
Время создания страницы: 0.128 секунд
сайт другаСветлая зона и Академия РПГ Мейкераkn4kn5Плагины для RPG MakerДневник одной нэкоknНовая Реальность Топ Разработка игр