二十年前是怎样开发游戏的?

【C语言】游戏项目:《疯狂赛车》,每个人都要加油活下去 序 交换一个苹果,得到一个苹果;交换一种思想,得到一种思想。选择与你才干,性格不同的人,他可以弥补你的缺陷。 嗨!这里是狐狸~~ 最近有点网抑云了,脑子很乱,不晓得想些什么,到了年底感觉什么都没做显得格外的浮躁,每晚睡觉时都有万根针在扎似的,时间又是一年去,时间的年轮又转了一圈,不知道大家有没有和我相似的感受呢,扯远了,回归正题,今天来和大家分享的项目是《疯狂赛车》 当然啦,我们今天做的是个简易版的,也不是3d的,主要是希望大家可以更容易的理解里面的逻辑关系,好了,先给大家展示一下我们的游戏界面吧 阅读详情
知乎上有人问:“贴吧都是十五六岁就用引擎写游戏的天才,大家怎么看?”,感觉现在做游戏真实一件幸福的事情呀,不尽想起当年开发游戏的各种艰辛。

现在做游戏很简单,大把代码给你参考,大把框架给你使用,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,但是你需要给你的游戏实现脚本来描述一些简单的剧情,没见过其他游戏是怎么做的,没有任何参考代码的情况下,意识到开发游戏需要靠脚本来提高效率,然后自己实现一套脚本系统。
凭空实现游戏,从来没见过任何一款游戏代码的情况下,自己想想状态机应该怎么写,游戏对象应该怎么同时移动,图像前后遮挡该怎么做,游戏各种逻辑该如何写。
学习美术设计,虽然没有美术功底,但得熟练应用当时常用的animator,3ds,等软件,自己制作一些简单的界面和角色,自己能对其他图片进行二次加工,画像素图,合并调色板。

————————— 
记住,当初你没网络,没有现在那么多开源软件,书店里书基本都是C语言调用BGI绘图的,偶尔一两本讲显卡原理的,偶尔一两本讲声卡原理的,你就算捡到宝了,《电脑报》《编程技巧与维护》上面,谁发一篇文章教你FLC格式的视频动画格式原理,你可以欣喜弱狂了。

记住,当初你没网友,没有朋友可以交流,很多东西都考仔细观察,猜测和反复试验来完成,我记得95年我看到仙剑奇侠时很惊讶它的效果,根本不知道斜45度图像该如何现实,如何处理遮挡关系,身边没有问不了任何人,然后左思右想,发现远来可以靠 (x+y)进行对象排序,自己一实验,果然成了。我记得92年小学时,写第一个游戏,以前编程都是从头到尾一件事情一件事情的干,想不通十多量飞机怎么能同时飞,当时又没多任务,我也还没实现模拟任务系统,绞尽脑汁,有一天在书上看到介绍UNIX分时系统的逻辑是每个任务运行一小段然后切换,顺着这个思路想下去,终于想通所谓状态机模型,每帧处理每架飞机时根据当前的状态移动一小步,然后更新状态,再处理下一辆飞机。然后兴奋的跑到电脑面前,编码一整天,终于实现。然后拉着同学来自己家玩,看到她们玩的那么兴奋的样子,突然感觉创造游戏,是一件多么令人愉快的事情呀。

当年做款游戏都快要写出半个操作系统来了,整个城市就你一个人在研究这些,老师只会教NOI,书本上只会教你用BGI绘图,没有任何一本游戏开发相关书籍出版,关键是你还在读中学,什么组成原理编译原理,计算机图形学你都没学过,全靠书店几本破书,杂志上的零零碎碎和自我领悟。比起今天的小孩,windows都帮她们做了那么多的事情了,自己买本书,照着书上实现下三角形绘制,模型导入,场景管理,碰撞检查,不懂可以问知乎,不行可以随便上 gamedev.net,游戏写不来可以看人家的代码照着抄,脚本可以用lua,python。简直是生在天堂里呀,有什么值得称道的地方呢?

行业总是要发展的,我也从《编程技巧与维护》《VGA显示原理》。。。和各种杂志上获取了不少知识,当年写这些文章的人,和身边搞计算机的,都比我大很多,我幼小的心灵里总有一份冲动,冥冥之中觉得将来自己肯定能超过他们,这不是因为我看不起她们,异或我狂妄自大,而是只有这样,站在她们肩上,才能对得起大家共同爱好的这个行业,大家共同追求的事业。

