簡單的游戲編程,想學習游戲開發需要具備哪些基礎才能學?
1. 如何系統地自學游戲開發?
我的建議是先學習使用成熟的游戲引擎, 自己或者組隊制作幾款小游戲, 把游戲開發所涉及的各種知識有個概念上的了解, 再選擇自己感興趣的深入學習. 當然, 主修游戲玩法也可以, 在不斷地優化和提升的過程中, 肯定會遇到技術瓶頸, 那時候就有學習和改進的動力了.
2. 自學游戲開發應該自上而下還是自下而上?
雖然我自己是自下而上的, 但是我更建議自上而下. 因為自下而上的話, 更多的是在學習底層技術, 卻與游戲相關性不大. 很多人可能很想做游戲引擎, 但是不了解游戲的人做出來的引擎是沒人用的, 建議還是先對游戲制作的各方面做一下了解, 再去學習會少走很多彎路.
3. 建立在有足夠的耐心逐步學習的基礎上,應該先打好圖形學基礎再開始游戲開發嗎?
圖形只是游戲的一部分, 不是游戲的全部, 而決定游戲畫面好壞更多的是美術而不是程序. 而且圖形做到后來會極大地依賴數學, 我個人就是因為這個限制住了提升空間. 不只是圖形, 計算機的各科課程在游戲開發中都會用到, 理論基礎都很重要, 這決定了你之后能夠達到的高度。
嘗試過directx加win32編程的。
1.先學習基礎的程序算法和原理,然后學習dx的2d編程,寫個小程序,包含一些簡單的圖像處理的函數,從放大縮小到旋轉到色相處理等等,能將多個圖像系統的組合處理的。例如控制一個小人在屏幕上移動,能發射直線的子彈,子彈打到墻上會消失等等。
2.找一個小游戲,例如網上各種flash小游戲(因為可以直接反編譯里面的資源出來用,方便),防照一個寫出來。寫的時候可以先用暴力方法寫,然后再轉換成面向對象的寫。例如我當時就抄了一款打地鼠游戲來練手了,里面有20多個關卡,有不同ai的地鼠和boss,還有道具商店和秘籍等等,都全部完完整整的寫了一遍。簡單點的話不妨寫一個flappy bird也不錯啊。
途中還需要補充學習一些音頻和輸入設備的處理方式。
3.最后咯,就開始進軍3d了,當年有兩本很出名的書的,不過名字我忘記了,叫什么windows游戲編程啥的,一本是2d一本是3d的,其中3d那本是從3d圖像基礎原理開始教起的,挺有意思的,現在很多3d開發教程都只是直接教你用api。
之后同樣也是自己動手寫一個游戲,不過這次可以自己去想一個簡單的游戲去寫了。途中可以考慮一下某些游戲的玩法是怎么寫的,因為我當時寫的是一個很挫的格斗游戲,但里面思考怎樣去寫兩個技能碰撞的,寫拳王式的搓技能,dnf式的技能中斷,都是很有趣的事情啊。
那么接下來介紹一些相關知識:
1. 玩法程序員: 這類程序員更加接近游戲的本質: 好玩.。
用途: 需要對游戲玩法本身有深刻了解. 平時工作與策劃(游戲設計師)緊密相關。
你需要看懂最基本的游戲需求。
游戲設計是一個不斷打磨優化的過程, 所以玩法需求會經常變動, 導致程序也要不斷地調試重構甚至重寫. 另外, 不同游戲玩法在程序實現上的差異巨大, 所以針對不同需求進行建模的程序設計能力是需要長時間的積累和學習的, 所以建議盡量主修一種玩法.
2. 引擎程序員: 這類程序員更加喜歡技術, 而游戲引擎涉及的計算機技術非常廣泛, 幾乎能覆蓋所有你能接觸到計算機學科. 所以說, 這方面對于理論基礎要求非常高, 需要不斷地去學習. 圖形, AI, 動畫, 物理, 特效, 交互, 網絡等, 每一部分能精通已是不易, 所以一個人寫一個引擎是不現實的。卡馬克都說了, 造火箭比寫引擎容易多了,但是這些技術能夠掌握一兩種, 就可以成為游戲程序員的核心競爭力, 所以看個人興趣選擇性的深入學習是一個比較好的方式.
3. 后臺程序員: 國內的游戲都是以網絡多人游戲為主, 所以游戲服務器技術說是世界領先也不為過. 由于很多網絡游戲的開發分工比較專業化, 通常會分化為前臺程序員和后臺程序員. 后臺服務員通常都是命令行式的工作界面, 以linux, 數據庫, 網絡, 分布式, AI, 安全等做為技術基礎, 技術的更新沒有前端變化快, 可以不斷地積累經驗, 但是與游戲制作的關聯相對少一些.
4. 工具程序員: 其實就是把游戲開發過程中的各種浪費時間的, 重復性的勞動工具化, 提高制作和開發的效率. 很多工具是游戲引擎的一部分, 但是引擎提供的功能一般是通用的, 針對特定游戲玩法會有特性的工具. 這類程序員需要對游戲的制作流水管線比較了解, 善于發現制作瓶頸, 并使用程序制作工具來優化制作流程.
5. 技術美術: 其實一般會把TA(Technical Artist)劃入美術分類中, 但我也見過一些喜歡圖形和美術的程序員轉職成技術美術. 這個角色在3D游戲項目中非常重要, 因為很多玩法程序員對美術制作和3D引擎并不是很熟悉, TA相當于兩者之間的橋梁, 能夠在理性與感性之間做出平衡. 所以技術美術不但需要了解圖形渲染和引擎技術, 更需要掌握制作流水線, 動畫特效, 概念設計等, 基本上算是綜合能力的一種體現 .
6. 主程序: 一般會把主程序視為所有游戲程序員的Leader, 都是經驗豐富的程序員擔任. 通常會設計程序的架構, 并兼一定量的項目管理。
希望可以幫助到你吧!
編程好學嗎?
你學編程未來的目的:
高三,大學還有的是時間開始學習。但是你要選個大體的方向專注學習比較好。我列舉下你看看。道理跟駕駛開車一樣的,基礎就是你學會最基本的駕駛了。那么OK,哪你要去開什么車型呢?私家車?工程車?特種車輛?所以選擇的下吧。
1、全棧工程師
前端后端一起玩,網站網頁+后臺(PHP、JS、Python web、MySQL)當然還有圖片動畫設計類的軟件PS之類的。
需要用到后端開發、前端開發、界面設計、產品設計、數據庫、各種移動客戶端、三屏兼容、restFul API設計和OAuth等等, Application、Web Socket、HTML5/CSS3這些技術以及像第三方開發像微信公眾號微博應用等等。
2、數據流派
大數據工程師一個很重要的工作,就是通過分析數據來找出過去事件的特征。搭建一個數據倉庫,把公司所有網絡平臺上數量龐大、不規整的數據信息進行梳理,總結出可供查詢的特征,來支持公司各類業務對數據的需求,包括廣告投放、游戲開發、社交網絡等。比如Sqoop、Flume、Kafka、Spark、MapReduce;另一方面就是編程語言的需要,Java、Shell和Sql是基本功。
3、網絡工程師,掌握網絡技術的理論知識和操作技能的網絡技術人員。網絡工程師是指基于硬、軟件兩方面的工程師,根據硬件和軟件的不同、認證的不同,將網絡工程師劃分成很多種類。也需要編程基礎的。一般是思科、華為設備、VLAN配置編程語言集成在網絡設備里面。
4、游戲編程
分為4個大類
1、同1網頁類
2、Perl、Python、REBOL、Ruby3、JAVA和C#
4、C/C++
怎樣在Linux下編程?
前言分享好玩科技,探索未知世界。大家好,我是drinkingcode。針對如何學習Linux編程,分享一下作為過來人的經驗,希望可以幫助到大家。
環境搭建如果要在Linux下進行編程,那么首先我們需要有Linux操作系統的環境。通常的做法是下載并安裝VMware,然后在VMware下安裝Linux操作系統的發行版,比如Ubuntu,CentOS等。當一切安裝就緒后,你就擁有一個Linux的編程環境了。如果大家需要相關資料,可以關注私信我,百度網盤分享給大家。(僅供個人參考學習)
入門掌握C語言
環境搭建好之后,接下來我們需要掌握一門編程語言。由于在Linux下提供的系統API都是針對C語言的,所以想要進行Linux編程,就需要掌握C語言的基本使用。針對C語言的學習,給推薦大家一本《C和指針》
熟悉Linux命令
在Linux下編程,很多時候都是通過命令來進行操作的,ls命令,cd命令等。所以掌握常用 的Linux命令之后,你就能更方便地去使用Linux系統。對于Linux命令的掌握,大家只需要選擇一些常用的命令來進行學習就可以,至于平時不常見的命令,到時遇到再去選擇性學習。在這里推薦一本學習Linux命令的書籍《鳥哥的Linux私房菜》基礎學習篇
熟悉vim
有了前三步的基礎,接下來,我們就可以手動來寫C語言了。在Linux下,C語言的編輯器為vim。但是想要在vim上編寫代碼,就需要了解vim基本命令的使用,因為vim的使用使用vim命令來進行交互的。當我們熟悉了vim命令的使用后,我們就可以自由自在地在Linux下編寫我們的C語言代碼啦,然后用gcc編譯器編譯我們寫好C語言代碼的文件,就可以得到可執行程序,運行可執行程序,就可以看到輸出結果。
進階熟悉系統API
在入門階段,我們掌握基本開發Linux程序的流程。但是在入門階段中,我們編寫的應用還不具備太大的實用意義,因為我們編寫的程序并沒有借助系統的API。所以在進階階段,我們需要做的就是借助Linux系統API,以便我們編寫的應用發揮更大的威力,更具有實用的價值。
在Linux系統中,比如讀取一個文件的內容或者把服務器建立一個連接等,都需要調用Linux系統API才能實現。如何掌握這些API呢?在這里,推薦搭建閱讀《UNIX環境高級編程》,里邊介紹了文件I/O,進程間通信等知識。這樣我們就可以借助系統API讓應用發揮更大的價值。
掌握Makefile
當我們編寫一個程序的時候,為了讓其層次更清晰,通常會把不同部分的程序放在不同的文件或文件夾中,但這些文件之后又是有相互依賴關系的,如何在gcc編譯時告知他們之間的順序呢?此時,就需要我們掌握Makefile的基本語法,然后用Makefile來告知gcc如何編譯。在這里推薦一本《GNU make》。
總結以上就是我說認為在Linux編程學習中幾個比較重要的節點,予以羅列出來,希望對于想要學習Linux編程的同學有一定的借鑒作用。如果你喜歡我的文章或對你有幫助,歡迎點贊轉發!
關注我,我是drinkingcode,分享好玩科技,探索未知世界!
以上就是關于簡單的游戲編程和想學習游戲開發需要具備哪些基礎才能學的相關問題解答,希望對你有所幫助。