Подтвердить что ты не робот

Хорошие ресурсы по использованию функционального программирования в разработке игр?

Я новичок в этой парадигме функционального программирования, но пока мне это нравится. Поскольку я участвую в разработке игр, я хочу попробовать в написании некоторых игр в чисто функциональном стиле программирования. Я не против языка - будь то Erlang, Haskell, Lisp или даже Ruby (я узнал, что он поддерживает функциональные функции программирования).

Ну, очевидно, что для изучения функционального программирования (на самом деле, что угодно) лучшим советом было бы просто изучить функциональный язык и много программировать в нем. Но я ищу некоторые ресурсы по использованию функционального программирования в играх и игровых движках (2D или 3D).

Итак, знаете ли вы о каких-либо функциональных статьях программирования/книгах/блогах/независимо от их использования в реальных играх или о разработке простых игровых движков с функциональными языками программирования и о взаимодействии между игровым движком и движком игры в этой функциональной среде

Пожалуйста, не предлагайте что-то вроде "просто начинайте программировать простые вещи в функциональном и постепенно это придет к вам". Как я сказал ранее, это очевидно, но то, что я прошу здесь, - это некоторые ресурсы по этой теме, если они есть. Спасибо!

4b9b3361

Ответ 1

Ну, вы могли бы сделать хуже, чем изучение кода некоторых из этих игр haskell.

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

Блоггеры с соответствующим содержанием включают Джеймс Гааг.

Обратите внимание на FunGEn по первой ссылке - хотя и не активно поддерживается, это 2D-движок игры с рабочими примерами.

Также есть чистый язык с ним игровая библиотека и красивые скриншоты.

Ответ 2

Ну, я в основном программист Haskell, поэтому я могу предложить только попробовать библиотеки Haskell, такие как Gtk2hs. Это в основном для 2D-приложений и пользовательских интерфейсов, но это хорошо для начала работы. Еще более простая библиотека - это HGL, но ее немного прослушивание и устаревание. Если вы хотите попробовать messier (но кулер!), То перейдите на Haskell OpenGL-библиотеку, которую можно найти здесь. Я никогда не пробовал работать с Haskell и OpenGL, но если вы посмотрите ответ, представленный Саймоном Майклом, есть примеры игр в Hackage Game Section, которые используют OpenGL.

Извините, что не связывал все библиотеки, но я новый пользователь, и мне не разрешено использовать более одной гиперссылки. Если вы google их, они должны придумать легко, хотя.

Ответ 3

Если вас интересует сетевая сторона игр, Joel Reymont написал о своих опытах, кодирующих онлайн-онлайн покерный сервер. Я думаю, что он сделал по крайней мере три различных реализации (Lisp, Erlang, Haskell). К сожалению, его материал разбросан по всему Интернету. Вот два указателя, которые могут вам пригодиться:

EDIT:

Ниже приведены некоторые указатели и ссылки из приведенных выше документов.

ИЗМЕНИТЬ II:

Джоэл, очевидно, продал свой покерный код с тех пор, поэтому он больше не доступен как с открытым исходным кодом.

Ответ 4

Немного устарел, но этот является первым в серии сообщений о том, как использовать F # с картой разработки игр XNA. Вы также можете найти в блоге F # для разработки игр есть полезный материал.

Ответ 5

Frag - это 3D-игра для первого лица, написанная в Haskell, Мун Хон Чонг. Он лицензируется под лицензией GPL. Дизайн и реализация Frag описывается в тесте Мун, функциональном программировании и 3D-играх.

Ответ 6

Wings3D - это пакет Erlang, который используется для рисования каркасных фигур. Я думаю, что он используется в играх, но это не моя сумка...

Ответ 8

Хорошо, я не уверен, насколько это помогает, и вы, вероятно, уже слышали об этом, но кажется очевидным началом: здесь статья о Джаке и Дакстере.

Ответ 9

Как утверждает выше Натан Сандерс (из моего собственного googling на "haskell games gc" ) было время, когда у Haskell были (?) некоторые довольно серьезные проблемы с GC... эта старая статья (я знаю, 6 лет), также см. этот вопрос. Поскольку Frag существует, я предполагаю, что они должны были зафиксировать хотя бы некоторые вещи в более поздних версиях GHC.