而今天,我会尽量利用业余时间,于各处培训游戏开发,帮助大家该如何实现各种东西,目的也只有一个,让今天的小孩将来有一天能够超过我,不是因为她们狂妄自大,异或我妄自菲薄,而是因为只有这样,让她们站在我的肩上,才能对得起大家共同爱好的这个行业,大家共同追求的这个事业。
二十年前是怎样开发游戏的?无网、无开源,从头写到尾!   某乎上有人问:“贴吧都是十五六岁就用引擎写游戏的天才,大家怎么看?”,感觉现在做游戏真实一件幸福的事情呀,不尽想起当年开发游戏的各种艰辛。   现在做游戏很简单,大把代码给你参考,大把框架给你使用,Windows帮你作完了大部分事情。我们那个年纪写游戏时,家里还没有Internet,什么资料都查不到,什么开源引擎都没有,95年左右你要写一个游戏,你起码面临: ●同显卡打交道,显卡著名的 ModeX显示模式,估计现在没几个人听过了吧,直接写显卡端口,N多trick才能初始化成功。 ... 阅读详情

相关推荐

一个C语言写的赛车游戏

一个C语言写的赛车游戏代码,与广大C语言爱好者分享。

c语言赛车游戏代码大全,初学者天地游戏制作--赛车游戏的完整图

该楼层疑似违规已被系统折叠隐藏此楼查看此楼以下是一个用线和矩形绘制的简单赛车#include#includevoidmain(void){intgdriver=DETECT,gmode;initgraph(&gdriver,&gmode,"");setbkcolor(7);setwritemode(XOR_PUT);setcolor(BLUE);setlinestyle...

weixin_42354933的博客 2680

基于Fpga的VGA显示赛车游戏

基于FPAG的小游戏开发,内含自编了VGA协议

C语言零基础项目:2D 赛车游戏,详细思路+源码分享

此游戏是《2D 赛车》的”魔改版“——2.5D 双人赛车!原作实现了 2D 视角的赛车游戏,但是我觉得不够真实、操纵感不强,故挤出数个周末完成了这个”魔改版“,实现了第一人称的视角。

C语言实战大全 3913

C语言 赛车游戏

适合大一学生学习 由C语言编写 使用第一人称视角 具有相当流畅的视觉效果

Verilog VGA小游戏

基于Basys2开发板和Verilog语言的挡板接小球游戏,接上VGA显示屏即可玩。是我的数字集成电路课程设计。压缩包里有README.txt,有更详细的说明。

游戏是怎么作出来的(一)

游戏是怎么作出来的(一)日期:2009.9.2 by tengjiaozhao@gmail.com现在的游戏变得越来越复杂,越来越庞大。但是复杂庞大的游戏是如何作出来的呢?我想信,您一定也有在这样的疑问。我们这篇文章就是专门讲讲一款游戏是如何作出来的。由于游戏种类的不同,所以游戏的制作工艺在某些细节方面也不尽相同。我们这篇文章中是以时下最流行的3DMMORPG为原型。嘿嘿,是不

FELURKINDA的专栏 1685

GBPS Extreme Racing:完全基于C语言编写的基于OpenGl的赛车游戏-开源

这是我们在CS Engineering的第一个学期项目。我们使用OpenGL渲染FreeGlut作为窗口管理器。它完全是用C编写的。我们使用CodeBlocks / Mingw32进行开发------------------- - - - - - - - - - - - - - - - - - - - - - - - - 阅读来源中包含的自述文件,以获取有关版权和使用说明的更多说明------------------------------------ ---------------------------------可用作开始进行OpenGL开发/游戏开发的人员的教育工具。 控件:[Esc,p(暂停),箭头键,输入]鼠标拖动可以旋转环境滚动以进行放大和缩小。-GBPS Team

c语言赛车游戏laser,计算机C语言课程设计——赛车游戏.doc

计算机C语言课程设计——赛车游戏计算机技术基础课程设计C语言设计报告题目:赛车游戏学院:工商管理学院专业:信息管理与信息系统班级:050333姓名:秦&&指导教师:张@@设计日期:2006年12月 18 日题目:赛车游戏一、选题背景:void mainbegin()游戏开始road()绘制道路有三条car()绘制赛车中的小车light()调节亮点bus()绘制障碍物汽车end()当...

weixin_42306083的博客 421

从‘包饺子’到‘包络线’:一个生活化比喻讲透长期与短期成本决策

本文通过饺子馆经营的生活化比喻,深入浅出地解析了长期与短期成本决策的核心逻辑。从调整人力(可变成本)到扩建厨房(固定成本),揭示了包络线理论在商业决策中的实际应用,帮助企业主在规模经济与成本控制间找到平衡点。

weixin_32006655的博客 341

