写在前面
“没有无缘无故的爱,也没有无缘无故的恨”。
——黑格尔
“生活就是变革,完美就是不断变化。”
——纽曼
“顾客就是上帝。”
——山姆·沃尔顿
作为总是会被杀了祭天的程序员,如果要想做好工作,就要满足各种顾客的需求。那么我们的顾客是谁呢?
-
策划
-
产品
-
美术
-
运维
-
玩家
-
合作伙伴
-
我们自己
-
……
都是我们的顾客,满足以上的需求,几乎是我们工作的全部。
在满足各种客户需求的过程中,我们所使用的手段、工具,不断的迭代、变化、泯灭。
需求是因,我们完成需求的手段是果。手段变化的过程,就是变革。
厘清需求的变化,以及技术手段的变革,能更好的看懂现在和预见未来。
所以本文给大家分享的主题思想是: 需求导致变革 。
一个简单需求催发的变革
while(1){
if(_kbhit()){
ch = _getch();
if(ch==37){
//飞机向左移动
……
}
}
}
这是一段具有简单的结构的代码,简单到只有一个死循环。
_kbhit函数是判断是否有键盘输入,_getch函数是获取键盘输入的键码。示例的代码中,判断是否为37,37是键盘左箭头的键码。
ok,程序运行时,这个while循环会占用所有的cpu资源来进行计算,导致电脑无法处理其他的任何计算,所以,我们应该适当的让cpu休息一下,所以代码做下简单的修改:
while(1){
if(_kbhit()){
ch = _getch();
if(ch==37){
//飞机向左移动
……
}
}
sleep(50)
}
我们增加了sleep(50),让每个循环,是否50毫秒的cpu计算时间出去。
这种简单的结构,判断用户键盘输入,计算飞机是否被敌人子弹击中,绘制显示画面,都在一个循环内搞定。当逻辑计算比较简单的时候,是没有什么问题的。但是当逻辑计算比较复杂的时候,就会导致绘制画面不及时,表现的就是画面卡顿的情况。
由此,催发出了新的需求,就是逻辑计算,不应该影响到画面的绘制。
然后,聪明的程序员,发明了线程,并且把逻辑线程和绘制线程进行分离。让表现起来,逻辑计算和绘制计算是同时进行的,这就是并发。
本文探讨了从简单的键盘输入检测到引入并发技术的演变过程,展示了需求如何推动技术变革,以解决游戏开发中逻辑计算与画面绘制同步的问题。
9690

被折叠的 条评论
为什么被折叠?



