|
|

楼主 |
发表于 2006-1-3 06:35:00
|
显示全部楼层
Re:我的游戏开发学习计划,谢谢指正
写的代码多了,对于编程最为深刻的体验就是,基本编程语法语义都必先满足数学运算和逻辑判别,这是编程成为可能的前提,是客观而且不会因为技术的进步而有什么变化的,除此之外的大多数编程方式都必间接或直接通过指令传送来控制硬件的行为,例如存储载体的控制函数,这个在软件的范畴是相当底层的行为,经由编译器产生的二进制镜像将指令发送给硬件设备,具体硬件发生的动作便已不用关心.
如此,无论编程的环境是如何定义运作机制和最终实现,作为环境定义者所预先设置的编程接口对应用的程序人员来说就并不那么客观,只要理解其定义是为满足简化一些通用任务,为求同一运行环境的程序表现一致而做下诸多限制,一旦我们掌握使用,并确信可用于开发项目就可以在使用的下一刻立即遗忘它,因为我们并没有真正遗忘它,千万不能被这些千差万别的API函数浪费了宝贵的思维空间,觉得无法完全渗透到这些函数和运作机制的核心,不能做到过目不忘就觉得没有真正领会而把大量的时间用于记忆这些毫无思考价值的东西上就会大幅度加重学习掌握的负担,如果转换一种开发平台就必须面对重新的错误学习方式.
因此,关于编程,只要学习了一种语言的语法语义,接下来值得学习的东西就所剩无几了,无论是直接控制硬件行为的底层指令还是涵盖通用任务的编程接口,其产生的目的就是给一种计算机运行客观行为和行为组合定义一个名称让我们可以进行计算和比较.所以对于游戏编程结构化程序设计才成为最直接有效的手段,因为我们时刻都在计算和比较,而不是频繁调用这些编程接口.
面向对象编程方式则强化了语法语义之外的组织方式、运作机理、通用函数调用等相对主观的编程元素,使编程人员不得不面对大量的附加信息进行记忆,也造成了建立在面向对象编程方式的软件脉络复杂,研发初期困难,代码千篇一率难有突破的结果,这种平台依赖性非常强的编程方式注定不会长久,而游戏编程这类消耗相当硬件资源、呈现形式千差万别的软件类型试图组建适用对象编程模型而不会带来太多性能损耗并保证一切任务都可能完成显然是不可能的,至少根据特殊任务而编制不同数据结构和代码足以有效地实现.
要是我知道自己在说什么有多好,希望这一句话能说得清:掌握基本语法语义,而不要陷入对象编程的牢笼为另一个微软黑恶帝国的成长添砖加瓦,就谢天谢地了,反正想用的时候还是用得到的.
因此我写代码总是为了最终呈现,而不是去强制满足某种规范,事实上这样的习惯久了,也许最终会和哪个谁谁谁不谋而合也不一定.比如自己制作的动画实现方案出来后,竟然发现几乎每个专业游戏面对相同问题都采用相似做法,客观的魅力真是无穷啊--苹果总是往地上掉,无论你如何祈祷. |
|