一个人怎么写大型软件

本文探讨了个人开发者如何克服局限性,通过聚焦核心子系统和避免无关任务,以实现大型软件开发。作者建议只专注于渲染、场景和动画等关键部分,避免做如工具、物理引擎、脚本系统等耗时组件,以提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写于2016年,2020年重新发布。

最近尝试了一下做MOBA(利用Unity3D),还有游戏引擎。我发现它们都是很复杂的系统,可能都要10万行代码或更多。
 

一个人的局限性


这两年,我做过许多尝试,但是常常因为软件太复杂而放弃(或者休息一段时间)。我发现了一个人的局限性。有很强的程序员,也有很垃圾的,听说他们的效率有一百倍之差。但是无论你有多强, 你一年能写出来的代码行数,也难以超过2万行。当然,一个菜鸟一年也能写出2万行。所以,你再厉害,你写代码的速度也还是和别人一样,搞出10万行的代码,没有5-10年时间,是不可能的。

 

2020年注:从这几年的编程经验来看,搞出10万行代码,一个人2年就够了。


这是人本身的局限,就是你处理细节的速度只有这么快。这里的一个细节指的是一行代码。同样的时间内你只能处理好这么多细节,这与你的能力无关。
 


那怎么办


当然你不会放弃你做这些东西的梦想。你又没钱请人,也不能说服别人你的软件有前途。最后,你想到了一个办法。以游戏引擎为例。(一定要切记,人处理细节的速度是很有限的。)
 


只做几个子系统


游戏引擎,首先要分两大块,第一,是运行时引擎(在游戏的时候运行的那部分),第二,是工具,包括场景编辑器,资源导入工具等。如果运行时引擎只要10万行代码,那么,工具的代码,可能需要20万行以上。所以,一定要告诫自己,千万不要做场景编辑器等工具,否则将会陷入无底深渊(可能要花上十几年时间来做,到时候,你的游戏引擎早过时了)。好了,你已经砍掉了三分之二的工作量了。


接下来,运行时引擎,包含了许多子系统。包括渲染引擎(直接操作DirectX的代码),场景图,物理引擎(碰撞检测和刚体物理),动画系统,脚本系统(是的,要运行一个脚本语言,比如Lua),粒子特效,日志系统,GUI。所以,一定要告诫自己,我不会去做物理引擎,我不会加入脚本语言,我不会做粒子特效,我不会做GUI系统(一个GUI系统,可能就要花掉你整整一年时间)。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值