自製WebGame相關技術閒聊

製作Webgame技術交流、Webgame相關程式功能改造、中文化技巧等相關討論。

版主: Mr.Simon, 涅魂, 小剎, BSM

znn
 
文章: 36
註冊時間: 2009-02-18 4:06 pm

Re: 自製WebGame相關技術閒聊

文章znn » 2013-08-27 11:43 am

幽雲 寫:我自己是寫actionscript的

其實對我來說在大專案下才會需要用到像mvc架構
不然光是在場景以及State轉換我都覺得好多餘 :face10:

不過有些framework還蠻方便的 , flash有套citrusengine
超快速就可以寫出2D卷軸遊戲 , 不過用Flash要搭jave或其他語言來存取資料
才是讓我覺得棘手(?)的地方

適當的輕量MVC是一個不錯的選擇
而用Flash開發遊戲其實可以直接開一大篇來慢慢討論
或是也有不少網站可以找到相關Flash開發遊戲的資源
那又是一個方面的專業討論

我也有想過在自己的遊戲中,戰鬥的部份借用Flash來顯示
但無奈光是編寫程式都應付不來
如果還要加上美美的動態顯示,那可會吃掉我所有的時間了



znn
 
文章: 36
註冊時間: 2009-02-18 4:06 pm

Re: 自製WebGame相關技術閒聊

文章znn » 2013-08-27 4:36 pm

再補一張我的MVC基礎架構圖

圖中分Client及Server端
Client端主要是由Web Browser支援的Html、CSS及Javascript
Server端目前是用PHP實作這個MVC的構架,當然無法把詳細的內容全顯示出來(如Exception的統一處理)

但從圖中可以看出User提出一個請求後,會經過一個流程,最後送回到User
右方的Server MVC畫的就是我上面說的雛型架構,當然還有conf設定檔,但我沒畫出來
左方的Client端目前還沒建立一個完整個架構,但HTML CSS及Javascipt都有獨立分開
比較欠缺的是JavaScript的架構,雖然目前依詢一定的流程在走,但有點鬆散所以只把大方向畫出來
MVC.jpg
基礎MVC架構圖
MVC.jpg (126.08 KiB) 被瀏覽 28313 次


文字大概說明一下
我舉一個發送訊息的例子,以下[]起來的部份是沒畫在圖中的細節

1.User在輸入完訊息後按下發送訊息的Button觸發發送Button的onclick

2.[Javascipt會先判定是否有填寫要發送的訊息,如果沒有就先在Client端顯示警告]

3.透過Ajax的方法把資料傳到Server,這裡我設定的action"動作"是"chat"

4.Server端的Controller接到post['action']是'chat',所以就執行chat function(就是Run Action的地方)

5.[function chat我的第一件事也是判定post['msg']是否有資料,因為光靠Client的判定是靠不住的]

6.接下來function chat中,我們呼叫了一個chat 的Model物件,這個物件專門處理聊天訊息

7.利用這個chat Model把要傳的訊息寫入DB(Insert)

8.然後用chat Model中的取得最新訊息function把要回傳給Client的訊息找出來

9.再透過View的JsonView元件把要傳回給Client的訊息組合JSON Object傳回

10.Client端的Ajax接收到Server的JSON Object後把這個JSON資料丟到Javascript的chat物件

11.Javascript的chat物件會依造Server送來的資更新聊天的訊息到Html上


PS:順便小補充一下
有很多的判斷如果可以的畫先在Client的Javascript先過濾一次,如有沒輸入訊息,等級夠不夠裝備
但在Server還是要再過濾一次,因為Client端的過濾是可以被有心人直接跳過的
也許你會問那就全在Server端過濾就好了不是嗎?我的回答是在大部份正常的情況下
Client的第一道過濾會先撐下大部份的情況,減少不少Server端的負擔
在網站的環境中充滿找漏洞的玩家,但我們不能怪他們,因為寫的程式有漏洞其他玩家才不會管是什麼問題
你就是要對這些漏洞造成的損失負責,有關程式安全的問題可以寫一大篇,要注意都注意不完
但知道一個防一個,減少程式上的漏洞是必然的,以後有機會再跟大家分享




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: 自製WebGame相關技術閒聊

文章ETERNAL » 2013-08-31 9:13 am

很好的教學,連MVC都講了

不像我,我認為該知道的東西就懶得提,比我寫的用心多了 :face6:


水色論壇 http://www.et99.net
簡恩峻分享

znn
 
文章: 36
註冊時間: 2009-02-18 4:06 pm

Re: 自製WebGame相關技術閒聊

文章znn » 2013-08-31 5:16 pm

因為目前寫到戰鬥
web game的戰鬥大概就是下指令等結果
在這樣的架構之下我又卡住了

在上網找資料的過程中
又接觸到了Node.js
因為是今天才剛接觸,目前連環境還沒架設好
等有一些心得再來分享

說不定會被之前的架構全打掉重弄@@