RealSense D455的标定并运行VINS-FUSION

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_40186909的博客 2万+

二十年前是怎样开发游戏的

知乎上有人问:“贴吧都是十五六岁就用引擎写游戏的天才,大家怎么看?”,感觉现在做游戏真实一件幸福的事情呀,不尽想起当年开发游戏的各种艰辛。 现在做游戏很简单,大把代码给你参考,大把框架给你使用,Windows帮你作完了大部分事情。我们那个年纪写游戏时,家里还没有Internet,什么资料都查不到,什么开源引擎都没有,95年左右你要写一个游戏,你起码面临:...

weixin_34138521的博客 180

以高通camera 申请ion内存看dma-buf

1 fd 与ion buffer, file绑定 简单总结就是申请一个buffer,再创建一个dmabuf 结构体然后将,然后将dmabuf中得指针指向buffer,dmabuf 再传递给一个匿名的inode,获取到一个file,这样file和dmabuf绑定起来,也就和buffer关联上。然后再从进程中分配一个空闲的fd,将fd 和file囊绑定。这样就能通过fd 快速查找到buffer。file 是个全系统的,他和进程无关,但是fd 是每个进程都是自己独立的,所以再跨进程传输时只需要保证fd ...

兔兔里个花兔的博客 6444

游戏里的角色都什么格式图片_二十年前是怎样开发游戏的?

知乎上有人问:“贴吧都是十五六岁就用引擎写游戏的天才,大家怎么看?”,感觉现在做游戏真实一件幸福的事情呀,不尽想起当年开发游戏的各种艰辛。现在做游戏很简单,大把代码给你参考,大把框架给你使用,Windows帮你作完了大部分事情。我们那个年纪写游戏时,家里还没有Internet,什么资料都查不到,什么开源引擎都没有,95年左右你要写一个游戏,你起码面临:同显卡打交道,显卡著名的 ModeX显示模式,...

weixin_39977276的博客 111

保姆级教程:用CANoe的LIN Slave Conformance Tester搞定一致性测试(附LDF配置避坑点)

本文详细介绍了如何使用CANoe的LIN Slave Conformance Tester进行汽车电子LIN从节点一致性测试,包括测试环境搭建、LDF文件配置、多通道测试技巧及常见问题解决方案。通过实战案例和高级配置技巧,帮助工程师高效完成测试任务,确保LIN总线通信的可靠性。

weixin_30385925的博客 525

从零配置华为S5720交换机VLAN:Web界面与命令行双模式详解(附拓扑图)

本文详细解析华为S5720交换机VLAN配置的全过程,涵盖Web界面与命令行(CLI)双模式操作指南。从基础环境准备到多交换机环境配置同步,特别针对S5720-52X系列交换机的VLANif接口、端口分配策略及交换机堆叠技术进行深入讲解,并附实用拓扑图与配置示例,助力企业网络管理员高效完成VLAN部署。

happy2的博客 1370

阅读干货—HTTP记录与内容摘要

阅读记录: 1.每个程序员都应该知道有关实时数据的统一抽象 个人廉价超级计算机的制作方法 2.有了 Linux,你就可以搭建自己的超级计算机3.还要骗多久?科幻大片中那些牛X代码真相 当你遇到一个人和你说“你看这个门户网站是那么的简单,我也可以做出来”或者“就一个网站还需要好几千人或者上万人研究”相关的情景的时候,建议让他读读这方面的文章 4.为什么看起来不是很复杂的网站,淘宝、腾讯却需

绝黛雨儿 457

FLACS-CFD 气云爆炸模拟全流程工况构建指南:从泄漏到爆炸

