游戲編程看什么書,剛開始玩單機游戲只狼?
結(jié)論
個人認為,鍵鼠操作更適合射擊類的游戲,而手柄則更適合動作類的游戲。所以玩《只狼》,筆者更推薦用手柄,理由如下。
鍵鼠操作射擊類游戲的優(yōu)勢射擊類的游戲,因為需要旋轉(zhuǎn)視角,而手柄上的操作則需要配合搖桿。搖桿不像鼠標轉(zhuǎn)動視角來的迅速、準確、靈敏。尤其是第一人稱的射擊游戲,且游戲中如果沒有自帶的輔助瞄準系統(tǒng),那就更為蛋疼。常常會因為不能及時瞄準而被敵人擊殺。
手柄玩動作游戲的優(yōu)勢動作游戲,需要多個按鍵的協(xié)調(diào),配合各個手指的同時操作。鍵鼠因為一些按鍵分配的原因,某些鍵鍵隔著比較遠,加上手指操作的姿勢,顯得不是很自然。雖然,游戲中可以自定義改鍵等方法,但還是遠遠不如手柄把各個按鍵都集中在一起,不管是同時搖桿還是肩鍵。
最后說了這么多,有一說一這還是得看個人的一些習慣。不管是用慣了鍵鼠還是手柄,再換其他的操作方式,都還是會很變扭。畢竟適合自己的,才是最好的。
希望我的回答能對你有所幫助!
如何快速開發(fā)一個小游戲?
如何快速開發(fā)一款火爆的小游戲?“火爆”是一個偏運營的詞,在小游戲上線120天《微信開發(fā)者》公眾號有一篇推文,其中有幾個數(shù)字或許可以用來描述“火爆”這個詞。截止微信小游戲正式允許第三方開發(fā)者發(fā)布已有22天,對外發(fā)布的小游戲達300多款,注冊用戶總規(guī)模過億的游戲有數(shù)款,安卓月流水過千萬的也有數(shù)款。
該文還提到與火爆相關的兩個姿勢。一是社交匹配度,在小游戲這樣一個去中心化的大背景下,讓游戲內(nèi)容和微信社交相結(jié)合是一個很重要的點,同時開發(fā)者也需要在利用社交互動提升用戶體驗和群聊分享造成用戶騷擾之間選擇一個平衡點,過猶不及。第二是操作簡便度,說的是游戲易上手操作簡單。這是我們根據(jù)游戲成為爆款后觀察得出的結(jié)論,并不是說具備這兩個特性就一定能開發(fā)出一款火爆的游戲,并且新的爆款游戲也不一定符合這些特點,僅供參考。
今天介紹的內(nèi)容更傾向于技術方面,所以“火爆”就從標題里面去掉了,并且也不會介紹具體的游戲邏輯如何開發(fā),而是更偏向于如何利用好微信的開放能力開發(fā)一款小游戲。
什么是“小游戲”?小游戲是什么?
首先為大家介紹一下小游戲是什么。從普通用戶的視角看,小游戲是小程序的一個子類目,可在微信內(nèi)被便捷的獲取和傳播,即點即玩,具備出色的用戶體驗。小游戲是小程序,普通用戶分不清也無需分清。
小游戲Runtime
如果放大小游戲的Runtime可以看到很多的細節(jié),這是一個典型的分層架構(gòu):
最上層藍色部分,是游戲代碼,分為游戲邏輯,游戲引擎、weapp-adapter三部分。大部分游戲開發(fā)會用到一些引擎的工具、工作流,以及利用引擎封裝的高層API去實現(xiàn)游戲邏輯。其次是weapp-adapter,因為小游戲的底層一方面不是webview,可以簡單看成是webview經(jīng)過精簡、優(yōu)化過后的平臺;另一方面核心能力的實現(xiàn)上卻參考了webview。所以這里如果有一個適配器,把小游戲的底層API——wx API適配到一個接近webview的接口,對上層引擎、已存在的游戲接入微信小游戲平臺則會更加容易,這個就是weapp-adapter的作用。其中只有游戲邏輯是必要的。
可以看到,在架構(gòu)上小游戲和小程序是有差別的,小游戲沒有頁面概念的,wxss/wxml不再存在。其次,底層實現(xiàn)也不是webview,小游戲和webview的關系只能說是渲染相關的核心能力可以通過weapp-adapter的簡單適配保持接口一致,但同時很多webview上存在的功能并沒有對等的實現(xiàn),比如小游戲就沒有DOM/BOM的概念,也沒有全局的document/window對象。
小游戲的入口為game js文件,語言為Javascript,但有一些限制,比如禁止執(zhí)行動態(tài)代碼,因此eval、new Function等能力是不支持的。配置為game.json,可以配置橫豎屏、接口超時等參數(shù)。js里面可以組合wx API的能力來實現(xiàn)游戲邏輯, 非代碼類的資源應該盡量放到cdn,減少整個代碼包打包后的大小,以加快用戶首次進入時的速度,微信對首包的大小目前限制為4MB。
Webview Adapter
下面來說一下Webview Adapter,它的初衷是為了讓游戲開發(fā)者更好地熟悉我們的平臺,所以我們的平臺在能力上會盡可能地與webview做一些適配,其實這個適配也是很簡單的一層。比如說我們在瀏覽器里面使用image對象創(chuàng)建一個圖片,而在小游戲里是通過wx.createimage來創(chuàng)建的,在代碼中需要做一個簡單的適配。
以此類推,常見的Canvas、document對象都是在Adapter中通過一個簡單的適配實現(xiàn)的,大家可以研究鏈接中的代碼。之后官方不會繼續(xù)維護這個Adapter,我們會更專注于底層能力的建設。
小游戲能力概覽
下圖是小游戲能力的概覽,小游戲能力的迭代比較快,部分能力還沒有來得及羅列出來。比如最近剛發(fā)布的游戲圈、健康系統(tǒng)防沉迷相關的一些接口。
我們先看一下基礎能力,在渲染這部分WebGL1.0和Canvas 2D都是支持的,這里的Canvas更接近于瀏覽器里面的標準。同時,這里提到的可控幀率的概念,如果小游戲在后臺運行的話,可以盡量將幀率降低。
在多媒體部分,小游戲還不能像小程序一樣實現(xiàn)實時的音頻視頻流,這是我們在后續(xù)要進一步支持的。網(wǎng)絡IO的部分與小程序也是類似的,我們也提供了一些UI的組件,比如說拉起鍵盤,模態(tài)對話框等。
小游戲的社交開放能力現(xiàn)在已經(jīng)對外了。其中最重要的一個能力是在開放域?qū)⑽⑿诺暮糜殃P系開放出去,給開發(fā)者使用,考慮到對用戶隱私的保護會有一些設計上的限制。
因為小游戲去中心化的特點,分享這一部分也是非常重要的,開發(fā)者要考慮如何將這個能力利用起來。在代碼方面,因為首包限制是4MB,但部分小游戲的代碼量可能比較大。我們最近也在規(guī)劃一個分包的能力,允許異步加載代碼并執(zhí)行,但這個代碼是一定要經(jīng)過我們審核的。
如何開發(fā)一款小游戲?
那么如何開發(fā)一款小游戲?因為我本人也只是開發(fā)過一些簡單的游戲,并不是專業(yè)進行游戲開發(fā),所以接下來我會更多地介紹一下如何利用微信的能力來開發(fā)小游戲。
選擇小游戲引擎
微信跟引擎商也有比較密切的合作,一般現(xiàn)在的游戲引擎都會支持發(fā)布到多個平臺,對微信小游戲這個新平臺而言,已經(jīng)有一部分引擎做了適配,比如Cocos Creator、Egret Engine以及LayAir Engine。適配的主要工作,類似之前提到的weapp-adapter,把wx API的能力,和引擎銜接起來。
比如引擎一般會把小游戲平臺和webview平臺對標,適配過程就是把wx API對應到webview的能力,同時把只存在于webview能力的依賴去除,比如不再依賴BOM、DOM。已適配的引擎都有相應的文章介紹如何把游戲發(fā)布到微信小游戲平臺。
設備/環(huán)境適配
小游戲會有API提供獲取屏幕的寬高、設備像素比等能力。小游戲開發(fā)完成后,在開發(fā)者工具也可以發(fā)起真機測試的請求,微信提供了不同設備的測試集群,幫助開發(fā)者提前去發(fā)現(xiàn)問題。基礎庫提供的wx API本身是一個不斷迭代更新的過程,對于使用了新能力的小游戲,需要做低版本兼容。
微信登錄
小游戲的登錄過程,跟小程序是類似的。需要用戶自己去定義登錄狀態(tài)。appsecret/session_key代表的是小游戲開發(fā)者和微信平臺之間的一種信任約定,比如支付、上報托管數(shù)據(jù),平臺方需要驗證access_token(只有appsecret才能換得到),和用戶相關的還要驗證session_key的簽名,才能保證請求來自于小游戲開發(fā)者/用戶,而不是惡意的第三方和隨意捏造的用戶。
access_token是一種應用態(tài)的access_token,和用戶無關,需要保證全局維護一份,應該有一個中控的模塊去保證access_token有效,同時在有效期內(nèi)直接使用本地cache的access_token,而不是每次使用都去生成新的access_token,否則可能遇到調(diào)用頻率限制的錯誤而影響服務。切記appsecret/session_key不要放到前端代碼中去,否則可能會被壞人利用損壞小游戲開發(fā)者/用戶的權益。
緩存
緩存類型包括數(shù)據(jù)緩存和文件緩存兩類。數(shù)據(jù)緩存即key-value存儲,適合結(jié)構(gòu)化類型的小數(shù)據(jù)存儲,上限為10MB。文件緩存提供了一個完整的文件系統(tǒng)API,包括目錄/文件的增刪改讀,適合針對經(jīng)常使用的網(wǎng)絡資源做本地緩存,上限是50MB。
和瀏覽器不同的是,微信只提供了基本的存儲管理能力,并不對存儲什么,和存儲滿時刪除什么做一些操作。開發(fā)者自行靈活定義緩存以及淘汰策略,比如對經(jīng)常訪問的資源存儲到文件系統(tǒng)以及在文件存儲滿時,清理一些最近不常訪問的文件。
開放數(shù)據(jù)域
開放數(shù)據(jù)域是一個封閉、獨立的 JavaScript 作用域,和執(zhí)行游戲邏輯的環(huán)境——稱為“主域”隔離。其目的是在保證用戶隱私的前提下開放用戶數(shù)據(jù)給第三方,提升小游戲的整體用戶體驗。以下為物理視圖,主域的入口為game.js,開放數(shù)據(jù)域則是一個獨立的目錄,其入口文件為index.js。
主域和開放數(shù)據(jù)域的通信受到嚴格的管制,基本原則是只進不“出”。
?只進:允許外部的數(shù)據(jù)進入開放數(shù)據(jù)域,即主域可以隨時postMessage到開放域,以及開放域引用主域準備好的本地資源
?不“出”:不允許開放數(shù)據(jù)域的數(shù)據(jù)被上傳到第三方服務器去。因為開放數(shù)據(jù)域里面,index.js是可以直接訪問到用戶敏感數(shù)據(jù)的,比如同玩好友數(shù)據(jù)。當然最終開放數(shù)據(jù)域需要index.js在綜合各種數(shù)據(jù)后把數(shù)據(jù)以圖形圖像的方式渲染到sharedCanvas上,在主語sharedCanvas允許draw到主域的上屏Canvas上,最終用戶會在顯示屏上看到game.js畫出來的好友排行榜、群排行榜或好友超越等社交互動信息。
在開發(fā)數(shù)據(jù)域中的數(shù)據(jù),開發(fā)者沒法把數(shù)據(jù)拿出去和游戲數(shù)據(jù)做關聯(lián),所以如果需要在開放域下展示的游戲數(shù)據(jù),比如分數(shù),開發(fā)者需要將該數(shù)據(jù)通過上報接口把游戲數(shù)據(jù)托管到平臺。這樣就可以在開發(fā)數(shù)據(jù)域里面就取到相關數(shù)據(jù),其應用場景有好友排行、群排行榜、超越好友提示等。
分享
包括自定義分享和系統(tǒng)菜單分享,可以分享到群聊、單聊。也可以把分享上下文與特定的群關聯(lián),實現(xiàn)一些群PK、群排行榜的場景。分享是一把雙刃劍,需要謹慎使用,一方面避免過度騷擾用戶/群聊,另一方面增強社交互動提供好的游戲體驗,需要找到一個合適的平衡點。
支付
小游戲在安卓下支持虛擬支付,它的方式目前只有一種:即貨幣托管的方式。主要分為2個流程:
1.充值:RMB -> 游戲幣,這里開發(fā)者只需要拉起支付的流程,平臺負責把用戶RMB兌換成對應的游戲幣,存儲到用戶對應的游戲帳號上
2.使用游戲幣購買道具:開發(fā)者可以扣除對應的游戲幣,給用戶發(fā)放游戲內(nèi)道具,扣除游戲幣的過程需要有一定的事務機制,去保證在網(wǎng)絡異常的情況下交易正常。扣除游戲幣的接口支持根據(jù)訂單id去重,意味著網(wǎng)絡超時等情況下,開發(fā)者可用同樣的訂單id去重試扣除,直至返回明確的響應。
以下為簡單時序圖,部分角色針對開發(fā)者無需關心的部分做了相應簡化處理:
性能
小游戲常見的性能問題,一般是內(nèi)存造成的。如果內(nèi)存占用太多會被微信客戶端主動關閉,因此開發(fā)者在用戶游戲過程中要及時釋放不再使用的內(nèi)存(js代碼去除引用,或主動調(diào)用對應資源的釋放接口,如果有的話),特別是Canvas和Image類大型對象,同時可以主動調(diào)用wx.triggerGC觸發(fā)底層回收對應資源。
對于和游戲邏輯相對獨立的工作,可以考慮在worker中去實現(xiàn),小游戲提供了獨立的worker線程執(zhí)行js邏輯的能力。
版本更新機制
小游戲啟動的過程分為冷啟動和熱啟動。冷啟動是指內(nèi)存中無該小游戲的運行實例的情況下,啟動小游戲的過程;熱啟動是指小游戲的運行實例在內(nèi)存中還存在,只是暫時切換到了后臺,這時用戶再次觸發(fā)小游戲回到前臺的過程。
小游戲會在冷啟動時檢查小游戲的版本,如有新版本,在下載回本地后,下一次冷啟動即可使用最新版。當然,我們也提供了API可以供開發(fā)者決策在有版本可用時,是否需要強制更新。
運維
特別提醒,小游戲有完善的后端監(jiān)控,可以通過“運維中心”開啟,比如腳本錯誤監(jiān)控。腳本錯誤主要由運行過程中未捕獲的異常觸發(fā),需要重點關注。該類異常,可能會導致用戶小游戲前端的js邏輯暫停執(zhí)行。
同時,平臺也提供了完善的數(shù)據(jù)分析服務,可以通過“小游戲數(shù)據(jù)助手”進行數(shù)據(jù)分析。
游戲中哪一種游戲最好玩?
俗話說蘿卜青菜各有所愛,每個人的喜好不同,每個人喜歡玩的游戲也不同,所以自己喜歡玩的就是最好玩的。不清楚您說的是手機端還是PC端,我就各推幾個吧。
手機端
一、王者榮耀
《王者榮耀》是由騰訊游戲開發(fā)并運營在Android、IOS平臺上的MOBA游戲于2015年11月26日全平臺正式公測。游戲主要以競技對戰(zhàn)為主,有5v5、3v3、1v1等多種PVP對戰(zhàn)。目前是國內(nèi)最火的游戲之一,這款游戲相信不用我多說了
二、和平精英
《絕地求生:刺激戰(zhàn)場》是騰訊旗下光子工作室群與藍洞共同推出的《絕地求生》IP手游該游戲于2018年2月9日正式公測,這是《和平精英》的前世
2019年5日8日《和平精英》正式停機維護,進入游戲會提示“體驗服測試已結(jié)束”,過后提示更新,更新后就是現(xiàn)在的《和平精英》,這是《和平精英》的今生。《和平精英》上線初期因為游戲設定問題,一度引起玩家們退游,但也是很火的一款游戲
三、多多自走棋
自走棋這款游戲最開始只是《Dota 2》里的一個游廊游戲,是國內(nèi)的一個小工作室——巨鳥多多研發(fā)的。 游戲為“回合”玩法,開始時,8位玩家被分在8塊不同的棋盤上,通過每回合抓取棋池中的棋子,挑選搭配出不同的棋子組合,并與玩家和AI(野怪)對抗,獲取金幣,購入棋子,不斷強化自己的組合來獲得勝利。 棋子可以升星,3個1星合成一個2星,3個2星合成一個3星。最高3星,每個星級角色屬性提高,模型外觀也會有所改變。 棋子分為多個陣容,每個陣容都有特定的BUFF加成,如3戰(zhàn)士加護甲、2人類沉默、精靈閃避、術士吸血、騎士免傷等等,每當?shù)竭_相應的要求,陣容的buff也會相應提升。 而為什么叫“自走”棋呢,是因為游戲全隨機自動攻擊,玩家只需考慮自己陣容,選擇棋子、擺放棋子即可,沒有多余的復雜操作
電腦端
一、英雄聯(lián)盟
《英雄聯(lián)盟》(簡稱LOL)是由美國拳頭游戲(Riot Games)開發(fā)、中國大陸地區(qū)騰訊游戲代理運營的英雄對戰(zhàn)MOBA競技網(wǎng)游。 游戲里擁有數(shù)百個個性英雄,并擁有排位系統(tǒng)、符文系統(tǒng)等特色養(yǎng)成系統(tǒng)。 《英雄聯(lián)盟》還致力于推動全球電子競技的發(fā)展,除了聯(lián)動各賽區(qū)發(fā)展職業(yè)聯(lián)賽、打造電競體系之外,每年還會舉辦“季中冠軍賽”、“全球總決賽”“All Star全明星賽”三大世界級賽事,獲得了億萬玩家的喜愛,形成了自己獨有的電子競技文化。英雄聯(lián)盟是一款多人競技類游戲,于2018年加入亞運會。
二、DOTA 2
《刀塔2》也被稱作《DOTA2》,由《DOTA》的地圖核心制作者IceFrog(冰蛙)聯(lián)手美國Valve公司研發(fā)的一款游戲,于2013年4月28日開始測試,發(fā)布中文名為“刀塔”,是該系列的第二部作品。 《刀塔2》完整繼承了原作《DotA》一百多位的英雄,并脫離了上一代作品《DOTA》所依賴的《魔獸爭霸Ⅲ》引擎的多人即時對戰(zhàn)游戲,《刀塔2》的世界由天輝和夜魘兩個陣營所轄區(qū)域組成,有上、中、下三條主要的作戰(zhàn)道路相連接,中間以河流為界。每個陣營分別由五位玩家所扮演的英雄擔任守護者,他們將以守護己方遠古遺跡并摧毀敵方遠古遺跡為使命,通過提升等級、賺取金錢、購買裝備和擊殺敵方英雄等手段達成勝利。
三、絕地求生
《絕地求生》(PUBG) 是由藍洞開發(fā)的一款戰(zhàn)術競技型射擊類沙盒游戲。 在該游戲中,玩家需要在游戲地圖上收集各種資源,并在不斷縮小的安全區(qū)域內(nèi)對抗其他玩家,讓自己生存到最后。 游戲《絕地求生》除獲得G-STAR最高獎項總統(tǒng)獎以及其他五項大獎,還打破了7項吉尼斯紀錄。 2018年8月9日,《絕地求生》官方宣布,將開啟“百日行動”,進行持續(xù)數(shù)月的自查運動,為玩家提供一個更好的游戲體驗;11月,有超過200萬個賬戶被凍結(jié)。該 游戲于2018年12月7日登陸PS4平臺。
這就是我要推薦給你的,希望你能夠喜歡。
以上就是關于游戲編程看什么書和剛開始玩單機游戲只狼的相關問題解答,希望對你有所幫助。