GameDesign 板


LINE

  这篇是我很早以前写的~为了补充自我介绍把它 补足过来,也希望跟更多人认识和指教! ----------------------- [心得]我的程式设计学习路程   最近写程式,开始有了一种害怕的感觉,越来越 觉得程式设计是多麽广大精深,好像永远学不完的样 子!越来越觉得自己能力不足.....   记得什麽时候开始接触程式语言呢?严格说来是 在高中二年级时後吧!记得当时是要参加高中数学科 展,我们需要一个程式来跑三角形内部连结等比例线 段的模拟。当然,要请懂写程式的人来帮忙是不可能 的,只能自己写Code,加上当时自己对程式设计有兴 趣(没错,就是因为梦想写个游戏程式关系),就答 应担下这个责任。   从此开始了我跟程式设计的邂逅。   一开始那个程式,现在看来相当简单,只要有回 圈、决策和图形撰写概念就可以写出了,不过光是写 该程式,就花了我一个月时间摸索,一个月时间撰写 。等最後程式撰写出来,科展也快开始了,於是就在 当年的中区科展我第一次展示自己的程式给那些评审 看。   记得当年评审曾给了一个评语:「你们的三角形 等比例线段研究十分透彻,但更让我印象深刻的就是 那个程式模拟。」   就这样,我投入程式的怀抱。之後我撰写程式, 大多是出於兴趣而写,比方说简单的球类弹跳模拟、 选单控制,甚至还完成一个小具规模的游戏。   那个小具规模的游戏,大约类似普文字通剧情游 戏哪样,也就是左边一个框架里面放着图片,右边一 个框架有着选单让你选你现在要做什麽动作,下面一 个框架用文字卷动方式叙述现在剧情。   没错,这个小游戏只需要简单绘图功能、locate 定位和printf列印、和结构化程式概念就可以写出了 。不过这个程式也被我自认是高中写程式的一个成果 。   到了大学,首先出现的冲击就是, Windows的流 行开始!没错,当时各种电脑,全部开始迈向 Win95 、 Win98的时代,我记得我当时就为了升级到 Win95 ,重灌电脑不晓得N百遍,最後甚至连26495─ OEM─0004782─75062都背了下来~   那对程式设计有什麽影响呢?DOS下程式设计 和视窗程式设计有什麽不一样呢?我只能说那真的要 经历过才知道了~硬要说的话,我只能说考量的东西 完全都不一样了!   想想以前在DOS时代,主记忆体永远只有 640 KB、这对稍微复杂一些的游戏来说当然是不够,於是 我们必须去撰写一些记忆体管理、甚至必须透过 DOS 提供的中断常式向硬体下一些低阶命令。   现在到 Windwos,这些任务作业系统都会帮你做 好,取而代之的就是那些极端繁琐而复杂的Win32 API 、我记得大一开始学这个,光开一个视窗,就必须写 个数十行指令去登记、去呼叫。   当然之前学到的知识,对现在大有帮助,事实上 当时光是会回圈和决策,就能唬遍班上所有同学,指 标、结构更是不用说,光要花时间去解释这些你都会 看到同学们以程式强人的眼光看着你。   但繁琐的 WinAPI 仍是一个高门槛,於是我在大 二时间的程式功力几乎就停摆了,即便要写个程式, 都要先开到 DOS底下开Borlac C++、写着一些小程式 ,如当时同学想知道某一个大数是否是质数,就来请 我写个质数判断程式等。   一直到大三情况才有所改变,原因是开始接触所 谓的 RAD工具,当时一开始接触的是 Borlad C++ Build 这个我到现在工作还在用的东西。   於是,在接近一年的中断後,我再度踏入视窗程 式的领域,之所以如此原因就在,他把 Win API包装 的实在太好了。   比方我要写上述质数判断程式大约只要十几分钟 ,先拉个Edit输入数值、再拉个按钮,按钮上点个两 下,写个大约三四行程式;当然,或许你要它执行效 率快一点,这样你就要开始思考一些较复杂的演算法 。   但无论如何,在这编程过程中你完全不需要透过 API去呼叫一个视窗、不需要知道按钮类别 TButton 是从哪个类别继承过来或是何时释放等。   可以说大大降低视窗程式设计的门槛!於是,我 再度投入程式设计的怀抱。   随着大三上下也逐渐学到了资料结构、演算法这 些程式功力课程,也让我越来越有种学不完的感觉。   在这里必须说的是,很多人对这两个理论性的东 西一直没有实务性的认识,甚至常有用不上的感慨, 事实上只是遇到的问题不够多罢了!比方说Tree结构 ,我想我如果没写过初步的决策式人工智慧,我可能 永远用不上这个架构。至於像演算法中的动态规划, 更是提供解决一些程式问题的新的思路,一些本来要 指数运算时间的居然能在线性运算时间算出,对程式 效能有很大的突破空间。   但必须承认的是,除非遇到特殊专案,否则许多 资料结构和演算法都用不太上来,但这两个工具仍必 须当做基本工具来使用!当你去做一些ACM的问题 ,你会发现这两样基本工具有多麽广大精深!也唯有 这两样工具,会有让你学也学不完的感觉!   基本上这两项东西,可以说构成程式设计的全部 ,其内涵的深度与广度,可能超越我在本篇文章所提 到到所有工具包括DX、OpenGL等等....   去思考一个问题、想要用什麽资料结构来储存资 料,用什麽演算法来快速、精确地解答问题,不但是 一个程式设计师该有的素养。也是目前我亟欲学习的 。   随着时间流逝,大四主要撰写程式在於影像处理 方面,要学的是 BMP架构和Graphic类别的继承。   研究所阶段研究DSP、需要大量资料运算,更 需要重新研习相关的数学运算程式(如FFT)、并 需要深入了解 GDI绘图函式。   在研究所阶段也开始体悟到什麽是所谓 DirectX ,没错,又是为了游戏XD。我从来没放弃过写游戏程 式的梦想。不过我接触 DirectX的方式不太一样,我 当初仅是要使用它来更快速绘图而已。   说到这不得不回头说一下游戏设计,仿间有太多 DirectX游戏设计的书籍,许多初学者可能连C都不 太会写就能对这个名词琅琅上口。   这也当然啦~现今许多游戏要灌的时候就要你去 安装新的 DirectX版本,这等於间接告诉那些想设计 游戏的玩家他们有用到 DirectX的函式库,这造成大 批学子,以为 DirectX=游戏设计;注意这个等号, 於是啦~哪些连C都不太懂得学子,一上来就嚷着说 要学 DirectX,认为那就是游戏设计的全部,他们可 能买了许多相关的书籍,也跑了相当多的程式范例; 可是当他们要去修改时候,马上被沉长的 Win API击 退,最後弄得灰头土脸。其实 DirectX只是提供了许 多游戏设计时候需要的函式库,更直接地对硬体下命 令来完成更有效率的绘图、音效。   但是!要能应用到这些仍需要有深厚的 WinAPI 基础!否则光是会用这些函式,却前後连结不起来、 或是不知道什麽时候用它有什麽用呢?   又扯远了。总之,为了能快速绘图,我开始学习 DirectX提供的绘图函式,可是总难入其门,而能将 之用得像 GDI函式一样、甚至大多时候我会使用 BCB 提供的绘图方法,这也不得不称赞 BCB实在把那些复 杂的东西包装得太好,这使人可以更简单去做许多事 情。   但另一方面他也使用惯他的人更不容易踏入 Win API 的门槛,甚至也让许多人自认为「很懂视窗程式 设计」了!实际上我用这些包装後的东西也开始有越 用越惶恐的感觉....  一直到现在,我工作了,工作内容有一大部分需 要用到程式设计,这也使得我为了饭碗不得不继续增 强自己程式功力。   可是,越学习就越发现,程式设计怎麽这麽广大 精深啊!   最近由於开始写三国游戏,需要做需多资料库管 於是开始接触到BDE、ADO元件,还需要学会资料库处 理 SQL语法。为了要控制Word、Excel文件,需要学 习 COM的用法。   在公司要撰写丢送封包的程式,需要学习Socket 函式、Select多工技巧,有的必需使用 BCB6.0 内建 的Indy元件。什麽ICMP协定、 ARP协定,以前都只有 听过,现在不但要用相关的 Win API函式和了解相关 的档案架构。有时候用到 Windows多工,还需要启动 多执行绪(Muti-Thread)。   还有各式各样的管理系统要写,有的涉及到低阶 系统设计,回过头来要去查中断函式并需要了解简单 计算机硬体架构、作业系统一下Linux一下Windows。 更由於客户要求程式能兼容於新作业系统Vista而需要 去看相关技术文件。   可以说,越深入学习,越觉得程式设计真是广大 精深!尤其感觉到,以前会写个九九乘法表被当作程 式设计基础,能涉及到资料结构和演算法已经算很深 入;如果再扯到类别和多型,那程式几乎已是看不太 懂。现在你忽然发现会上面那些工具还只是基础!  接着你就会发现,一本像字典一样厚的工具书, 被你翻了又翻、翻了又翻,Win API 函式库永远是查 不完、用不完,MSDN程式范例是看了又看、看不懂还 要看;闲暇时後偶尔逛逛delphi.ktop之类网站看别人 写的程式是练基本功方式、有时候还得为了小问题大 伤脑筋。   越深入学习,越觉得自己功力不足。   有时在仿间书局闲逛,常看到「三十天学会程式 设计」、「九十天学会游戏设计」之类标语的书。我 有时会想笑,但有时又不得不想想,这样的书、这样 的标语口号,是否就是要给那些所谓的「初学者」一 个「梦想」,让他们认为学习途径是可以很短的而不 至於一开始就退缩、一开始就被吓跑。   或许就是这样的「梦想」,使得那些入门的人获 得一个前进的动力。不致於一开始就被沉长的程式码 、复杂的技巧击退。   当这些初学者逐渐摸索进来後,他们自然就会发 现这个领域的博大精深了;於是,立志坚定的人自然 就会继续学习下去,永无止尽....   於是我在那些所谓初学者身上,彷佛能看见,高 中时代的自己....   那种努力编织着梦想、完全初生之犊不畏虎的热 血、完全不知程式设计有多广大精深的傻劲!就这样 不断往前冲刺.... --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.234.150
1F:推 ezs7:推..为梦想而努力!!! 05/23 15:12
2F:推 mlwmlw:推>//<我也想入门 05/23 21:02







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP