iT邦幫忙

1

「與AI探索天文」如何藉由Codex用Python打造一個讓玩家認識星系研究的網頁RPG遊戲?

  • 分享至 

  • xImage
  •  

我之前的文章分享了如何用ChatGPT、Claude、Replit、Windsurf、Lovable、Bolt、Cursor等AI工具製作天文教育apps,這篇文章則接續分享如何藉由OpenAI的程式開發工具Codex,以Python的網頁開發框架Flask,打造出一個讓玩家認識星系研究領域及相關觀測資料的網頁RPG遊戲。歡迎追蹤《與AI探索天文》FB粉絲專頁,並訂閱《與AI探索天文》Substack電子報。我會分享如何運用各種AI工具,來探究你我好奇的天文主題、將它連結到生活及其他學科領域,並結合相關開放資料,打造有趣的天文應用程式與遊戲。我希望藉由這些分享,讓每個人都可以與AI創造出專屬自己的天文探索故事,拉近我們與星空的距離。

你閱讀著《資料視覺化:用Python為星空作畫》的9.1節,看到一個AI角色,i蟒,教你如何從網路平台下載到星系的觀測資料。你想起在4.1節,遊戲《獵星者旅店》中的老闆跟你提過「島宇宙拼圖同好會」,那是由一群熱愛星系的拼圖愛好者所組成,他們在旅店中蒐集拼圖,以拼湊出那些島宇宙形成、演化和相互作用的祕密。你好奇著,自己是否可以藉由AI工具的協助,打造出像這樣讓玩家蒐集拼圖來認識星系研究的網頁RPG遊戲呢?

你想到的第一步,是先用AI工具取材並彙整一篇介紹星系研究主題的報告,以便作為遊戲的天文知識庫。於是你闔上書,打開ChatGPT切換到深度學習功能,輸入:「天文學家為何、以及如何研究星系?星系研究涵蓋哪些主題?有哪些相關的觀測資料?又該如何用Python取得並分析這些資料?請彙整英文資訊與最新學術論文,撰成一份適合一般大眾閱讀的臺灣正體中文調查報告。」

https://ithelp.ithome.com.tw/upload/images/20250927/201034360oBrypENk3.png

等待報告產出的過程,你一邊吃著老麵揉成的高麗菜水煎包,一邊複習那篇讓你認識ChatGPT深入研究功能的文章:「如何用ChatGPT的深入研究功能,設計出結合恆星演化知識、編劇創作及AI應用的自主學習計畫?」。完食後,ChatGPT剛好通知已完成調查報告。

https://ithelp.ithome.com.tw/upload/images/20250927/20103436aopeGq5iea.png

你得到打造這遊戲的第一塊磚了,你思考著下一步:需要有個能把這塊磚當作基礎、並依照我的指揮開發出遊戲的AI工具。

你最近在瀏覽社群網站時,看到有個叫Codex的程式開發AI工具好像很厲害,但翻遍《與AI探索天文》FB粉絲專頁中的文章,ChatGPTClaudeReplitWindsurfLovableBoltCursor…就是沒看到介紹Codex的文章。

於是,你向筆電視窗中的我求助。

我回答:「Codex是ChatGPT的母公司OpenAI所推出的、專門針對程式開發的AI工具組,目前需要透過付費的ChatGPT帳號才能使用。Codex包含三種工具:一種是整合到程式編輯器裡的Codex IDE擴充套件;一種是在電腦終端機透過指令使用的Codex CLI;最後是能在雲端環境修改GitHub上程式的Codex Cloud。針對像你這種初學者,我建議在Visual Studio Code(VS Code)程式編輯器中使用Codex IDE,因為它有新手友善的對話框介面。我已幫你下載安裝好VS Code及其Codex IDE擴充套件,也建立了專案資料夾『galaxy_rpg』,並將你剛剛在ChatGPT產生的星系研究調查報告PDF檔下載至該資料夾。我已用VS Code開啟了這個資料夾,現在畫面右側顯示的是Codex對話框,下方有個下拉選單可以讓你切換AI模型,我先幫你選了『gpt-5-codex high』。你可以開始指揮它了。」

你思索著該如何指揮AI。你想起在《資料視覺化:用Python為星空作畫》的1.1節中,i蟒曾提過Flask這個能開發網頁的Python工具,雖然不清楚Flask是什麼,但你還是在Codex介面中開始輸入指令:「請你依照下列要求,撰寫一份以Markdown格式呈現的開發規劃文件plan.md。這份文件的目的,是讓AI依照規劃逐步完成一個以Flask開發的天文教育RPG遊戲。在我確認規劃之前,請不要直接撰寫任何程式碼。你必須將資料夾中的PDF檔案作為你規劃及開發所需的天文知識庫,並且連網查閱Flask的最新版本及官方文件,以確保天文知識與開發技術的正確性。

