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



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



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



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



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

568   9  

9 ответов:

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

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

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

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

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

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

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

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

Правка:

Вот некоторые последующие указатели и ссылки из вышеупомянутых документов, которые изменились.

ПРАВКА II:

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

Немного устаревший, но Этот является первым в серии сообщений о том, как использовать F# с фреймворком разработки игр XNA. Вы также можете найти в блоге F# for Game Development некоторые полезные материалы.

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

Попробуйте это Литье Спелов

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

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

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

Comments

    Ничего не найдено.