Board logo

标题: 各時代的主機遊戲是用什麼程式語言撰寫的? [打印本页]

作者: 村上春樹    时间: 2008-7-12 12:30     标题: 各時代的主機遊戲是用什麼程式語言撰寫的?

進入PS2時代以後應該都是C/C++,但DC、n64、ps呢?

更早以前在16bit機如SNES、MD以前是不是多用匯編撰寫遊戲?還是每種主機開發套件中有特製的程式語言?

同樣疑問也可以推廣到90年代上半的街機遊戲,像是cps 、NEO-GEO的遊戲是用什麼語言撰寫的?

求達人解惑,感謝
作者: sonicteam    时间: 2008-7-12 12:45

MD 好象用的汇编  SFC用的C语言
作者: 村上春樹    时间: 2008-7-12 12:50

引用:
原帖由 sonicteam 于 2008-7-12 12:45 发表
MD 好象用的汇编  SFC用的C语言
那麼8bit 機應該都是匯編了?
作者: Rudy    时间: 2008-7-12 21:43

md有c编译器基本用c的,
sfc用汇编.
作者: czzj12345    时间: 2008-7-12 23:05

引用:
原帖由 sonicteam 于 2008-7-12 12:45 发表
MD 好象用的汇编  SFC用的C语言
引用:
原帖由 Rudy 于 2008-7-12 21:43 发表
md有c编译器基本用c的,
sfc用汇编.


到底是啥?
作者: kanc    时间: 2008-7-12 23:08

用汇编写游戏那要开发多久啊
作者: 日曜の雨    时间: 2008-7-12 23:09

显然是微代码啦 直接操作异或门、非门、与门……
作者: carnon    时间: 2008-7-12 23:11

在fc时代就用C了
作者: 聋则嗅明XP    时间: 2008-7-12 23:33

操,基本都是C,沒多少**會去用匯編寫,寫死,換個人又要重寫
作者: Ophelia    时间: 2008-7-13 10:28

GB/GBC是汇编,GBA主要是C但也有C++,DS就是C++了。。
作者: sangokushi    时间: 2008-7-13 17:17

引用:
原帖由 sonicteam 于 2008-7-12 12:45 发表
MD 好象用的汇编  SFC用的C语言
有人能从头到尾用组合语言开发游戏?
即使SEGA MD用的不是C也是用其他高阶语言
况且MD的游戏程式确实是用C写的
上次看到谁PO了一篇文章MD VS SFC
跟你说的相反 说MD用C开发 SFC用组合语言开发
我也不相信
组合语言可能至多用于部分低阶硬体相关的模组
大型的游戏程式总体架构用组合语言是不可能的

尤其我不相信各大主机厂商会让第三方直接用组合语言开发
这样做等同于要第三方熟悉一遍主机的硬体
对CPU的每条指令都要深刻了解并应用
第三厂完全没有办法把精力集中在游戏开发的部分
据我了解以目前的状况 主机开发尚除了要提供第三厂高阶语言开发环境之外
还要提供大量的函式库(API) 前端定义巨集 甚至各种编辑 转换工具
才能让第三厂上手
我很难相信过去的游戏开发者有那么强
直接从组合语言写起

另外DC肯定是用C++开发了
据说DC可以用MS提供的DIRECT X开发
也可以用SEGA提供的另一套API开发
作者: sonicteam    时间: 2008-7-14 03:59

引用:
原帖由 sangokushi 于 2008-7-13 17:17 发表


有人能从头到尾用组合语言开发游戏?
即使SEGA MD用的不是C也是用其他高阶语言
况且MD的游戏程式确实是用C写的
上次看到谁PO了一篇文章MD VS SFC
跟你说的相反 说MD用C开发 SFC用组合语言开发
我也不相信
组 ...
MD和SFC里 肯定有一个是用的汇编, 年代久远 当时看的资料有点遗忘了。

另外 早期游戏开发者的环境更本无法和现在去比 不要用3D游戏或者现有技术条件下的逻辑去想过去游戏开发者
作者: md2    时间: 2008-7-19 18:59

SFC就是用的汇编
为这事以前还战过