遊戲名稱為《獵星者旅店—島宇宙拼圖同好會》,場景及角色為像素風格。玩家置身於一間旅店,透過方向鍵與空白鍵在旅店各處探索,並與『島宇宙拼圖同好會』成員交談互動,過程中將蒐集多塊記載著星系研究知識的拼圖。拼圖共分為四大種類,對應PDF檔案中的四項主題:『研究星系的動機與重要性』、『星系研究的主題範圍』、『星系觀測的資料來源與資料庫』、『使用Python存取與分析星系資料』。每一大類再拆分為多個小拼圖塊,於探索中逐步取得,每一塊皆承載其所屬主題的片段知識。

遊戲介面要以台灣繁體中文呈現,並包含主選單、存檔與讀檔功能,以及拼圖道具蒐集系統。整體遊玩時間應設定在一小時以內。所有像素風格畫面與互動均以網頁技術實作,不需引入任何額外圖片資源。請避免將情節與互動設計成考試式問答形式,而是要讓玩家體驗探索的樂趣。」

https://ithelp.ithome.com.tw/upload/images/20250927/20103436pJPZOqm5Oj.png

送出指令後,約莫等了喝一杯豆漿紅茶的時間,你就看到它產出的開發規劃檔案。你瀏覽了一下,然後請它開始根據這個規劃逐步完成遊戲開發。

https://ithelp.ithome.com.tw/upload/images/20250927/20103436iEpPMv61R5.png

在AI執行任務的過程,你看到程式碼檔案一個接一個地產生。但因為要開發的功能較多,它會分段執行。所以每當它完成一段停下來時,你就指示它:「請比對@plan.md和目前已實作的程式,摘要已經完成及尚未完成的部份,並擬定下一步驟。」

https://ithelp.ithome.com.tw/upload/images/20250927/20103436BBQ5vqHjj0.png

就這樣經過幾輪,它回應已經依照規劃完成開發。你依循它產生的README.md檔中的步驟,成功在瀏覽器開啟這個網頁遊戲。

https://ithelp.ithome.com.tw/upload/images/20250927/20103436GY34RuXHLr.png

你試玩了一下,覺得不甚滿意,於是不斷指示AI進行修正和優化,例如:

  1. 遊戲過程中無法存檔,也無法回到主選單,請修正這問題。
  2. 目前遊戲畫面、物品及人物都是簡單的幾何圖形,不符合像素RPG風格,也不像一個旅店的場景。請加強像素風格的細節,例如各個角色要呈現人的形體、旅店各場景要有擺設等等。
  3. 在遊戲主選單的「離開旅店」選項上方,新增一個「開發技術介紹」。當玩家點選後,會展開一個仿捲軸風格的頁面,內容說明將介紹Flask是什麼,以及它如何透過Python程式讓網頁運作,請以淺顯易懂的方式說明。
  4. 請在網頁底部加上版權宣言:©2025 本遊戲由蘇羿豪藉由Codex協助開發,作為「與AI探索天文」天文教育產品開發計畫的一部分。其中“蘇羿豪”和“與AI探索天文“要分別連結到https://astrobackhacker.twhttps://www.facebook.com/astroeduai這兩個網頁。

最後,你在遊戲主選單開啟新旅程,前往旅店蒐集一片片承載星系祕密的拼圖。而你也將在《資料視覺化:用Python為星空作畫》的9.2及9.3節裡,與AI用Python下載並視覺化呈現哈伯和韋伯太空望遠鏡觀測的星系影像及光譜資料。

https://ithelp.ithome.com.tw/upload/images/20250927/20103436dPINTRMlul.png
https://ithelp.ithome.com.tw/upload/images/20250927/20103436Q1yhei5qbX.png
https://ithelp.ithome.com.tw/upload/images/20250927/20103436Sc482qlKhL.png
https://ithelp.ithome.com.tw/upload/images/20250927/20103436f8RfiGG0Na.png
https://ithelp.ithome.com.tw/upload/images/20250927/20103436IYtSCWZGj3.png

此篇文是由蘇羿豪經ChatGPT及Codex協助創作,文章以「創用CC姓名標示─非商業性 4.0(CC BY-NC 4.0) 國際版授權條款」釋出。歡迎分享並追蹤「與AI探索天文」FB粉絲專頁或我的Threads。也邀請你訂閱《與AI探索天文》電子報


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言