[遊戲開發] 24點數學遊戲 - 網站製作篇(一)

更新 發佈閱讀 4 分鐘
raw-image

前言

大家好,這篇文章主要介紹整個網站的架構以及用到的開發工具與套件,也回頭看看自己寫過的程式,哪些地方可以重構與優化的地方,幫自己 Code Review,首先這個網站建構在 Next.js 框架上,用的是 14 以上的版本,Next.js 在 13 版本後開始推出了 App Router 的架構,跟以往的 Pages Router 也很大的不同,相似的地方在於不需要特別定義路由來指定頁面,只需設定好資料夾結構即可,那我們就開始介紹吧。

開發工具

  1. 原始碼編輯器 - Visual Studio Code
  2. 開發執行環境 - Node.js
  3. 開發框架 - Next.js
  4. CSS框架 - Tailwind CSS
  5. UI Library - shadcn/ui
  6. 動畫 Library - framer motion
  7. 多人連線套件 - socket.io
  8. 狀態管理工具 - zustand
  9. js 超集合語言 - Typescript
  10. 版本控制 - git

以上是主要是用到的套件與開發工具,其中比較重要的兩個套件是 Next.js 與 socket.io,為了解決 SEO 以及自己的技能樹是 React 所以選擇使用 Next.js 來開發,因為要做多人連線的功能,socket.io 是使用度很高的套件,網路上使用的人也很多,如果遇到問題的話很好找答案且使用起來非常簡單。

網站架構

首先在安裝完 VScode、Node.js、git 後可以在終端機下以下指令:

git clone https://github.com/JohnsonHuang555/math24master.git

把整個專案下載下來到根目錄下

npm install

安裝專案使用到的套件

npm run dev

把專案運行起來並跑在 http://localhost:3000,接著就可以在本地端進行開發與測試


網站架構

網站架構

上圖是整個網站架構,app 為 Next.js 13 以上的版本所推出的新頁面結構。

app router

app router

資料夾結構會對應到網址例如:

single-play => https://math24master.com/single-play

multiple-play => https://math24master.com/multiple-play

Page

每個資料夾下需要有 page.tsx 才會讀取到路徑,畫面呈現的程式碼會寫在這裡,在 app 底下的 page 就是首頁 https://math24master.com。

Layout

主要用來設計頁面的模板,可以把不會變動的區塊例如:header、footer 定義在這裡,當切換頁面的時候,Layout 不會 rerender,Template 則相反,詳細的用法可以到 Next.js 官方文件查看。

components

components

上圖為所有元件,把重複性的區塊抽成元件能夠幫助一樣的功能或區塊的程式碼重複利用,達到易維護、易測試、易閱讀的目的,把相同功能或類型的元件再分類會容易找到,一眼就會看出它的作用。

models

models

上圖是 models,因為使用了 Typescript 要定義各種類型,可以減少許多開發中的低級錯誤,例如打錯字😂,也可以明確知道物件中的屬性成員是哪種型別,方便在開發的時候發現問題。

public 是放 Asset 的地方,例如圖檔、字型等等,這邊就不放圖了。

Server

Server

上圖是 server 的入口點,Next.js 可以客製化自己的 server,我在 server 中初始化了 socket.io 並設定連線及所有事件。

在開發 node 時候每次啟動時都要下 node server/index.js 實在是很不方便,因此我使用了 nodemon 這個套件,它可以幫助我們自動重啟,增加開發上的效率。

nodemon

nodemon

上圖我們把用的的指令交給 nodemon 來執行,當儲存檔案後他會重新執行 exec 的指令,因為我們是 typescript 所以要用 ts-node 來啟動。

結語

這篇文章介紹了網站的架構以及用到的開發工具,每種套件就可以再寫幾篇文章來介紹了,需要動畫就上網找 github 星星最多最多人用且簡單好上手的,不想慢慢切版切元件,就上網找哪些適合自己網站的 UI Library,這都是開發上的樂趣,一步步把網站建構起來的過程,之後的文章會把每個大項切成小項介紹,或是各種套件的使用方式。

謝謝您的閱讀,我們下篇文章見 ^^

參考網站


