導航:首頁 > 源碼編譯 > 游戲是用什麼演算法

游戲是用什麼演算法

發布時間:2022-05-18 04:14:55

1. 手機游戲是用什麼開發的

手機游戲一般是用Unity、COCOS、java、C語言開發的,但也要看具體情況,有的手機游戲也可能是用HTML5開發的。

flash、java游戲俗稱小游戲,基本上都是一些休閑類的、傻呆萌的情節和操作,這類游戲開發相對比較簡單,會javascript、flash cs、java就可以進行開發了。

開發游戲我們經常聽到的是游戲引擎,一個游戲引擎決定一個游戲最基本的東西操作和效果,那麼一般的游戲開發架構從底到頂一般是Direct X游戲引擎。

Direct X可是大名鼎鼎相當於所有顯卡的一個統一介面,為游戲提供一個利用硬體渲染的編程模型,但Direct X介面為了追求高性能功能非常簡單基本的繪圖功能,不利於游戲的高效開發。

此時就需要根據游戲特點對其進行適當的取捨和封裝,實現一組更高抽象的游戲開發介面和框架,可以理解成游戲引擎中的圖形引擎。這部分的開發一般使用的語言是C、C++和少量的匯編語言。

2. 游戲編程裡面有哪些經典或者很酷的演算法

我挑一些有趣的演算法,希望盡量提及相關演算法在游戲中的應用。
1、光柵化
Bresenham's line algorithm [1]:經典的繪畫直線演算法,後來還可以稍作修改用於繪畫圓弧[2],都不用三角函數或除數,只需用整數加法、減法和乘法。
Perspective-Correct Texture Mapping [3]:透視正確的光柵化紋理貼圖演算法是1980才出現的。第一代Quake引擎引入後,才開始支持不垂直的牆、不水平的地面天花。
Polygon Rasterization with Edge Function [4]:Bresenham演算法如果用來畫多邊形,兩個多邊形的共邊會被重繪。後來發明了使用簡單的edge function去解決這個問題,而且適合並行的硬體實現。現在的GPU都是使用這個演算法。
2、全局光照
Precomputed Radiance Transfer (PRT) with Spherical Harmonics(SH)[5]:儲存靜態環境對於各個方向光源的漫反射數據,可以實現動態低頻光源的全局光照效果。這種表示方式非常神奇。Halo 3也使用到這種技術[6]。
Screen-space Ambient Occlusion (SSAO)[7]:Crytek提出的首個屏幕空間環境光遮蔽演算法,之後引來大量的研究及改進演算法。也有用類似的概念去做近距離的反射,如SSDO[8]。
Light Propagation Volume (LPV)[9]:Crytek提出的首個動態全局光照演算法,不需要預計算。但要在體積數據中計算傳播,性能較慢,所以之後再優化成 Cascaded LPV [10]。
Voxel Cone Tracing [11]:也是不需要預計算的動態全局光照演算法。把場景動態生成層階式的體素數據(像mipmap那樣的pre-filtering),從光源視角計算直接光照,然後逐像素追蹤這組數據獲取非直接光照。結果比LPV精確,也可以做到光澤反射(glossy reflection)。
3、陰影
Shadow Volume [12]:陰影體積是1977年發表的陰影技術,在屏幕空間光柵化陰影體積,可准確判斷每個屏幕像素是否在陰影之內。可以處理平行光源和點光源的陰影。1991年[13]講述如何用stencil buffer來實現此演算法,適合在圖形加速硬體(當時還沒有所謂GPU)上使用。但很多人發現,如果攝像機在陰影體積內,就會出錯。在1998至2000年有多人發現一種解決方法,需要把John Carmack在2000年的電郵[14]中提及這個想法,後來成為2004年《毀滅戰士3(Doom 3)》引擎的重要特徵,因他把這項技術發揚光大,即使他非首個發明人,此項技術通常被稱為Carmack's Reverse。
Parallel Split Shadow Map (PSSM) [15][16] / Cascaded Shadow Map(CSM)[17]:雖然Shadow Volume很吸引,但它需要大量的內存頻寬,而且通常不能實現軟陰影。後來大部分游戲改為使用Shadow Map(陰影貼圖),這更適合GPU,並且可以通過多次采樣(Percentage Closer Filtering, PCF)來實現軟陰影。然而,陰影貼圖也有許多問題,例如遠近景物都採用同一張紋理,就會令到近景的精度不足,出現鋸齒。2006年香港中文大學的博士生Fan Zhang等人發表了一種 PSSM 演算法 [15],為不同距離的場景渲染多張陰影貼圖,在采樣的時候按距離決定使用那一張。這個方法的變種CSM,在切割上和PSSM有點差異,被廣泛使用於現時大部分游戲引擎中。
Variance Shadow Map(VSM)[18]:之前談到用PCF做軟陰影,它的壞處就是要做多次采樣。那麼可否把陰影貼圖直接模糊化來實現軟陰影?答案是否定的。但是在2006年有學者發表了VSM,它是一種用統計方式來逼近軟陰影的效果。

