函数式编程适不适合游戏开发

cj323 · 15 小时前 · 722 次点击

之前写小游戏(非专业,纯玩)都是习惯面向对象。大概感觉是这样

class Object()
  #states: [position, health, direction...]
  #methods: [move, serializer]
        
class Player(Object)
  #player_methods: [attack...]

class Boss(Object)
  #boss_methods: [...]


p1, p2 = new Player(), new Player()
boss = new Boss()

p1.move(..)
p2.move(..)
boss.attack(..)
Renderer.render(p1, p2, boss)

学了几天 elixir 后发现函数式也挺顺手,但是不知道有没有实际用函数式开发游戏的。

global_state<Immutable> {
  player1_pos: ..
  player1_health: ..
  player2_pos: ..
  player2_health: ..
  boss_pos: ..
  boss_health: ..
  ...
}

fn move: state -> new_state
fn move_player: () -> state -> new_state
fn move_player_by_num: num -> () -> state -> new_state
fn move_boss: state -> new_state
fn boss_attack: state -> new_state

global_state
  |> move_player_by_num(1)
  |> move_player_by_num(2)
  |> move_boss
  |> bos_attack
  |> render

感觉除了内存占用大一些没其他坏处,有有经验的分享下么?

举报· 722 次点击
登录 注册 站外分享
6 条回复  
VchentozV 初学 15 小时前
以前 vczh 安利我函数式编程, 我不知道学了有什么用, 同问.
xgdgsc 小成 15 小时前
https://github.com/Kyjor/JulGame.jl
xgdgsc 小成 15 小时前
https://github.com/heyx3/Bplus.jl/blob/master/docs/!why.md
ymmud 初学 15 小时前
有助于提升代码质量
VchentozV 初学 15 小时前
@ymmud 国际上有哪个大公司在使用吗? 有什么工业界实际的项目在运用吗?
GeruzoniAnsasu 小成 14 小时前
https://fex.com/t/847038#r_11567399 看场景。函数式编程你明白是在定义一种变量约束关系,与从原始数据到目标数据的 transform 就好。
返回顶部