E大別這樣說
這篇沒在主題寫心得寫閒聊
也是因為自己在邊做邊學
內容真的是很亂,想到什麼有時間就先寫什麼
所以也完全稱不上什麼教學
因為沒有一步一步把操作內容詳細寫出來
只希望可以越來越多人一起來討論




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: 自製WebGame相關技術閒聊

文章ETERNAL » 2013-09-02 5:56 pm

znn 寫:因為目前寫到戰鬥
web game的戰鬥大概就是下指令等結果
在這樣的架構之下我又卡住了

在上網找資料的過程中
又接觸到了Node.js
因為是今天才剛接觸,目前連環境還沒架設好
等有一些心得再來分享

說不定會被之前的架構全打掉重弄@@

E大別這樣說
這篇沒在主題寫心得寫閒聊
也是因為自己在邊做邊學
內容真的是很亂,想到什麼有時間就先寫什麼
所以也完全稱不上什麼教學
因為沒有一步一步把操作內容詳細寫出來
只希望可以越來越多人一起來討論


是的,指令下好後就等結果
通常是結果算好後,才把戰鬥過程播放給玩家
如果你想做邊戰鬥邊選擇指令的話,就要用可以支援常連接的socket的語言了,像flash

Node.js 這東西我沒接觸過,這是什麼?


水色論壇 http://www.et99.net
簡恩峻分享

znn
 
文章: 36
註冊時間: 2009-02-18 4:06 pm

Re: 自製WebGame相關技術閒聊

文章znn » 2013-09-09 2:50 pm

經過幾天的研究
對Node.js了解到一定的程度

Node.js它不是個什麼xxx.js檔,也不是什麼 jquery之類的框架
它是一個不一樣的Web Server,而它用的Language是Javascript(網路上都說它是在後台執行的JavaScript)

原本我們在寫的什麼PHP CGI ASP JSP有的沒的都會先架一個Apache IIS這類的Web Service軟體
用戶端跟我們的程式是透過這個軟體呼叫我們寫的程式來進行交流
Apache或IIS把一些事情給做掉了(如vhost、port、module掛載)
而當User對Apache發出請求後,Apache會為這個請求去找資料
例如是index.php,就會去直行PHP模組開啟index.php文件,然後執行文件相關的操作
最後把一個結果丟回給Client端
Apache會針對不一樣的文件型態丟回不一樣的型態的資料
總之就是一些本來覺得理所當然的事Apache已經都幫你搞定了

但Node.js就不一樣,Node.js它本身是一個可以在有Node(V8引擎)環境下執行的程式
這個程式本身就有提供WebServer的建立,只要程式執行起來就是一個Web Server
你不需要安裝什麼IIS或Apache,只要安裝Node程式,然後利用node指令去執行一個js檔
只要這個js檔有去create http Server,馬上就是開啟一個Web Server

其實說那麼多網路上都有更詳細的介紹

這幾天消化完最後自己的想法是
Node.js型態的網站比PHP、JSP、ASP等適合開發遊戲
另外在HTML5的websocket上,Node.js在應用上直覺很多,不用再去管Apache

Node.js也不是什麼都好
它的缺點是難開發
Node.js是讓Javascript在Server上跑的一個應用
JavaScript我想大家多少都會,也有接觸
如果你要把原來OO半天的物件改用JavaScript來寫,可能已經有一半的人會瘋掉
再來就是JavaScript的語法相對鬆散,雖然Node.js有一堆人在提供框架及模組
你用越多對未來要維護的負擔也越大,版本之間的改動,相互間的兼容都是大問題
再來就是它是跑在一個執行緒上,也就是說當你程式某個地方造成嚴重的錯誤
導致整個程式crash掉,你整個網站就會因此停掉,找不到服務,因為這個執行緒掛了

Node.js的文章網路上有很多
但因為用的module版本不一樣,導致一些舊文章的寫法不能在新版的模組上用
甚至可能一些framework在新版的Node.js上無法正常執行
老實說,唯一的方法就是靠經驗去把基礎累積起來
太過包裝的外掛在初學時最好不要用
不然你完全搞不懂原來的面貌,這樣三四天你回去看你寫什麼說不定就忘了

所以我目前新的程式架構將會改成下面
Apache[PHP]----->Node.js[Javascript]
MySql------------->MongoDB
PDO--------------->Mongoose
自寫MVC框架---->Express框架
Ajax-------------->WebSocket
FB PHP API------->Passport
其他前端用的差不多,JavaScript(一樣不用jQuery)、HTML5、CSS3



頭像
幽雲
 
文章: 109
註冊時間: 2005-06-05 4:12 pm
來自: 夢想幻翼
性別: 男生

Re: 自製WebGame相關技術閒聊

文章幽雲 » 2013-09-19 11:32 am

阿 ,不好意思打個岔問一下XD