摘要: 本文详细介绍了使用FLACS-CFD模拟气云爆炸的全流程构建方法,重点解决泄漏模拟到爆炸模拟的气云文件传递问题。核心步骤包括: 项目规划:明确泄漏源(甲烷管道腐蚀泄漏)和爆炸场景,建立标准目录结构; 网格设计:泄漏与爆炸模拟需采用兼容的网格,爆炸域应为泄漏域的子区域且网格划分一致; 泄漏模拟配置:通过.inp文件定义几何、网格、风场、燃料及泄漏源参数,确保输出爆炸所需的气云文件(*.uni/*.fla); 关键设置:统一燃料名称、时间点匹配、路径正确性,避免版本兼容性问题。

huanghm88的专栏 764

Windows 老游戏修复指南:用 DxWrapper 让二十年前的经典游戏重新跑起来

翻出抽屉角落那张二十年前的游戏光盘,满怀期待地装进 Windows 11,双击图标——屏幕一黑,两秒后弹回桌面,连个报错框都没给。这个场景对老玩家来说再熟悉不过。DxWrapper 正是为这种 Windows 老游戏修复需求而生的开源工具,它通过包装 DirectX 的 DLL,把"过时"的 API 调用翻译成现代系统听得懂的语言,让经典游戏兼容问题迎刃而解。 ## 那个周末,我对着黑屏发呆

gitblog_01134的博客 1170

大数据工程中的数据血缘分析工具比较

数据血缘(Data Lineage)是大数据治理中的核心组成部分,它描述了数据从源头到目标的完整流动路径。系统介绍数据血缘的核心概念和技术原理比较主流开源和商业数据血缘工具的功能特点提供数据血缘分析的实践指南和选型建议本文首先介绍数据血缘的基本概念,然后深入分析其技术原理和实现方法,接着比较主流工具的特点,最后通过实际案例展示应用场景。数据血缘(Data Lineage): 描述数据从源头到目标的完整流动路径,包括所有转换和处理步骤元数据(Metadata)

大数据洞察的博客 900

边缘计算与产业生态系统

目录 文章目录目录边缘计算产业参与者边缘计算产业生态系统 边缘计算产业参与者 边缘计算领域参与者众多,主流公司以打造生态优势为目标,基于自身服务层级向产业链上下两端进行拓展,目前市场主要参与者有: 系统集成商:在产业头部,具有广泛的能力,可以集成不同生态系统公司的产品,具有一定的全球性属性,在边缘计算领域大多由云服务商、电信运营商担任。 云服务商:具有领先的云技术优势与应用生态体系,同时拥有全球性资源布局与市场资源生态,并渴望成为边缘计算主导者。 电信运营商:具有边缘基础设施优势,以及不可替代的

烟云的计算 2103

disk还是ram-hot?Qwen3.8-Flash-Next-ngram-table-NInfer-v3三种存储模式深度对比与选择指南

Qwen3.8-Flash-Next-ngram-table-NInfer-v3 是 Qwen3.8-Flash-Next 模型在 NInfer 推理框架下的 n-gram 词嵌入表(NInfer v3 格式),它自带 **disk、ram、ram-hot 三种存储模式**,直接决定你的内存占用和推理速度。本文带你一次看懂三种模式的区别、命中率实测数据,并给出一份简单的选择清单,帮你用最少的内存跑

gitblog_00916的博客 68

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

老游戏的新生:探究二十年前的经典游戏为何再次风靡

但是,在这个繁华快速的行业中,却时常有一些老游戏顽强地生存下来,并且在很多人心中再次引起了巨大的追捧和热情。SpaceTraders API让我想起早些年流行的Robocode,玩家需要编写自己的机器人坦克,定义其行为和战斗策略,在虚拟战场上与其他玩家编写的机器人对战。最大的用处就是学习编程。在学习编程的过程中,我们常常会面临这样的问题:学了很多语法,写了不少代码片段,但随着学习的深入,变得越来越乏味。在游戏开始时,玩家会得到一艘飞船,并驾驶它在不同的星球之间穿梭,挖掘星球矿产,通过低买高卖来赚取利润。

Tina666_的博客 205

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

二十年前的老游戏,为何再次让无数程序员痴迷不已?

SpaceTraders是个古老的策略类游戏,运行在古老的Palm OS和Windows Mobile PDA上。游戏开始时,玩家将获得一艘飞船,然后驾驶它在各个星球之间穿梭,挖掘星球矿产,低买高卖赚取利润,赚了钱可以升级飞船,购买更大货仓,更先进的武器,因为星际航行中可以会碰到海盗,玩家需要决定是逃跑,交涉还是战斗......听起来并不是非常吸引人,对吧?但是,有个叫spacetraders....

码农翻身 725

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

二十年前的老游戏打不开了?一个 ddraw.dll 文件让经典游戏兼容性修复落地成真

周末晚上,你把压箱底的老游戏重新装回电脑,双击图标,屏幕一闪,退回桌面——连个报错对话框都没有。这类经典游戏兼容性修复问题,正是开源项目 DDrawCompat 的用武之地:一个 DLL 包装层,让 DirectDraw 和 Direct3D 1-7 的老游戏在 Windows Vista 到 11 上重新流畅运行,不需要改动任何游戏文件。 ## 游戏没坏,是 Windows 把老接口"退休"了

gitblog_00412的博客 198
上一篇: 如何解决FPS/RTS/赛车类游戏的同步问题
下一篇: 博客永久迁移
skywind
博客等级 码龄26年 479粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值