Google AdSense

2015年5月14日 星期四

我用 Python 寫的 Atari 2600 模擬器成功作二號

進度

  • 有聲音
  • 有自動的 frame skip 讓遊戲維持在正常速度

YouTube

下載

需求

資源

心得

  • 遊戲的進入點還有很大的問題,尤其 Atari 2600 的遊戲不像 NES 有 mapper,真不知道為什麼不同遊戲會有不同的進入點
  • 選錯程式語言了。因為 PyPy 需要熱身的關係,每個新場景都會 lag 一段時間,就算熱身完畢,PyPy 也還是不夠快。Atari 2600 的全速是 60 FPS,以 Air-Sea Battle 這款比較不耗資源的遊戲來說,大概可以跑到 55 FPS,而像 Alien 這款超耗資源的遊戲,只能跑到 30 FPS。雖然這速度勉強可以接受,但熱身實在太久了。RPython 會是比較好的選擇,當然直接用 C 更好。結論是,PyPy 不適合拿來寫遊戲或模擬器
  • PyPy 在把所有東西合到一塊後大概快了 10~30%,不過因為沒類別,程式變的很亂,沒必要實在不建議這樣搞
  • 這是我寫的第一個家用主機模擬器,前前後後大概花了快半年。個人覺得,寫模擬器跟拼圖很像,一開始不知道自己在搞什麼,等到關鍵的幾片放對位置,一切就豁然開朗。不過老實說,Atari 2600 可供學習的地方很少,因為遊戲畫面都是靠程式設計師硬幹出來的,唯一收穫只有聲音的部分,現在可以把波型跟聲音連在一起了

相關文章

沒有留言:

張貼留言