我用 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 可供學習的地方很少,因為遊戲畫面都是靠程式設計師硬幹出來的,唯一收穫只有聲音的部分,現在可以把波型跟聲音連在一起了
相關文章
沒有留言:
張貼留言