網(wǎng)頁游戲教程,網(wǎng)頁游戲教程大全(網(wǎng)頁游戲教程手機版)
怎么制作一個網(wǎng)頁游戲
一、簡單的程序框架。webgame程序構(gòu)成:三大部分。第一是數(shù)據(jù)流程。第二是程序。第三是美術(shù)。其中,數(shù)據(jù)流程包括了功能。也只有在功能中才能體現(xiàn)數(shù)據(jù)流程。數(shù)據(jù)流程相當(dāng)?shù)穆闊?,后面再討論。比如最簡單的賣買產(chǎn)品。要實現(xiàn)這個功能。那么需要有產(chǎn)品基礎(chǔ)表、產(chǎn)品詳細(xì)表、商店表、背包表。如果擴展性更強,相應(yīng)的雙表是少不不了的。表的問題都簡單了。關(guān)鍵是這個物品有什么用。這樣物品的來源,一大堆數(shù)據(jù),物品的走向,又是一大堆數(shù)據(jù)。最后,這些數(shù)據(jù)得繞成一個圈。繞圈是一件困難的事情。特別是功能和道具多了起來的時候。難度是2的n次方。美術(shù):UI。簡潔漂亮的界面總會有好處。小圖標(biāo)。道具,地圖,裝備。一類至少10個吧?大體上百把個是需要的。程序分5個部分:服務(wù)器定時器。(C語言或自己設(shè)定服務(wù)器)定時循環(huán)執(zhí)行某一段代碼。而這段代碼主要是根據(jù)數(shù)據(jù)庫的數(shù)據(jù)進行更新。這個可以找個C語言程序員來做。對于C語言程序員來講,這個功能是相當(dāng)?shù)暮唵?。?dāng)然,具體的處理數(shù)據(jù)的判斷和操作數(shù)據(jù)庫,需要你自己寫。讓C語言程序員給你段標(biāo)準(zhǔn)代碼就行了。完全支持sql語句的。功能頁面、功能函數(shù)。主要就是數(shù)據(jù)存取,判斷,數(shù)據(jù)走向。ajax函數(shù)。(可選)某些需要偽即時的功能要用到。javascript函數(shù)。(可選)模擬客戶端的數(shù)據(jù)計算。也就是webgame的與時間相關(guān)的數(shù)據(jù)。分為兩部分。一部分是真實數(shù)據(jù),是由服務(wù)器端的定時器計算的。另一部分是只有初始值,客戶端顯示用的。不需要即時同步,僅僅需要模擬同步就行。數(shù)據(jù)庫。一大堆基礎(chǔ)數(shù)據(jù)表和詳細(xì)數(shù)據(jù)表?;A(chǔ)數(shù)據(jù)表:比如等級1到等級100的用戶的屬性初始值。詳細(xì)數(shù)據(jù)表:每個用戶的具體屬性。二、一個詳細(xì)的例子。單純的討論數(shù)據(jù)流程是件痛苦的事情。討論程序而不給代碼也是比較痛苦。這里用的是php+mysql的。那就按一個超簡單的webgame的方式來討論。配上適當(dāng)?shù)拇a。應(yīng)該有所幫助。不足的地方也請大家指出,對我個人也是幫助。我們不去考慮游戲的可玩性,數(shù)值平衡等等問題。我們先只考慮一個簡單例子的實現(xiàn)。那么一個webgame的基本內(nèi)容需要些什么呢?數(shù)據(jù)庫:玩家、地圖、城市、建筑、武器、士兵。功能:登陸、升級、個人戰(zhàn)斗、士兵之間的戰(zhàn)斗、與城市的戰(zhàn)斗、修建建筑、打造武器、買賣道具。(注意:每一個功能,必然對應(yīng)1個或多個數(shù)據(jù)表。上面數(shù)據(jù)庫中所列的只是基礎(chǔ)中的基礎(chǔ)。)首先是地圖、城市、建筑。這里認(rèn)為,地圖可以有多張,城市在地圖上,建筑在城市內(nèi)。地圖表Map :Map_ID ,X坐標(biāo), Y坐標(biāo),City_ID(城市ID),描述。其中Map_ID是指地圖的id。不是自動編號。一張地圖就是一個Map_ID,可以重復(fù)。城市表City:City_ID,城市名字,城市所有人,城市等級,城市資源,描述。建筑表Build:ID,City_ID,建筑名稱,建筑等級,建筑功能。其中,地圖表確定城市的位置,城市表確定城市的相關(guān)數(shù)據(jù)以及所有人,建筑表內(nèi)的多條信息屬于某一個城市。建表后,顯示出來。一個for循環(huán)。把地圖表整個取出來就ok。跟普通網(wǎng)站的新聞列表沒太大區(qū)別。不同的是,你需要取得X坐標(biāo)和Y坐標(biāo)定位。可以用tabel也可以用div。上面是一個很簡單的地圖類。代碼可能不太正確,意思是正確的。就是根據(jù)map表中的坐標(biāo),生成了一組div層,以及這一組層的css。你可以改為table的。你可以也把坐標(biāo)放到一個字段里,用數(shù)組的形式取。使用的時候,用new map;map(N);其中N是map表里的地圖Map_ID.城市內(nèi)的建筑也類似。如果要顯示出來的話。有了地圖和城市后。涉及到的問題就是城市里資源的產(chǎn)生。這時候,City表里需要有可供判斷的時間和數(shù)量的字段。比如:產(chǎn)生資金量Money,產(chǎn)生資金花費的時間Action_Time,上次產(chǎn)生資金時間Money_time。這兩個字段的數(shù)值應(yīng)該在City_base表里出現(xiàn)。(即城市基礎(chǔ)表,不同等級,不同類型城市的對應(yīng)數(shù)值。這是給策劃填數(shù)據(jù)用的,建好表后就等策劃去頭痛吧。如果你身兼數(shù)職。。。)如何自動產(chǎn)生資源呢?我們可以在城市所有人改變的時候,寫入一個時間?;蛘咴诔鞘谐跏蓟臅r候?qū)懭胍粋€時間。$Now_Time=date(’Y-m-d H:i:s’);(說明:$開頭是變量的意思。php里特有的。如果是asp的話可以寫成。Now_Time=Now() )把$Now_Time寫入到Money_time里。update(”UPDATE City SET Money_time=’$Now_Time WHERE City_ID=’$City_ID’ LIMIT 1;”);$City_ID是你自己定義的。指某一個城市。如:$City_ID=1;我們假定當(dāng)前城市產(chǎn)生資金量為100。即$Money=100;(具體的數(shù)值,應(yīng)該是由City_base表里取出的。)假設(shè)間隔時間為$Action_Time,我們再假定是每小時執(zhí)行一次。即$Action_Time=3600;(具體的數(shù)值,是根據(jù)你的初始化表里取得的。也可以根據(jù)城市等級或者用戶等級取得。反正隨便你自己怎么設(shè)定。)這時候,有基礎(chǔ)時間了。有基礎(chǔ)資金產(chǎn)量了。有間隔時間了。讓它循環(huán)執(zhí)行起來就行了。上面說過,服務(wù)端用C語言定時器??蛻舳擞胘avascript。服務(wù)端,資源定時器設(shè)定為5分鐘執(zhí)行一次。那么我們的誤差就是5分鐘。對網(wǎng)頁游戲來說,可以接受。(戰(zhàn)斗的定時器得1分鐘吧。當(dāng)然服務(wù)器夠牛的話,幾秒鐘都可以。)每次執(zhí)行什么代碼呢?首先得新建一個定時器任務(wù)的表。目的就是讓定時器知道需要執(zhí)行哪些程序和數(shù)據(jù)的更新。表內(nèi)容比如:城市資源更新。當(dāng)然,這個表可要可不要。建立的好處是方便處理類似保護狀態(tài)不產(chǎn)生資源之類的問題。服務(wù)端程序:獲得當(dāng)前服務(wù)器時間。獲得當(dāng)前需要更新城市。判斷服務(wù)器時間與$Money_time的時間差。(時間戳,具體的時間戳網(wǎng)上資料滿多的。)判斷時間差是否大于$Action_Time。 大于,則更新資源。同時更新$Money_time。小于,則無操作。客戶端程序:獲得當(dāng)前服務(wù)器時間。獲得當(dāng)前城市的$Money,$Money_time,$Action_Time。使用javascript顯示剩余時間的倒計時,以及增加的資源量??蛻舳颂厥馇闆r觸發(fā):因為客戶端顯示的資源情況是偽同步,所以當(dāng)客戶端使用該資源的時候。需要服務(wù)端將當(dāng)前的實際資源更新,屬于定時器處理的時間也需要更新。即,當(dāng)客戶端觸發(fā)涉及資源的情況時,立即更新當(dāng)前資源。同時更新定時器中會用到的$Money_time。這樣才不會造成,看的資源用不到,或者定時器重復(fù)產(chǎn)生資源。總體來說。這部分程序都很簡單。難點在C語言定時器的制作,以及前臺javascipt倒計時的寫法上。C語言定時器,找個C語言程序員,超簡單;前臺的javascipt,網(wǎng)上有很多倒計時的代碼,找個來改改就能用。后臺部分,把時間到增加資源的代碼改為時間到增加或更新建筑就行了。又是增加N個表。。建筑基礎(chǔ)表:產(chǎn)出,類型,圖片等等。。建筑詳細(xì)表:屬于哪個城市,可以在城市表里關(guān)聯(lián)。關(guān)聯(lián)的方式不同會對程序有很大的影響。各種關(guān)聯(lián)方式都行,但是一旦關(guān)聯(lián)方式確定后,最好別改動?,F(xiàn)在建筑也有了。用類似的定時方式,打工,征兵等等都可以實現(xiàn)。戰(zhàn)斗,兵的參數(shù):兵種,數(shù)量,攻擊,防御等等。戰(zhàn)斗的臨時表:誰的兵,打誰,出發(fā)時間,戰(zhàn)斗時間,戰(zhàn)斗結(jié)果。這里的幾個字到是簡單。實際的表會復(fù)雜一些。webgame中,戰(zhàn)斗的過程分兩種,一種是給出雙方參數(shù),時間到,就根據(jù)公式計算結(jié)果。一種是半即時或者即時的戰(zhàn)斗,可以邊打邊喝藥邊用技能的那種。第一種流程。點出兵。這時候,兵的參數(shù),出發(fā)時間,到達(dá)時間,都記錄進戰(zhàn)斗臨時表。定時器中,處理戰(zhàn)斗的部分,判斷時間是否到開打的時候。到開打的時間了,則取得被攻擊方的兵的參數(shù)。然后通過幾個公式計算結(jié)果。處理結(jié)果,比如誰的兵掛了多少,戰(zhàn)場掉落了多少錢,城市被誰搶到了。一大堆判斷以及updata。(這里的定時器處理和獲得資源的定時器處理是很類似的。)最后把結(jié)果分別發(fā)給雙方。(又涉及到一個短信息系統(tǒng)。)第二種流程。點攻擊。馬上就處理數(shù)據(jù)。打打npc好做。玩家之間對戰(zhàn),也可以把被攻擊的玩家當(dāng)成npc來處理。兩個人或兩人以上即時戰(zhàn)斗。需要用到ajax了。目前在技術(shù)上和理論上是沒問題的,還沒實際寫代碼,所以不好講。很簡單的公式,兩種戰(zhàn)斗都可以用到:intval(sqrt($User_B_AP)-sqrt($User_A_DP));根號下攻擊-根號下防御=傷害。
網(wǎng)頁游戲怎么制作
很多人想投身游戲行業(yè),成為真正的游戲制作人。但是他們對游戲的制作過程,和各個職位的職能都是比較陌生的。對網(wǎng)頁游戲開發(fā)也不夠了解,游戲到底是怎么制作出來的呢? 網(wǎng)頁游戲開發(fā)的程序構(gòu)成分為三大部分:第一是數(shù)據(jù)流程。第二是美術(shù)。第三是程序。 1、數(shù)據(jù)流程 數(shù)據(jù)流程其中,數(shù)據(jù)流程包括了功能。也只有在功能中才能體現(xiàn)數(shù)據(jù)流程。 比如最簡單的賣買產(chǎn)品。要實現(xiàn)這個功能,那么需要有產(chǎn)品基礎(chǔ)表、產(chǎn)品詳細(xì)表、商店表、背包表。如果擴展性更強,相應(yīng)的雙表是少不不了的。 表的問題都簡單了,關(guān)鍵是這個物品有什么用,這樣物品的來源,一大堆數(shù)據(jù),物品的走向,又是一大堆數(shù)據(jù)。最后,這些數(shù)據(jù)得繞成一個圈。繞圈是一件困難的事情,特別是功能和道具多了起來的時候。難度是2的n次方。 2、美術(shù) UI:簡潔漂亮的界面總會有好處。 小圖標(biāo):道具,地圖,裝備,一類至少10個吧?大體上百把個是需要的。 3、程序分5個部分 數(shù)據(jù)庫:一大堆基礎(chǔ)數(shù)據(jù)表和詳細(xì)數(shù)據(jù)表。基礎(chǔ)數(shù)據(jù)表:比如等級1到等級100的用戶的屬性初始值。詳細(xì)數(shù)據(jù)表:每個用戶的具體屬性。 功能頁面、功能函數(shù)。主要就是數(shù)據(jù)存取,判斷,數(shù)據(jù)走向。 ajax函數(shù):(可選)某些需要偽即時的功能要用到。 javascript函數(shù):(可選)模擬客戶端的數(shù)據(jù)計算。也就是webgame的與時間相關(guān)的數(shù)據(jù)。分為兩部分。一部分是真實數(shù)據(jù),是由服務(wù)器端的定時器計算的。另一部分是只有初始值,客戶端顯示用的。不需要即時同步,僅僅需要模擬同步就行。 服務(wù)器定時器:(C語言或自己設(shè)定服務(wù)器)定時循環(huán)執(zhí)行某一段代碼。而這段代碼主要是根據(jù)數(shù)據(jù)庫的數(shù)據(jù)進行更新。這個可以找個C語言程序員來做。對于C語言程序員來講,這個功能是相當(dāng)?shù)暮唵?。?dāng)然,具體的處理數(shù)據(jù)的判斷和操作數(shù)據(jù)庫,需要你自己寫。讓C語言程序員給你段標(biāo)準(zhǔn)代碼就行了。完全支持sql語句的。 當(dāng)然在網(wǎng)頁游戲開發(fā)前,還要組織相關(guān)的專業(yè)人才,制作一款網(wǎng)絡(luò)游戲需要的最核心人才是原畫、2D、3D、程序設(shè)計、策劃等這些方面的人才是必不可少的,因此,要開發(fā)一個網(wǎng)頁游戲除了要程序員以外,千萬不要忘了準(zhǔn)備以上人才。
網(wǎng)頁游戲 制作的詳細(xì)過程
網(wǎng)頁游戲制作全流程:網(wǎng)絡(luò)游戲行業(yè)是目前最熱 門的、最賺錢的行業(yè)之一。越來越多的年輕人,打算進入這個行業(yè),那么一款網(wǎng)絡(luò)游戲是怎么開發(fā)的呢? 簡單地說,游戲制作就是從游戲創(chuàng)意到成為商業(yè)產(chǎn)品的全過程。除了前期的市場調(diào)研外, 整個游戲制作流程大致分為游戲策劃,游戲美術(shù)制作,程序開發(fā),再到游戲測試,運營上市幾大階段。一、游戲策劃階段 游戲策劃就像編劇和導(dǎo)演一樣,要規(guī)定游戲的世界構(gòu)成,規(guī)定種族、氣候,安排什么地方需要出現(xiàn)怪獸讓玩家 覺得刺激好玩,需要設(shè)計各種各樣的武器和裝備吸引玩家等等。專業(yè)點講就是要設(shè)計游戲的背景故事,世界觀,大陸布局,規(guī)則玩法,劇情對白,游戲任務(wù),各種數(shù)值等等。 游戲策劃師是游戲的靈魂人物,是游戲行業(yè)中非常稀缺的人才,無論是薪資待遇還是職業(yè)發(fā)展前景十分看好。二、游戲美術(shù)制作階段: 策劃文檔會分為技術(shù)設(shè)計文檔、背景藝術(shù)文檔和商業(yè)計劃文檔。背景藝術(shù)文檔將指導(dǎo)下一階段的美術(shù)資源制作,它包括:原畫設(shè)定、模型貼圖、角色動畫、特效和音效制作等。1、游戲原畫設(shè)定: 游戲原畫設(shè)定是一個承上啟下的重要環(huán)節(jié),也是最具創(chuàng)造力的職位,游戲里各種天馬行空般,非常具有想象力的人物、怪物形象,場景設(shè)計都是出自原畫之手。 但原畫要考慮到游戲文檔里對游戲角色、場景的設(shè)定要求,也要確保三維美術(shù)設(shè)計師的三維具體制作順利進行。2、模型貼圖制作: 針對各種原畫設(shè)定的藝術(shù)風(fēng)格和技術(shù)風(fēng)格,運用3D制作技術(shù)具體建立游戲世界,包括角色、道具、場景等,包括模型制作、貼圖制作兩個流程。根據(jù)游戲類型不同 網(wǎng)游、次世代等不同游戲類型,模型貼圖的制作工藝要求和流程也不同。3、游戲角色動畫: 游戲中大都存在著種類繁多的人物、怪物和各種不可思議的動物、植物,以及水流、巖漿、沼澤等各種地形地貌,為了讓這一切更加逼真和栩栩如生,游戲動畫設(shè)計 師通過三維繪圖軟件賦予他們逼真的動作,合理的讓人物生活在游戲世界中。4、游戲特效制作: 游戲角色在格斗,或者施放魔法、各種必殺技時,你都會看見非常絢麗的視覺效果,這種視覺效果就是游戲特效師的工作。游戲特效師從分鏡設(shè)計、切片動畫、特效 貼圖制作、粒子特效制作到后期合成,將自己的特效設(shè)計思想制作出特效。三、程序開發(fā)階段 在策劃階段后,產(chǎn)生技術(shù)設(shè)計文檔,這一文檔將運用于程序開發(fā)。程序開發(fā)包括:引擎編寫,腳本編寫和代碼測試。
怎么學(xué)習(xí)網(wǎng)頁游戲制作?
這個建議可以先買一本新手學(xué)習(xí)的書,然后大致瀏覽一下后,知道常見的專業(yè)名詞,其次就是在網(wǎng)上看學(xué)習(xí)視頻,最好是持續(xù)更新那種,在軟件上實操,然后中間有問題的時候及時翻書或者是問一種up主。
網(wǎng)頁游戲開發(fā)需要學(xué)習(xí)什么知識
要想成為一個游戲開發(fā)人員,就得先成為一個很好的程序開發(fā)人員。當(dāng)你成為一個很好的程序開發(fā)人員時,就可以考慮學(xué)習(xí)游戲開發(fā)了。要想成為一個非常好的游戲開發(fā)人員,最重要的一點,就是需要對數(shù)學(xué)非常好。當(dāng)然,這里指的數(shù)學(xué)好,不是指加減法好,或者心算好,而是指線性代數(shù),幾何和幾何代數(shù),物理方面的數(shù)學(xué)等等。如果你對于數(shù)學(xué)是毫無興趣,或者索然無味的話,就要重新想想自己是否可以改變自己的理想了。如果你的數(shù)學(xué)不好,還想成為游戲中的人員,呵呵,有一個辦法,就是成為游戲的測試人員,游戲的藝術(shù)人員,或者是游戲設(shè)計人員,或者游戲的管理人員?! ∩厦嬷罃?shù)學(xué)是開發(fā)游戲的第一個基本條件了,但還是有很多其它知識需要學(xué)習(xí)的。下面就來詳細(xì)說明一下: 程序設(shè)計語言:在程序語言方面,不但要精通一兩門語言,還需要了解其它的語言。一般開發(fā)游戲都是使用C++或者C,因此精通這門語言是必然的選擇了。由于開發(fā)游戲需要不同的語言,比如腳本語言,這樣就需要了解一下動態(tài)語言,比如Python等等?! ?shù)據(jù)結(jié)構(gòu):不管計算機發(fā)展到什么程度,只要是編寫程序,就少不了數(shù)據(jù)結(jié)構(gòu)。目前,基本上都不再會有自己去創(chuàng)造“車輪”年代了,應(yīng)去理解和使用STL,或者其它更好的數(shù)據(jù)結(jié)構(gòu)庫了。精通地使用STL,就基本上解決了數(shù)據(jù)結(jié)構(gòu)的問題了?! 「↑c數(shù):在開發(fā)游戲里,使用最多的數(shù)據(jù)類型是什么呢?顯然就是浮點數(shù)。比如3D游戲里的點坐標(biāo),就是使用三個浮點數(shù)來表示的。浮點數(shù)的計算,往往就會有不精確的現(xiàn)像,比如判斷一個數(shù)是否等于0,就不能想當(dāng)然地認(rèn)為是否等于0了?! 【幊坦ぞ撸壕幊坦ぞ?,就像自己的柴刀,如果沒有柴刀,就砍不到柴的。當(dāng)然,磨刀不誤砍柴功。因此,一定要對自己的編程工具非常熟悉,比如調(diào)試,工程配置,編輯,編譯等等,還有經(jīng)常出現(xiàn)的編譯錯誤等。如果你還是使用VC6來開發(fā)現(xiàn)在的游戲話,建議你趕緊放棄吧。那都是8年前的開發(fā)工具了,目前都需要使用VS2005的開發(fā)工具了,強大的C++語言特性,強勁的編輯工具,讓你寫代碼,就如流水般流暢。它還能支持編譯x64位的代碼,64位的PC越來越流行了?! ∮嬎銠C體系結(jié)構(gòu):不了解計算機的體系結(jié)構(gòu),就沒有辦法知道程序的運行環(huán)境。很多年前,還是8086的體系的結(jié)構(gòu),接著,就是80386的保護模式。到目前多核體系結(jié)構(gòu),對于編寫程序,要求發(fā)揮多核CPU的性能,就需要了解怎么樣合理地分配CPU資源了?;蛟S,你還可以控制那個CPU進行渲染的操作,那個CPU進行網(wǎng)絡(luò)通迅。如果到四核的CPU,又要需要多少個CPU進行數(shù)據(jù)庫的查詢工作呢? Windows編程:目前90%的游戲運行環(huán)境就是Windows,如果不了解Windows,就無從下手了。比如Windows的消息處理過程,事件響應(yīng),還有Windows的網(wǎng)絡(luò)通迅過程,這些都是需要了解的。還有Windows提供的API,更加要熟練運用了。
本文標(biāo)簽: 城市 定時器 網(wǎng)頁游戲