3. 游戲中的常用的尋路演算法有哪些

f(n)=g(n)+h(n) 從起始點到目的點的最佳評估值
– 每次都選擇f(n)值最小的結點作為下一個結點,
直到最終達到目的結點
– A*演算法的成功很大程度依賴於h(n)函數的構建
?;) = g(n? 在各種游戲中廣泛應用 Open列表和Closed列表
– Open列表
A*演算法
? h(n) = 從結點n到目的結點的耗費評估值,啟發函數
?,程序返回n
else 生成結點n的每一個後繼結點n;
foreach 結點n的後繼結點n;{
將n』的父結點設置為n
計算啟發式評估函數h(n『)值,評估從n『到node_goal的費用
計算g(n『) = g(n) + 從n』到n的開銷
計算f(n?? 在演算法啟動時,Closed列表為空 A* 演算法偽代碼初始化OPEN列表
初始化CLOSED列表
創建目的結點;稱為node_goal
創建起始結點;稱為node_start
將node_start添加到OPEN列表
while OPEN列表非空{
從OPEN列表中取出f(n)值最低的結點n
將結點n添加到CLOSED列表中
if 結點n與node_goal相等then 我們找到了路徑;)
if n『位於OPEN或者CLOSED列表and 現有f(n)較優then丟棄n』 ;) + h(n?? 包含我們還沒有處理到的結點
? g(n) = 從初始結點到結點n的耗費
?? 包含我們已經處理過的結點
,處理後繼n』
將結點n『從OPEN和CLOSED中刪除
添加結點n『到OPEN列表
}
}
return failure (我們已經搜索了所有的結點?? 啟發式搜索
– 在搜索中涉及到三個函數
??? 我們最開始將起始結點放入到Open列表中
– Closed列表
?

4. 游戲開發,需要學習什麼編程語言

主要是C#。

游戲編程也是編程,都是需要敲代碼的。所以基本的語言基本功是不能少的,比如C語言或者C++或者C#至少要精通其中一門。精通到什麼地步呢,基本數據結構和基礎的演算法還有設計模式你得非常熟悉。這樣算是入門了。

接下來你就可以選擇一個游戲引擎了,市面上主流的游戲引擎有兩種一個Unity3D一個虛幻四。但是這兩款引擎的腳本語言並不一樣,Unity是C#虛幻四是C++所以在學習之前要想好使用引擎開發什麼類型的游戲。

主要學的內容如下:

1.游戲程序設計:C++程序設計入門;基本數據類型和輸入輸出;流程式控制制語句;數組、指針和引用、函數;程序結構和書寫規;范結構體和聯合體、類;繼承與多態;異常處理與程序調試。

2.演算法與數據結構:演算法分析;數據結構;基本演算法;STL的概念與使用;靜態庫與動態庫;XML庫的使用。

3.Win32程序設計:Windows程序入門;Windows消息;GDI繪圖游戲工具與MFC;網路編程基礎。

4.游戲數學和智能應用:游戲中的坐標系;矢量、矩陣;幾何碰撞;物理模擬;人工智慧與尋路演算法。

5.2D游戲技術與應用:2D游戲技術概論;游戲地圖系統;GUI系統;戰斗系統設計;任務系統;優秀的聲音引擎BASS;Cocos2D-X引擎;Box2D物理引擎。

互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。

想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。

祝你學有所成,望採納。

5. 一般迷宮游戲用到什麼演算法

狀壓DP,或者記憶化搜索。
一般的就是F[i,j,k]表示站在i,j點,當前已經得到了k的狀態。然後轉移。

6. 一般游戲編程用什麼語言和軟體

下面是游戲開發十大編程語言的列表。

1、C類#

C語言現在被廣泛應用於許多游戲引擎中,是最流行的游戲開發語言之一。它有一個XNA框架、一套微軟工具和運行時環境,使它特別適合Xbox或windows上的游戲。如果你想使用monogame在幾乎任何平台上發布游戲,這是一種很好的語言。

2、C類++

C++是一種面向對象的語言,被認為是最難學習的語言之一,但它是游戲開發人員的重要語言。它允許對硬體和圖形進程進行更直接的控制,這對行業很重要,是一些流行游戲引擎的流行語言。它還提供了對參數和內存管理的大量控制,從而提高了游戲的性能和用戶體驗。

3、Java

Java使用與C++相同的面向對象原則,但提供了更廣泛的系統。Java代碼通常在Java虛擬機(JVM)上運行,並轉換為可在任何系統上執行的通用位元組碼。因此,Java是為數不多的能夠讓開發人員為任何給定系統開發游戲的游戲編程語言之一。它是最好的游戲編程語言之一。

4、JavaScript

JavaScript是最流行的游戲編程語言之一,尤其是作為一種在線交互語言。使用JavaScript,可以更容易地將代碼與傳統的網路技術(如HTML和CSS)集成,從而導致越來越多的跨平台移動游戲。

5、HTML5

HTML5已經成為互聯網上最常見的游戲編程語言之一。你今天玩的大多數手機游戲都使用這種標記語言。使用JavaScript很容易創建復雜的基於web的游戲。該語言簡單易學,不一定需要學習復雜的演算法編程知識,因此成為游戲開發者的熱門選擇。

6、SQL語言

SQL被玩家用來訪問後端帳戶並在伺服器上執行其他操作。有新的語言,庫,框架,特別是AR,VR,圖形,物理和游戲。

7、Python

Python是另一種提供OOP方法的語言,是游戲開發人員使用的最易於使用的通用編程語言之一。它有一個pyGame框架,允許程序員快速開發游戲原型。

8、Rust

鐵銹被吹捧為C的繼承者之一。它主要被Mozilla基金會用作系統編程語言。它具有面向對象到面向數據的方法,有助於游戲開發。

9、UnrealScript

Unrealscript是unreal引擎的本機腳本語言。它結合了面向對象、多重繼承和功能豐富的游戲等復雜功能。該語言支持所有主要的游戲平台,如微軟Windows、MacOS、Linux、steamos、Android和PlaystationVR。

10、Lua

由於語言結構和語法簡單,Lua正成為游戲界最流行的語言之一。它是一種多平台腳本語言,許多現代游戲引擎都使用Lua作為主要的游戲設計編程語言。

7. 游戲開發中會用到哪些常用AI演算法

游戲開發指利用計算機編程語言,如C編程語言、C++、java等,編寫計算機、手機或游戲機上的游戲。 目前流行的游戲開發語言為C++編程語言,目前流行的游戲開發介面為DirectX9.0,還有OpenGL、SDL(Simple DirectMedia Layer)等。現在手機上玩的游戲分為Android與IOS兩種不同平台,分別是用eclipse/MyEclipse和xcode。現在也流行一些跨平台的編程引擎,例如cocos2d-x、unity 3D等。
接下來,再看看游戲開發的課程,游戲開發的課程除了理論知識還包括軟體的操作。
C++程序基礎:通過學習C++語言,奠定編程基礎。使用VS.net2005編譯工具,高效構建代碼。
演算法與數據結構:通過學習演算法與數據結構的基本概念,了解常用的數據結構及相關的抽象數據定義,認識計算機求解的基本思路與方法。
Win32程序入門:通過API和MFC的學習,熟悉Windows環境下程序設計基本方法。通過使用DirectX繪制2D圖形。
游戲數學和智能應用:游戲中的坐標系,矢量、矩陣,幾何碰撞,物理模擬,人工智慧與尋路演算法。
2D游戲技術與應用:2D 游戲技術概論,游戲地圖系統,GUI 系統,戰斗系統設計,任務系統優秀的聲音引擎 BASS,Cocos2D-X 引擎,Box2D 物理引擎。
游戲開發的常用軟體有C++、DirectX、Box2D、Cocos2d-x、Unity,不能說哪款最好用,因為這是游戲開發過程中都要用到的軟體,必須都精通。
C++是在C語言的基礎上開發的一種通用編程語言,應用廣泛。
DirectX,(Direct eXtension,簡稱DX)是由微軟公司創建的多媒體編程介面。
Box2D是一個用於模擬2D剛體物體的C++引擎。zlib許可是一個自由軟體授權協議,但並非left。
Cocos2d-x是一個開源的移動2D游戲框架,MIT許可證下發布的。這是一個C++ Cocos2d-iPhone項目的版本。
Unity是由Unity Technologies開發的一個讓玩家輕松創建諸如三維視頻游戲、建築可視化、實時三維動畫等類型互動內容的多平台的綜合型游戲開發工具,是一個全面整合的專業游戲引擎。

8. 各種類型的2D游戲里一般要用到什麼復雜的演算法

游戲類型(Game Genres),通常用於分類電子游戲,是一種分辨游戲之間區別的方法。世界上並沒有統一的分類方法。游戲類型主要分為6類:動作、冒險、模擬、角色扮演、休閑、體育,他們各有幾十種分支,形成了龐大的「游戲類型樹」。 電子游戲分類 RPG=Role-playing Game:角色扮演游戲 由玩家扮演游戲中的一個或數個角色,有完整的故事情節的游戲。玩家可能會與冒險類游戲混淆,其實區分很簡單,RPG游戲更強調的是劇情發展和個人體驗,一般來說,RPG可分為日式和美式兩種,主要區別在於文化背景和戰斗方式。日式RPG多採用回合制或半即時制戰斗,如《最終幻想》系列,大多國產中文 RPG也可歸為日式RPG之列,如大家熟悉的《仙劍》、《劍俠》等;美式RPG如《暗黑破壞神》系列。 ACT=Action Game:動作游戲 玩家控制游戲人物用各種武器消滅敵人以過關的游戲,不追求故事情節,如熟悉的《超級瑪里》、可愛的《星之卡比》、華麗的《波斯王子》等等。電腦上的動作游戲大多脫胎於早期的街機游戲和動作游戲如《魂斗羅》、《三國志》、《鬼泣》系列等,設計主旨是面向普通玩家,以純粹的娛樂休閑為目的,一般有少部分簡單的解謎成份,操作簡單,易於上手,緊張刺激,屬於「大眾化」游戲。 AVG=Adventure Game:冒險游戲 由玩家控制游戲人物進行虛擬冒險的游戲。與RPG不同的是,AVG的特色是故事情節往往是以完成一個任務或解開某些迷題的形式出現的,而且在游戲過程中刻意強調謎題的重要性。AVG也可再細分為動作類(AAG)和解迷類兩種,動作類AVG(AAG)可以包含一些格鬥或射擊成分如《生化危機》系列、《古墓麗影》系列、《恐龍危機》等;而解迷類AVG則純粹依靠解謎拉動劇情的發展,難度系數較大,代表是超經典的《神秘島》系列。 AAG=Act Adventure Game:動作冒險游戲 為冒險游戲的一個分支。但非常流行,自成一體,大有超過圖形類AVG之勢。故單獨列出。 SLG=Simulation Game:策略游戲 玩家運用策略與電腦或其它玩家較量,以取得各種形式勝利的游戲,或統一全國,或開拓外星殖民地。策略游戲可分為回合制和即時制兩種,回合制策略游戲如大家喜歡的《三國志》系列、《櫻花大戰》系列;即時制策略游戲如《命令與征服》系列、《帝國》系列、《沙丘》等。後來有些媒體將細分出模擬經營,即SIM(simulation)類游戲,如《模擬人生》、《模擬城市》、《過山車大亨》、《主題公園》等。TCG(養成類)游戲,比如《明星志願》等。 SRPG=Simulation Role-playing Game:戰略類角色扮演 原本角色扮演和戰略應該不能結合,但是如《火焰紋章》之類的游戲,因為操控小隊進行大地圖回合制戰斗極具戰略型(還因此被稱為戰棋類游戲)而且對人物進行培養扮演參與劇情也是很重要的游戲內容因此被玩家劃歸為是SRPG,可以說喜歡玩的人不多,人氣不夠。 RTS=Real-Time Strategy Game:即時戰略游戲 本來屬於策略游戲SLG的一個分支,但由於其在世界上的迅速風靡,使之慢慢發展成了一個單獨的類型,知名度甚至超過了SLG,有點像現在國際足聯和國際奧委會的關系。代表作有《紅色警戒》系列、《魔獸爭霸》系列、《帝國時代》系列、《星際爭霸》等等。後來,從其上又衍生出了所謂「即時戰術游戲」,多以控制一個小隊完成任務的方式,突出戰術的作用,以《盟軍敢死隊》為代表。 FTG=Fighting Game:格鬥游戲 由玩家操縱各種角色與電腦或另一玩家所控制的角色進行格鬥的游戲。按呈畫技術可再分為2D和3D兩種,2D格鬥游戲有著名的《街霸》系列、《侍魂》系列、《拳皇》系列等;3D格鬥游戲如《鐵拳》、《高達格鬥》等。此類游戲談不上什麼劇情,最多有個簡單的場景設定,或背景展示,場景、人物、操控等也比較單一,但操作難度較大,主要依靠玩家迅速的判斷和微操作取勝。 STG= Shooting Game:射擊類游戲 這里所說的射擊類,並非是類似《VR特警》的模擬射擊(槍戰),而是指純的飛機射擊,由玩家控制各種飛行物(主要是飛機)完成任務或過關的游戲。此類游戲分為兩種,一叫科幻飛行模擬游戲(Science-Simulation Game),非現實的,想像空間為內容,如《自由空間》、《星球大戰》系列等;另一種叫真實飛行模擬游戲(Real- Simulation Game),以現實世界為基礎,以真實性取勝,追求擬真,達到身臨其境的感覺,如《Lockon》系列、《DCS》、《蘇-27》等等。 FPS=First Personal Shooting Game:第一人稱視角射擊游戲 嚴格來說它是屬於動作游戲的一個分支,但和RTS一樣,由於其在世界上的迅速風靡,使之展成了一個單獨的類型,典型的有使命召喚系列、DOOM系列、QUAKE系列、《虛幻》、《半條命》、《CS》……不勝枚舉。 PZL=Puzzle Game:益智類游戲 Puzzle的原意是指以前用來培養兒童智力的拼圖游戲,引申為各類有趣的益智游戲,總的來說適合休閑,最經典的嘛~就是大家耳熟能詳的《俄羅斯方塊》。 體育競技 模擬各種體育賽事的游戲。比如《實況足球》等。 RCG=Racing Game:競速游戲[也有稱作為RAC的] 在電腦上模擬各類賽車運動的游戲,通常是在比賽場景下進行,非常講究圖像音效技術,往往是代表電腦游戲的尖端技術。驚險刺激,真實感強,深受車迷喜愛,代表作有《極品飛車》、《山脊賽車》、《摩托英豪》等。另一種說法稱之為「Driving Game」。目前,RCG內涵越來越豐富,出現了另一些其他模式的競速游戲,如賽艇的,賽馬等。 CAG=Card Game:卡片游戲 玩家操縱角色通過卡片戰斗模式來進行的游戲。豐富的卡片種類使得游戲富於多變化性,給玩家無限的樂趣,代表作有著名的《游戲王》系列,包括卡片中國游《武俠Online》,從廣意上說《王國之心》也可以歸於此類。 TAB=Table Game:桌面游戲 顧名思義,是從以前的桌面游戲脫胎到電腦上的游戲,如各類強手棋(即擲骰子決定移動格數的游戲),經典的如《大富翁》系列;棋牌類游戲也屬於TAB,如《拖拉機》、《紅心大戰》、《麻將》等等。 MSC=Music Game∶音樂游戲 培養玩家音樂敏感性,增強音樂感知的游戲。伴隨美妙的音樂,有的要求玩家翩翩起舞,有的要求玩家手指體操,例如大家都熟悉的跳舞機,就是個典型,目前的人氣中國游《勁樂團》也屬其列。 WAG=Wap Game:手機游戲 目前游戲隨處可以玩,連手機也必帶休閑游戲,中國民最喜歡手機游戲的種類,益智類比率最高,其次依次為動作類、戰略類、模擬類、射擊類。列舉幾個手機游戲例子:《金屬咆哮》、《FF7 前傳》等。 MUD=泥巴游戲 主要是依靠文字進行游戲的游戲,圖形作為輔助。1978年,英國埃塞克斯大學的羅伊?特魯布肖用DEC-10編寫了世界上第一款MUD游戲—— 「MUD1」,是第一款真正意義上的實時多人交互中國絡游戲,這是一個純文字的多人世界。(這可能就是MUD的命名來源吧)其他代表作有:《俠客行》、《子午線59》、《萬王之王》

9. 游戲一般用什麼編程語言開發

10. 大魚吃小魚游戲中用到過哪些演算法

大魚吃小魚游戲中用到過ZooKeeper的演算法。

ZooKeeper是一個分布式的,開放源碼的分布式應用程序協調服務,是Google的Chubby一個開源的實現(Chubby是不開源的),它是集群的管理者,監視著集群中各個節點的狀態根據節點提交的反饋進行下一步合理操作。最終,將簡單易用的介面和性能高效、功能穩定的系統提供給用戶 。

Zookeeper一個最常用的使用場景就是用於擔任服務生產者和服務消費者的注冊中心,服務生產者將自己提供的服務注冊到Zookeeper中心,服務的消費者在進行服務調用的時候先到Zookeeper中查找服務,獲取到服務生產者的詳細信息之後,再去調用服務生產者的內容與數據。

ZooKeeper 的架構圖中我們需要了解和掌握的主要有:

(1)ZooKeeper分為伺服器端(Server) 和客戶端(Client),客戶端可以連接到整個 ZooKeeper服務的任意伺服器上(除非 leaderServes 參數被顯式設置, leader 不允許接受客戶端連接)。

(2)客戶端使用並維護一個 TCP 連接,通過這個連接發送請求、接受響應、獲取觀察的事件以及發送信息。如果這個 TCP 連接中斷,客戶端將自動嘗試連接到另外的 ZooKeeper伺服器。

客戶端第一次連接到 ZooKeeper服務時,可以接受這個連接的 ZooKeeper伺服器會為這個客戶端建立一個會話。當這個客戶端連接到另外的伺服器時,這個會話會被新的伺服器重新建立。

(3)上圖中每一個Server代表一個安裝Zookeeper服務的機器,即是整個提供Zookeeper服務的集群(或者是由偽集群組成)。

閱讀全文

與游戲是用什麼演算法相關的資料

熱點內容
汽車小壓縮機拆解 瀏覽:825
雲桌面卡是因為伺服器的原因嗎 瀏覽:377
qd123壓縮機 瀏覽:969
pn532讀取加密門禁卡 瀏覽:85
win10文件夾屬性里無法加密 瀏覽:34
比特幣加密的條件 瀏覽:848
求購現成影視app源碼 瀏覽:572
wdsecurity加密版 瀏覽:813
雲伺服器和雲豐雲 瀏覽:188
伺服器如何設置獨立ip 瀏覽:857
tar命令打包文件夾 瀏覽:1000
刪除linux用戶和組 瀏覽:548
小米的程序員都用什麼筆記本 瀏覽:703
位元組三面演算法題 瀏覽:971
伺服器保護有什麼好處 瀏覽:894
全部下載完後進行統一解壓 瀏覽:393
遠嫁的程序員媽媽 瀏覽:555
1024程序員節安全攻防挑戰賽 瀏覽:786
怎麼解除txt加密 瀏覽:772
javahttp流 瀏覽:656