激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

c語言能開發(fā)游戲嗎(為什么我選擇用 C 編寫游戲?)

發(fā)布時間:2023-11-27 00:38:48 瀏覽量:120次

?為什么我選擇用 C 編寫游戲?

c語言能開發(fā)游戲嗎(為什么我選擇用 C 編寫游戲?)

“古老”的C++,仍然是當(dāng)前編寫游戲時最常用的語言,但是 C 為什么才是最適合的?

作者 | Jonathan Whiting

譯者 | 彎月,責(zé)編 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下為譯文:

我喜歡走不尋常路。最近我所有的個人項目游戲都是利用“最普通”的C語言編寫的。所以,我覺得有必要解釋一下為什么我選擇用C編寫游戲。

下面讓我們來談一談有關(guān)編程語言的見解,我警告你這些內(nèi)容可能有點枯燥。

編程語言必須具備的條件

有些事情是沒有商量的余地的。首先,這種語言必須可靠。我可不愿花時間去處理那些不是我自己造成的錯誤。

我的許多游戲都是用Flash編寫的,現(xiàn)在Flash快要死了。我不想花時間將舊游戲移植到新平臺,我想制作新游戲。我需要一個可以在很長一段時間都保持穩(wěn)定的平臺。

同樣,我也不想將自己綁定到特定的操作系統(tǒng),而且理想的話,我希望該語言還可以為游戲機(jī)開發(fā)游戲。因此,我選擇的編程語言必須擁有可移植性,這點很重要,而且擁有良好的可移植庫支持。

期待編程語言具備的條件

雖然不是必須條件,但我最想要的首先是簡單性。我感覺查找語言功能和稀奇古怪的“聰明” API極其令人厭煩。我希望我可以記住這種理想的編程語言,而且再也不必查找任何東西。

處理Bug會消耗大量腦細(xì)胞。我希望產(chǎn)生的bug越少越好,所以我希望這種語言能嚴(yán)格檢查拼寫,強(qiáng)烈的警告消息和靜態(tài)代碼分析。我希望很輕松就能發(fā)現(xiàn)bug,所以我想要良好的調(diào)試器和動態(tài)分析。

我對實現(xiàn)高清并不感興趣,但我卻十分在意性能。節(jié)省下更多的CPU時鐘周期,意味著你有更多的余地去嘗試別的東西。如果你不追求高分辨率,那么探索現(xiàn)代功能強(qiáng)大的計算機(jī)的潛力會非常有趣。

此外,我更加關(guān)心編譯器的速度。我不是禪宗大師,對我來說等待10秒鐘以上就是浪費時間,而且更重要的是,這會打亂我的節(jié)奏,我會情不自禁打開Twitter,一晃眼5分鐘就過去了。

我并不熱衷于面向?qū)ο?。我一生的大部分時間都在處理類和對象,但是花的時間越多,就越不明白為什么要如此嚴(yán)格地結(jié)合代碼和數(shù)據(jù)。我想單獨處理數(shù)據(jù),然后再編寫最符合特定情況的代碼。

其他替代語言

C++仍然是當(dāng)前編寫游戲時最常用的語言,這并非沒有道理。幾乎我所有的簽約工作中都使用了C++。但我非常不喜歡C++。

c語言能開發(fā)游戲嗎(為什么我選擇用 C 編寫游戲?)

C++可以滿足必備的條件,但是嚴(yán)重不符合我所期望的一些條件。C++極其復(fù)雜。盡管C++有很多優(yōu)秀的工具,但很容易制造出隱匿的bug。與C相比,C++的編譯速度也較慢。雖然C++的性能很好,而且還提供了C所沒有的功能,但這些都不是我想要的功能,而且因此付出的代價是高度的復(fù)雜性。

C#和Java也有類似的問題。這兩種語言都非常冗長且復(fù)雜,我想尋找一種簡潔明了的編程語言。C#和Java都是面向?qū)ο蟮娘L(fēng)格,而我卻非常不喜歡面向?qū)ο?。與大多數(shù)高級語言一樣,這兩種語言都傾向于隱藏復(fù)雜性,但實際上并不能減輕復(fù)雜性給我?guī)淼睦_。

我很喜歡Go,這種語言的很多方面都繼承了C,而且還考慮到了自發(fā)布以來多年積攢的經(jīng)驗。我喜歡使用Go,但是Go也有一個重大問題。對編寫游戲來說,“暫停一切”的垃圾回收是一個巨大的痛苦, “暫停一切”是我無法忍受的。此外,Go對游戲的庫支持非常差,盡管你可以通過包裝C庫來解決這個問題,但是這樣做會增加很多工作量。而且Go的定位讓我對其長期的發(fā)展充滿了擔(dān)憂。

Go語言用來制作Web的東西也不錯,但是感覺Go語言發(fā)展得太快。我真怕它像flash那樣死掉了。此外,我真的不喜歡javascript,它太過于寬松,看到人們利用javascript編寫大量軟件,我由衷地感到驚訝。我自己沒有興趣嘗試。

感覺Haxe比其他編程語言更有前途。如果再做Web開發(fā)的話,我可能會深入研究一番。這種語言也有一些很好的庫支持。但我擔(dān)心Haxe過于年輕,還能持續(xù)發(fā)展多久?我不想對此妄加發(fā)表評論,畢竟我只是淺嘗輒止。

看到這里有人可能會說,這么挑剔干脆自己寫一門編程語言吧。我很佩服創(chuàng)造出新編程語言的人,我自己常常也有這種想法。但我感覺放棄現(xiàn)有的庫支持,并為將來的兼容性承擔(dān)全部責(zé)任,這個擔(dān)子有點過重了。而且這也是非常困難的,所以還是回歸現(xiàn)實,我寧愿做游戲,也不愿創(chuàng)建新的編程語言。

為什么C仍然是我的最佳選擇?

C很危險,但是很可靠。C就像一把鋒利的刀,雖然有可能會劃破手指,但也可以切菜,而且C非常簡單,學(xué)會謹(jǐn)慎使用也非難事。

C的速度非???,我想不出還有什么比C的編譯更快的編程語言。

C幾乎可以在所有環(huán)境中運行,而且通常都比較容易。很難想象無法運行C的情況。

C擁有強(qiáng)大且持續(xù)的庫和工具。

雖然說這話的時候,我略感悲傷,但C仍然是我的首選語言。

我絕不是想鼓動每個人都來使用C。我在本文中所做的推薦針對非常具體且不尋常的情況。我已經(jīng)編寫了大量非常“普通”的C代碼,而且我感覺使用C語言的時候最舒適。

以上,感謝閱讀。

原文:https://jonathanwhiting.com/writing/blog/games_in_c/

本文為 CSDN 翻譯,轉(zhuǎn)載請注明來源出處。

【END】

c語言能開發(fā)游戲嗎(為什么我選擇用 C 編寫游戲?)

熱門課程推薦

熱門資訊

請綁定手機(jī)號

x

同學(xué)您好!

您已成功報名0元試學(xué)活動,老師會在第一時間與您取得聯(lián)系,請保持電話暢通!
確定