“尤其我不相信各大主机厂商会让第三方直接用组合语言开发
这样做等同于要第三方熟悉一遍主机的硬体”
所以16位时代是日本人称霸世界
有人说NAMCO的主程用汇编开发了一整套3D游戏引擎
全用汇编反而没什么
用惯了汇编转化到C的时候倒是很痛苦



[ 本帖最后由 md2 于 2008-7-19 19:04 编辑 ]
作者: md2    时间: 2008-7-19 19:07

引用:
原帖由 聋则嗅明XP 于 2008-7-12 23:33 发表
操,基本都是C,沒多少**會去用匯編寫,寫死,換個人又要重寫
2000年网上流传的主程守则第8条:
如果遇到你无法解决的问题,把程序用汇编重写一编,然后扔给下任
作者: henvelleng    时间: 2008-7-19 19:18

即便主机厂商没有提供C等高级语言编译器,游戏开发商也不得不自行开发一套编译器来自给自足。如果任天堂SFC真的没有提供高级语言编译器,除了说明任天堂的技术水平低下+吝啬以外什么也说明不了
作者: jzhl    时间: 2008-7-19 19:36

等我告诉你听,FC,SFC都是用各自的CPU的汇编语言。其实你只要查一查这些主机的CPU的型号,然后再找一找有没有C语言编译器是可以翻译成这种CPU指令代码就可以了。说老实话,可以用C当然不用汇编了。除非你想游戏一直延期。
作者: Rudy    时间: 2008-7-19 19:45

c编译器开发出来在sfc也没用,sfc 主频才3Mhz多,不用汇编性能太低下。

现在做游戏也有人大量用汇编的
naughty dog主页都还专门招高级汇编程序员
作者: henvelleng    时间: 2008-7-19 20:15

3M已经很不错了,51单片机12分频下来主频很多都没到1M,难道就不能用C了?

用汇编一般情况下不是为了执行效率考虑,而是系统根本没起来,栈还没开,无法使用高级语言。比如bootloader的上半段,以及操作系统的一小部分;或者是inline汇编这种情况,因为一些cpu的寄存器无法被C语言直接访问到。真正影响效率的瓶颈往往是程序员的常识,比如内存拷贝,很多人居然觉得效率很高

汇编的问题是代码可重用性低下,难以面向对象分层,lowlevel支持其实一样做,但是对应用层的程序员来说简直是噩梦
作者: Rudy    时间: 2008-7-19 21:07

都得分频。而且现在的51 c编译器比较好,凌阳的6502大都还在用汇编。还得考虑到以前rom贵,c浪费体积。

除了部分系统启动,寄存器使用之类不得不用汇编的情况,还是有些人为了提高性能特意用汇编的。
naughty dog的游戏看着技术上明显比其他同平台厂商强一些。
作者: firesun    时间: 2008-7-19 21:36

引用:
原帖由 henvelleng 于 2008-7-19 19:18 发表
即便主机厂商没有提供C等高级语言编译器,游戏开发商也不得不自行开发一套编译器来自给自足。如果任天堂SFC真的没有提供高级语言编译器,除了说明任天堂的技术水平低下+吝啬以外什么也说明不了
SFC是著名的开发环境恶劣,不知道么……
作者: henvelleng    时间: 2008-7-19 21:55

引用:
原帖由 Rudy 于 2008-7-19 21:07 发表
都得分频。而且现在的51 c编译器比较好,凌阳的6502大都还在用汇编。还得考虑到以前rom贵,c浪费体积。

除了部分系统启动,寄存器使用之类不得不用汇编的情况,还是有些人为了提高性能特意用汇编的。
naughty do ...
在只有几K rom的无os的单片机上用纯汇编还情有可原,毕竟要把程序精简到塞进那芝麻大的rom里确实不容易

naughty dog在ps系平台上作游戏,确实难为了,不过这也不能怪sony,linux kernel对于大型图形应用来说基本是0啊,能做到ps3这样已经很不容易了,sony为此必然烧掉很多钱,撑死不和微软合作,铮铮铁骨值得尊重:D。xbox系这方面占尽优势,不公平啊




欢迎光临 TGFC Lifestyle (http://bbs.tgfcer.com/) Powered by Discuz! 6.0.0