初級游戲開發指南

發表于:2007-04-28來源:作者:點擊數: 標簽:開發指南1984作者初級簡介
1.作者簡介 從1984年開始,Dave Astle就做著 游戲 開發工作。日間,他是ROI System,Inc的一名 軟件工程 師,夜間,引領Myopic Rhino游戲開發小組。只要有時間,他就會幫助GameDev.net成為最好的游戲開發資源網站。當然,他也需要偶爾的休息。 2.譯者序 3.正

1. 作者簡介
  從1984年開始,Dave Astle就做著游戲開發工作。日間,他是ROI System,Inc的一名軟件工程師,夜間,引領Myopic Rhino游戲開發小組。只要有時間,他就會幫助GameDev.net成為最好的游戲開發資源網站。當然,他也需要偶爾的休息。
2. 譯者序
3. 正文
  很多剛接觸開發或沒什么編程經驗的人經常會問:我該如何開始游戲編程。即便直到現在,我也只是幫助回答我所知道一個又一個的基本問題。然而,最近這種類似問題太多了,多的有些難以接受了,所以,我決定還是把所有建議寫下來,分享給大家吧。
  本文試圖幫助那些想實現自己的游戲,但又沒什么編程經驗的人。事實上,在這里我將假定您根本不懂編程,我主要針對游戲開發的編程與設計進行闡述,而不會涉及設計藝術。我也不大算對這個行業展開長篇贅論(畢竟到處可以找到大量的資源),但我將指出在制作你自己的游戲時需要注意的某些事情。最后,這里展示的途徑不是唯一的——也不一定是最好的 ——只是指出了該怎樣制作游戲的學習途徑,但對我和另外一些人來說,它已經足夠好了。

  選擇一門語言

  首先,你應該選擇一門編程語言,可能會有很多選擇:Basic,Pascal,C,C++,Java等等,并且還會有許多許多爭論:對于一個新手來說,到底應該(最好)使用哪種語言呢?對于若干流行語言的討論,可以看John Hattan的精彩文章“What Language Do I Use?”(http://www.gamedev.net/reference/design/features/whatlang)。
我會建議使用C/C++,可能有人會說“對于新手來說太深奧了吧”,起碼我就是從C++開始的,所以對大家也應該沒有問題。另外,C/C++應用很廣泛,所以你可以找到大量的資源及幫助。先學C還是C++并不關鍵,畢竟只要學了一門,另一門也會觸類旁通。然而,如果你決定先學習C++的話,還是應該在學習面向對象編程前首先要了解并掌握面向過程的開發。(也就是說,學習使用類前,你完全可以不用它們而很好進行開發)
  如果采用C/C++的話,可能發覺深入會越發的困難,當然,重新開始再選擇學習一門更為簡單的語言,如Basic或者Pascal,也未嘗不可,但我還是要告訴你,只要堅持下去,找到所需的資源,逐步深入,C/C++開發也會越來越得心應手。
  接著你應該會問“那我該如何學習C/C++呢?”,很高興你會這么問。最好的辦法是上一個培訓班(課),有老師或助教回答你的問題,能使你迅速提高,而留下的作業也會確認你是否真的掌握了你所學的知識點。(譯者注:呵呵,在國內很難碰到這么好的教師吧)
  如果上培訓班對你來說不現實的話,那最好的辦法就是找一些好的書籍。不要過于專注“精通”之類的書籍,否則,最后你可能會買上一大摞。我的建議是到最近的圖書市場,在那里花些時間來瀏覽那些關于C/C++介紹(入門)的書籍,直到你確定你能讀懂并能從那本書學到一些東西。然后,等你需要一些高級編程的書籍,或者是一本參考時,由于你對于這門語言有了些許了解,那時你就會知道你更需要什么。我們的“books section”中給了一些建議,地址為:http://www.gamedev.net/columns/books/。
  在此,我還想費些口舌來提醒眾多的編程新手,尤其是那些年輕人:沒有錢買書或者干其他的事情。首先,你可以找到很多編程資源,其中包括本地庫文件,還有Macmillan Computer出版物,通過http://www.mcp.com/personal可以找到成千上百的編程書籍。但是,其次,如果你真的想成為一名出色的程序員,有時腦筋不得不轉個彎兒,使用任何東西(合法的;<)都意味著你不得不數數口袋里的鈔票然后掏出來。
  通過Web完全可以找到大量的C/C++學習指南,但我覺得這些指南最好作為你學習書籍的補充,而不是作為單獨的資源使用。

  選擇合適的編譯器

  你寫的程序或者說是源代碼,被存儲為文本文件,你完全可以使用Notepad來寫一個C/C++程序,但你還是需要“某些東西”來把源代碼轉化成可執行文件。在C/C++中,這個“某些東西”指的就是編譯器。
編譯器有很多,有些還是免費的,選擇一個適合你的很重要,免費的更方便你去嘗試,并選擇一個你覺得最好的。然而,免費也通常意味著功能不全或者支持不夠。幸運的是,大多數商業編譯器也有入門及學術版本(introductory or academic versions),這樣你就會花更少的錢而獲得全部功能,唯一的限制是:你不能把用它編譯的程序發布出去(畢竟在某段時間你不會發布……)。
  最后,你選擇的編譯器應該取決于你的花費及開發所處于的操作系統或平臺。如果打算在Windows下開發,強烈建議使用Microsoft Visual C++,它擁有一個強大的開發環境,使得開發變得更容易,并且毫無疑問開發Windows應用程序也沒有其他更適合的編譯器。(譯者注:應該是針對C++而言,不過使用BC或者其他編譯器的肯定不同意,但我也推薦使用VC,因為開發資料確實很多,雖然我也不太會:))如果你是學生,那太好了,你會以不錯的折價得到一個拷貝,如果在DOS下編程,最好賭注DJGPP(http://www.delorie.com/djgpp),它是免費的。(譯者注:的確真的確實非常好奇地問“DOS下開發的人還有么?”)

  目標平臺

  盡管你最終可能發布到若干不同平臺下,但你還是需要一種來重點學習。一旦學習一門語言,在進入開發前(包括圖形開發),你可能需要使用一個非GUI的操作系統,如DOS或者UNIX,這會避免一些前置問題(the overhead involved with),例如,Windows編程中,你就可以僅專注于語言的學習,(而不用擔心界面部分)。
  一旦你準備好開始游戲編程了,你還是應該確定你的目標平臺。還是讓我們看看更多的(需要注意的)重要環節吧:
  Windows:如果你想在游戲行業中做的很專業,或者更多的人能玩你的游戲,那就選擇Windows吧。重要的是你的用戶在使用Windows — 至少現在看來是這樣的。Windows大量主流游戲使用了一種開發技術 — DirectX,你可能聽到過。DirectX是一個開發庫,可以使你直接訪問硬件層,也就意味著你可以開發高性能的游戲。
  DOS:DOS曾經是主流的游戲開發平臺,但那些日子已經一去不復返了。盡管還有一些嗜好者仍在開發DOS游戲,但不再有商業游戲開發了,畢竟Microsoft不再給予更多的支持了。如果你剛開始做游戲,不要選擇DOS,否則,不要執著于此。注意:由于還是有些DOS游戲編程的書籍,需要注意學習的話,可能會跟實際有所不同了?,F在Windows游戲開發的書籍越來越多,這方面的爭論也會越來越少。
  LinuxLinux作為一種UNIX變體,基于某些原因,近來變得很流行,這些因素包括穩定性、價格還有反Microsoft情緒在內。盡管Linux的用戶數還相對較少,但由于對它的極度熱衷和潛在市場的增長,使得可以作為目標平臺的另一種選擇。
  Macintosh:Mac有著大量的不容忽視的熱衷者,而且我所了解得每個熱衷者都極度渴望Macintosh下能有更多更好的游戲。雖然我沒有看到過在Mac下開發的資源,但我還是確信肯定在某處存在著,因此這也是一種有理由選擇的平臺。
  控制器(Consoles):控制器(也就是PS、N64、DC等等)游戲市場是巨大的,開發控制器游戲當然有前途,但是,非商業開發有很多因素使得有很大的不確定性。如果你在開發控制器游戲,可能是正在被一個商業游戲工作室所雇用吧。

  備足原料(On to good stuff)

  現在可以開始討論實際的游戲開發了,簡單起見,我將假定你已經選擇了C/C++語言并在Windows下開發,但我所說的對其他條件同樣適用。
  首先,開發游戲前,你應該熟練掌握C/C++。你需要了解指針、數組、結構、函數,可能還有類,應該是很精通了。如果這樣的話,那你就已經準備好了。
本文不可能教會游戲開發中的所有事情,幸運的是,也沒有必要,Web上完全可以找到大量的相關書籍及指南。GameDev.net應該有你所需要的。下面就是我的一些建議:
  一本或更多的書籍。Windows中,開始開發游戲的話,“Windows游戲開發訣竅”(http://www.amazon.com/exec/obidos/ASIN/0672313618/gamedev)很適合你看。另外Books section也會找到其他一些書籍。通讀整本書,嘗試所有的范例,然后重新閱讀你不能理解的部分。
  以在線指南作補充。除了闡明你所讀過的知識外,他們同樣包含書中沒有的知識點(主題)。
  問專家。書中或指南中都找不到答案的話,那就充分利用留言板和聊天室(譯者注:感覺國內的聊天室沒有太好的氛圍,還是找些BBS或者論壇問吧),會有很多人愿意幫你解決的。
  實際中,不應該是一個固定不變的過程,而應該是一個相似過程的不斷重復。
  僅僅學習是不夠的,還需要把學到的東西應用,首先開始一個簡單的游戲,然后逐步發展??梢钥纯碐eoff Howland的文章:“我是怎樣開發游戲的?一條游戲開發的途徑”(http://www.gamedev.net/reference/design/features/makegames)。
  起初,還是打算自己干吧,不要急于加入一個開發組,因為那只會讓你的學習過程變得緩慢。一旦你自行完成了數個游戲,那對于一個開發組來說你也會起到更大的作用。
關于書籍我還是愿意多說兩句:除游戲開發的書籍外,你需要閱讀更多的書籍。為了能創建各式各樣的游戲 — 如售貨架上的那些 — 你將不得不鉆研那些更高級的主題。有些你是可以在指南中找到的,但還是會需要更多的書籍:圖形、人工智能、網絡、物理等等。所以你需要上這些培訓(課) — 雖然你覺得這些對于游戲編程沒有用 — 這簡直夠的上一個計算機科學專業的學位。

  總結(Wrapping up)

  這里還有些重要的提示:
  不要僅僅積累知識,去應用。你絕對不會真正懂得或者理解一個事物,除非你使用它。用自己所學,實現些小的demo程序吧??梢宰鲆幌聲忻空鹿澓蟮木毩曨}。
  玩大量的游戲。這樣做可以給你些啟發,幫你實現更好游戲,同樣也給你很好的理念(a welcome relief from programming)。
  幫助他人。通過幫助他人解決問題,你也會了解這個知識點,并學會更多東西。
  完成你所開始的。不要陷入到你的思維陷阱中:“我知道我可以完成這個游戲,但我有了更好的主意,我要實現這個更好的(而不是原來的)?!比绻麍猿滞瓿赡闼_始的,你會懂得更多東西,而且你擁有了一個事物可以證明你并不是夸夸其談。要想實現簡單些的話,就不要在更多經驗前嘗試實際上很大、很復雜的游戲。
  開始吧!現在你肯定陶醉于制作Quake 4中,好的,雖然不見得如此,但至少你能沿著這條路走下去,并找到更多的信息,夜以繼日的辛勤工作后,必定有收獲。



原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97