Re: [閒聊] 天使帝國製作人兼程式試用AI解讀其源代碼

看板Old-Games (懷舊遊戲 - 經典遊戲 - 老遊戲)作者 (無想流流星拳)時間1年前 (2023/04/28 15:45), 1年前編輯推噓5(503)
留言8則, 7人參與, 1年前最新討論串2/2 (看更多)
※ 引述《alinwang (kaeru)》之銘言: : 2.組合語言依然是我認為最神的語言. : 光是能把它丟在顯示記憶體上執行,這一點我就覺得很有趣了. : 玩家絕對想不到螢幕上出現的刀光,其實圖形的本體是一段程式碼. : {在沒有哪個程式語言能這樣搞的. : 此時腦中出現一個不曾存在的畫面.. 我真的用組合語言寫過遊戲... 我小時候的時候,電腦是撿回來的,當然是沒得挑,那是一部 80286,在 1990 年代來說,也是很落伍的機器(8 mHZ 的 CPU)。所以用組合語言寫 遊戲不是一個選擇,而是沒有選擇。 到底那時候的電腦,有多需要組合語言呢?我舉一個例子,懂寫程式的人 應該也有用過 for loop 吧。而那個時候,只要你做一個 for loop 是由 1 數到 1000,裡面甚麼都不做,已經可以做到讓軟體停下來差不多半秒 至一秒的效果。那時的電腦光是用 C++ 做 for loop 都會出現明顯的效 能差別。 如果是做圖像處理的東西,基本上你沒有辦法不用組合語言。 現在的程式員,一出身有些東西是理所當然的,例如你用 Unity 之類新 的平臺,透明色和 alpha channel 這種東西是必要的,你做遊戲的話總 有不同形象的圖,總不能全部都是矩形吧?可是在 DOS 的年代,並沒有 alpha channel 和透明色這種東西。 一是你的所有圖都是矩形,你看早期遊戲如創世紀,他的圖就是全部都 是矩形的。但是如果你想像瑪利奧一樣出人形的圖呢?那麼你就需要挑 一個顏色當透明色,然後做一個 mask,再將這個 mask 跟圖和背景做一 次 XOR 運算... 如果你不是用組合語言的話,做完這個運算這個遊戲基 本上都慢到不用玩了。 所以要做到這個這麼基本的效果,你都一定要用組合語言,另一點就是 輸出中文,通常是直接偷中文系統的字形檔,讀這個東西再輸出也很需 要效能。結果再不想學你還是有學,不學組合語言根本做不出像樣的東 西出來。 不過實際上整個用組合語言寫還是很不人道的,大部份人還是選擇權衡 一下,在 C++ 裡面用 inline assemebly,混合在高級語言(C++)用。 去到今天這種是屠龍之技,完全沒有用了。 -- 我的 patreon: patreon.com/chenglap 大部份文章是免費公開可以看的 -- ※ 文章網址: https://www.ptt.cc/bbs/Old-Games/M.1682667911.A.C4F.html ※ 編輯: chenglap (58.152.242.151 香港), 04/28/2023 15:46:30

04/28 17:09, 1年前 , 1F
現在有ASM64,跟用高階語言差不多了,更不用說精簡指令集了
04/28 17:09, 1F

04/28 18:27, 1年前 , 2F
厲害 XD
04/28 18:27, 2F

04/28 19:14, 1年前 , 3F
c大上次出現是2020年
04/28 19:14, 3F

04/29 00:09, 1年前 , 4F
是C大!!
04/29 00:09, 4F

04/29 01:59, 1年前 , 5F
推C大!!
04/29 01:59, 5F

04/29 05:46, 1年前 , 6F
歡迎來探我,我有空才能來 ptt,最近開發工作多太忙了。
04/29 05:46, 6F

04/29 12:29, 1年前 , 7F
在 facebook 能找到我
04/29 12:29, 7F

04/30 19:05, 1年前 , 8F
一樣是286,我從basic開始耶,要我mov 02,ah,我沒辦法
04/30 19:05, 8F
文章代碼(AID): #1aItc7nF (Old-Games)
文章代碼(AID): #1aItc7nF (Old-Games)