知乎上有人问:“贴吧都是十五六岁就用引擎写游戏的天才,大家怎么看?”,感觉现在做游戏真实一件幸福的事情呀,不尽想起当年开发游戏的各种艰辛。
现在做游戏很简单,大把代码给你参考,大把框架给你使用,Windows帮你作完了大部分事情。我们那个年纪写游戏时,家里还没有Internet,什么资料都查不到,什么开源引擎都没有,95年左右你要写一个游戏,你起码面临:
同显卡打交道,显卡著名的 ModeX显示模式,估计现在没几个人听过了吧,直接写显卡端口,N多trick才能初始化成功。
直接访问显存,记得当年有个优化是,((char*)0xa0000L)[x + (y << 8) + (y << 6)]=c,把y两次左移相加代替y * 320。
用调色板绘图,256色的调色板,建立若干索引表,来快速索引两个颜色混色的结果。
保护模式编程,自己初始化GDT和LDT,后来找到 dos4gw,牛逼的 watcom c++。
自己实现线程,编程8254时钟控制器,给CPU的IRQ0发中断,来调度不同最多32个任务,到时间靠一条IRET指令实现切换。
自己控制声卡,通过220端口控制声卡(估计也没几个人用过吧),再用DMA传送音频,实现声音播放。
自己实现混音,同时播放多个音源时,需要重采样成声卡格式,并且每次DMA中断时混音后给声卡。
自己播放音乐,利用声卡338端口的 FM Synth合成器来播放MIDI音乐里面不同音轨的乐器音符,并用之前实现的线程系统,在后台线程运行。
大量汇编代码,图形拷贝,图块缩放,RLE,显卡控制,多边形填充,键盘中断接管。
自己绘制字体,HZK16,估计听过的人也没几个了。
自己读取图片,GIF,PCX, BMP。
自己播放视频,自己实现解码播放 animator, 3ds输出的 FLC视频格式的视频。
自己实现脚本,没有LUA,没有PYTHON,但是你需要给你的游戏实现脚本来描述一些简单的剧情,没见过其他游戏是怎么做的,没有任何参考代码的情况下,意识到开发游戏需要靠脚本来提高效率,然后自己实现一套脚本系统。
凭空实现游戏,从来没见过任何一款游戏代码的情况下,自己
现在做游戏很简单,大把代码给你参考,大把框架给你使用,Windows帮你作完了大部分事情。我们那个年纪写游戏时,家里还没有Internet,什么资料都查不到,什么开源引擎都没有,95年左右你要写一个游戏,你起码面临:
同显卡打交道,显卡著名的 ModeX显示模式,估计现在没几个人听过了吧,直接写显卡端口,N多trick才能初始化成功。
直接访问显存,记得当年有个优化是,((char*)0xa0000L)[x + (y << 8) + (y << 6)]=c,把y两次左移相加代替y * 320。
用调色板绘图,256色的调色板,建立若干索引表,来快速索引两个颜色混色的结果。
保护模式编程,自己初始化GDT和LDT,后来找到 dos4gw,牛逼的 watcom c++。
自己实现线程,编程8254时钟控制器,给CPU的IRQ0发中断,来调度不同最多32个任务,到时间靠一条IRET指令实现切换。
自己控制声卡,通过220端口控制声卡(估计也没几个人用过吧),再用DMA传送音频,实现声音播放。
自己实现混音,同时播放多个音源时,需要重采样成声卡格式,并且每次DMA中断时混音后给声卡。
自己播放音乐,利用声卡338端口的 FM Synth合成器来播放MIDI音乐里面不同音轨的乐器音符,并用之前实现的线程系统,在后台线程运行。
大量汇编代码,图形拷贝,图块缩放,RLE,显卡控制,多边形填充,键盘中断接管。
自己绘制字体,HZK16,估计听过的人也没几个了。
自己读取图片,GIF,PCX, BMP。
自己播放视频,自己实现解码播放 animator, 3ds输出的 FLC视频格式的视频。
自己实现脚本,没有LUA,没有PYTHON,但是你需要给你的游戏实现脚本来描述一些简单的剧情,没见过其他游戏是怎么做的,没有任何参考代码的情况下,意识到开发游戏需要靠脚本来提高效率,然后自己实现一套脚本系统。
凭空实现游戏,从来没见过任何一款游戏代码的情况下,自己