Я веб-разработчик на C # и хочу расширить свой набор навыков и повеселиться во время работы. Я знаю некоторые основы C ++, и я хотел бы написать для себя простой 2D-движок / игру, используя C ++. Какие еще библиотеки или SDK мне нужны, и где я могу найти учебники и информационные ресурсы для дальнейшей работы?
Я уже смотрел в XNA с C #. Для этого есть много ресурсов, но я бы предпочел использовать продукты не Microsoft. Смысл этого в том, чтобы немного повеселиться и стать лучшим программистом.
Пожалуйста, обратите внимание, что я не спрашиваю о лучшем месте для начала. Я просто прошу на место , чтобы начать.
Спасибо за любую помощь!
Я бы предложил использовать SDL . Прошло много времени, поэтому документация и поддержка довольно хороши, и это один из самых простых способов, которыми я знаю, получить поверхность для рисования на экране. Это даст вам возможность практиковаться в написании классов на C ++ (так как вы, вероятно, захотите много обернуть вызовы функций SDL C), а также даст вам некоторый опыт использования указателей и ссылок и некоторого базового управления памятью. Управление собственной памятью является одним из основных различий между C ++ и C #.
источник
Лично я бы выбрал Allegro 5 по следующим причинам:
Он имеет систему сборки на основе CMake. Это намного проще, чем большинство систем сборки, работать на разных платформах. Это кажется незначительной вещью, но в целом это очень важно. Это делает сборку библиотеки намного проще.
SFML все еще находится в значительном движении. 2.0 - довольно существенное изменение. Принимая во внимание, что Allegro уже претерпел значительные изменения с версией 5, и теперь все дело в стабильности.
Он охватывает модульность иначе, чем SFML. С SFML вы запрашиваете конкретные компоненты, но получаете их все. Если вы попросите графический компонент, вы получите весь графический компонент. С Allegro 5 вы всегда получаете графический компонент. Но если вы не хотите использовать растровые загрузчики Allegro, вам не нужно; Вы можете использовать свой собственный.
У него очень хорошая документация. SFML использует документацию в стиле Doxygen, но даже она довольно спартанская. Принимая во внимание, что Allegro 5 является более всеобъемлющим, с функциями, сгруппированными в зависимости от конкретных систем, которые они охватывают. Это не идеально, но лучше в целом.
Они достаточно умны, чтобы не пытаться делать потоки. В C ++ 11 / Boost.Threads, широко доступном или готовом к использованию, использование другой обертки потоков может быть не просто проблематичным: это может быть опасно для правильной работы вашего кода.
источник
Я думаю, что фантастическим местом для начала является LazyFoo . Это поможет вам работать с SDL быстрее, чем в любом другом месте, которое я видел. Я бы порекомендовал быстро войти в OpenGL (как только вы его освоите), потому что вы получите гораздо больше отдачи от своего курса программирования - с аппаратным ускорением. Если вы идете по этому пути, я рекомендую это руководство .
источник
Я бы порекомендовал SFML, если вы используете c ++. Он быстро выведет вас на экран, и использовать его вместе с игровым кодом C ++ просто.
источник
Учитывая, что в наши дни OpenGL ускоряет двумерную сторону, не так важно иметь доступ к быстрым программным средствам визуализации, которые есть у Allegro и SDL (или были в более ранних версиях). Однако когда я выбираю библиотеку, я сосредотачиваюсь на зрелости проекта, пользовательской базе и документации больше, чем скорость (при условии, что скорость разумна), и я бы сказал, что SDL и Allegro выигрывают на этих фронтах. SDL также выпустила тройные титулы AAA, такие как Civ: Call to Power.
источник