留言
avatar-img
Johnson Huang的沙龍
7會員
10內容數
Johnson Huang的沙龍的其他內容
2025/01/09
這是一款休閒的記憶配對翻牌遊戲,遊戲總共超過 1000 個關卡等你來挑戰,玩家可以選擇各種不同的主題,例如可愛的動物、繽紛的顏色、超鬧的古人、路邊的樹木與草叢,不只是挑戰你的記憶力還要多一點觀察力才能闖關成功...
Thumbnail
2025/01/09
這是一款休閒的記憶配對翻牌遊戲,遊戲總共超過 1000 個關卡等你來挑戰,玩家可以選擇各種不同的主題,例如可愛的動物、繽紛的顏色、超鬧的古人、路邊的樹木與草叢,不只是挑戰你的記憶力還要多一點觀察力才能闖關成功...
Thumbnail
2024/08/28
大家好,要來介紹一款新開發的翻牌遊戲,可以訓練玩家的反應與記憶力。簡單易懂的遊戲規則以及有趣的題組設計。目前遊戲已經上線,歡迎玩家一起來挑戰!遊戲包含無限接關和排行榜機制,讓玩家能與朋友一較高下。下篇文章將探討遊戲開發技術及購買網域的流程。
Thumbnail
2024/08/28
大家好,要來介紹一款新開發的翻牌遊戲,可以訓練玩家的反應與記憶力。簡單易懂的遊戲規則以及有趣的題組設計。目前遊戲已經上線,歡迎玩家一起來挑戰!遊戲包含無限接關和排行榜機制,讓玩家能與朋友一較高下。下篇文章將探討遊戲開發技術及購買網域的流程。
Thumbnail
2024/08/18
文章介紹了遊戲的核心事件,包括選牌、出牌和計算分數的邏輯與實作。首先介紹遊戲開始時的選牌事件,接著解析出牌事件及算式計算的過程,最後詳述分數計算的邏輯。
Thumbnail
2024/08/18
文章介紹了遊戲的核心事件,包括選牌、出牌和計算分數的邏輯與實作。首先介紹遊戲開始時的選牌事件,接著解析出牌事件及算式計算的過程,最後詳述分數計算的邏輯。
Thumbnail
看更多
你可能也想看
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
這篇文章介紹了網站的整體架構以及開發時所使用的工具和套件,包括 Next.js、Tailwind CSS 和 socket.io 等。文章回顧了程式碼的重構與優化,幫助開發者提高工作效率,適合希望深入瞭解前端開發和網站架構的讀者。
Thumbnail
這篇文章介紹了網站的整體架構以及開發時所使用的工具和套件,包括 Next.js、Tailwind CSS 和 socket.io 等。文章回顧了程式碼的重構與優化,幫助開發者提高工作效率,適合希望深入瞭解前端開發和網站架構的讀者。
Thumbnail
建立React專案-React白話文運動:前一篇文章介紹了三個名詞,分別是:Babel 是什麼?Webpack 是什麼?Npm 是什麼?這一篇則是會手把手建立 React 專案,包含:建置環境、建立 React 專案、啟動專案、如何使用 React 擴充套件。這邊也包含:官方 CRA 建置環境以及自
Thumbnail
建立React專案-React白話文運動:前一篇文章介紹了三個名詞,分別是:Babel 是什麼?Webpack 是什麼?Npm 是什麼?這一篇則是會手把手建立 React 專案,包含:建置環境、建立 React 專案、啟動專案、如何使用 React 擴充套件。這邊也包含:官方 CRA 建置環境以及自
Thumbnail
htmx前陣子還只是網路迷因,近期拿來搭配go的系列影片越來越多了,兩者都可以用很少量的程式實作出功能,很適合拿來做些簡單的project。
Thumbnail
htmx前陣子還只是網路迷因,近期拿來搭配go的系列影片越來越多了,兩者都可以用很少量的程式實作出功能,很適合拿來做些簡單的project。
Thumbnail
React 是開發網頁、手機前端最流行的 JavaScript 套件之一。React 由 Meta 開發。React 並不是一個框架。這是因為它只負責呈現 UI 的元件。不過,React 為 Angular 和 Vue 等框架提供了另一種解決方式,使我們可以與它一起完成覆雜的前端頁面功能。
Thumbnail
React 是開發網頁、手機前端最流行的 JavaScript 套件之一。React 由 Meta 開發。React 並不是一個框架。這是因為它只負責呈現 UI 的元件。不過,React 為 Angular 和 Vue 等框架提供了另一種解決方式,使我們可以與它一起完成覆雜的前端頁面功能。
Thumbnail
Vue 筆記,Nuxt 簡介
Thumbnail
Vue 筆記,Nuxt 簡介
Thumbnail
開始接觸網頁開發後,發現自己缺乏實作經驗, 於是老師推了 Frontend Mentor challenge , 免費的通常是獨立頁面,花錢則是可以挑戰多頁式網站, 初學還沒學到 javascript 或 API 也沒關係, 新手也有提供 HTML/CSS 的練習。 很適合用來增加自己寫網頁的經驗,
Thumbnail
開始接觸網頁開發後,發現自己缺乏實作經驗, 於是老師推了 Frontend Mentor challenge , 免費的通常是獨立頁面,花錢則是可以挑戰多頁式網站, 初學還沒學到 javascript 或 API 也沒關係, 新手也有提供 HTML/CSS 的練習。 很適合用來增加自己寫網頁的經驗,
Thumbnail
這篇想來寫,剛碰到js得時候,為了讓程式可以運作而安裝Node.js 。Node.js 是能夠在伺服器上面運行 JavaScript 的應用平台環境,透過 Node.js 提供的函式庫與執行環境能完成伺服器端服務。此篇幅就直接從純後端的角度切入摟(對不起拉我寫來寫去還是不知道怎麼順順的寫好文章開頭Q
Thumbnail
這篇想來寫,剛碰到js得時候,為了讓程式可以運作而安裝Node.js 。Node.js 是能夠在伺服器上面運行 JavaScript 的應用平台環境,透過 Node.js 提供的函式庫與執行環境能完成伺服器端服務。此篇幅就直接從純後端的角度切入摟(對不起拉我寫來寫去還是不知道怎麼順順的寫好文章開頭Q
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News