請問各位開發的時候會先用相關UML軟體去想好流程
甚至先制定好變數等等嗎O_O




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: 自製WebGame相關技術閒聊

文章ETERNAL » 2013-09-19 2:24 pm

幽雲 寫:阿 ,不好意思打個岔問一下XD

請問各位開發的時候會先用相關UML軟體去想好流程
甚至先制定好變數等等嗎O_O


我不會耶 @@

有幾個人會這麼做???


水色論壇 http://www.et99.net
簡恩峻分享

znn
 
文章: 36
註冊時間: 2009-02-18 4:06 pm

Re: 自製WebGame相關技術閒聊

文章znn » 2013-09-23 1:51 pm

我也不會...



頭像
幽雲
 
文章: 109
註冊時間: 2005-06-05 4:12 pm
來自: 夢想幻翼
性別: 男生

Re: 自製WebGame相關技術閒聊

文章幽雲 » 2013-09-24 10:00 pm

哈哈 ,因為現在都在用MVC架構下去寫程式
感覺沒有先規劃好

事後要改元件之類的就會挺麻煩的才有如此一問XD




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: 自製WebGame相關技術閒聊

文章ETERNAL » 2013-09-27 9:01 am

幽雲 寫:哈哈 ,因為現在都在用MVC架構下去寫程式
感覺沒有先規劃好

事後要改元件之類的就會挺麻煩的才有如此一問XD


用UML會比較清楚,要解釋給別人聽也方便

不過我寫程式都是用經驗法則比較多 哈哈


水色論壇 http://www.et99.net
簡恩峻分享

znn
 
文章: 36
註冊時間: 2009-02-18 4:06 pm

Re: 自製WebGame相關技術閒聊

文章znn » 2014-05-19 3:44 pm

又過了好一段時間
我的遊戲還是還沒開發好
因為遇到了很多的問題
不想硬著頭皮寫下去

之前的開發都是寫後端程式比較多
前端的部份是直接面對使用者
所以特別的重要
操作介面做得不好
或維護起來太過麻煩
都不是一件好事

前端的開發目前有兩個大方向可以選
一個是HTML5 Canvas,一個是CSS3
兩者做出來的效果會是Canvas強得多
但開發跟學習上難度高上很多
在一人開發來看,會是蠟燭兩頭燒的局面
而且不是什麼都要3D或是動態很炫的效果大家才愛

因為時間跟能力的問題,我最後還是選CSS3
CSS3的layout常常到後面都是幾千行
改到最後你都不知要怎麼下手
這幾天研究了SASS,發現這是個好東西
目前配合ruby compass sass來產出css感到很方便
雖然還有要學習的地方
不過目前大概已可以把前端的版型跟前端的程式做到很大的分離

學css之前,因為應用上的限制
幾乎所有的html樣式跟物件都寫到javascript來產生
它有好處也有壞處
好處是你可以程式來控制它們的樣貌
壞處是很不直學,當你要修改樣貌,就必須配合javascript來產生才會出現結果
用css的好處就是可以直接的看到結果,調整上都是依視覺來進行
壞處是你要多學會用sass及編譯sass的環境

目前在開發上可以專心方便得layout前端介面
然後javascript的元件控制也變得更單純
不用夾著一堆的DOM

最後就是前端IE9以前的版本很多沒支援的問題
我的解決放案是”放棄”
怎麼說呢,為了以前爛IE,要我降低頁面的美觀又要處理一些麻煩的問題
我寧可要求玩家改用其他的瀏覽器
玩家不能接受也無法勉強
最多就是看有沒時間做node-webkit
不過也要等開發完有時間再說XD
要先進行的,RWD也是在node-webkit之前



znn
 
文章: 36
註冊時間: 2009-02-18 4:06 pm

Re: 自製WebGame相關技術閒聊

文章znn » 2014-05-23 2:51 pm

寫完上一篇後一兩天
想了一下最後還是決定用 jquery來協助前端的開發
在開發起來有不少地方順暢很多
目前就依造這樣的架構下去進行開發
Server
Node.js
Socket.io

DB
MySql

Client
Javascript/JQuery
CSS/SASS



rexrainbow
 
文章: 1
註冊時間: 2012-05-17 10:48 am
性別: 男生

Re: 自製WebGame相關技術閒聊

文章rexrainbow » 2014-08-08 10:56 am

node.js 的 game server framework
http://pomelo.netease.com/




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: 自製WebGame相關技術閒聊

文章ETERNAL » 2014-08-29 9:13 pm

znn 寫:寫完上一篇後一兩天
想了一下最後還是決定用 jquery來協助前端的開發
在開發起來有不少地方順暢很多
目前就依造這樣的架構下去進行開發
Server
Node.js
Socket.io

DB
MySql

Client
Javascript/JQuery
CSS/SASS


現在寫的怎麼樣了 ?


水色論壇 http://www.et99.net
簡恩峻分享

上一頁

回到 Webgame製作&改造

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 2 位訪客