编程自学之旅
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程自学之旅相关的知识,希望对你有一定的参考价值。
断续之间,自学编程也有几年,大学那时心里总装着,却没有付诸行动去啃基础知识,一直停留在我要学的层次上,浪费了大学几年的大好时光,脑子里有太多的疑问也得不到解答,网上看到的都是一些零散和基础的东西,都不成系统,后来思想观念变了之后,买了一堆书籍,虽然有些看了觉得没有多大价值,后来见得多了再买书翻翻目录翻看看章节,就知道这是不是我要的,后来自己阅读面广了之后遇到问题就知道槽点再哪儿,再来用互联网来查解决方案,很轻松顺手 说实话读书确实是最高效的投资,在社会上也漂了一段时间,也见过太多的人,不愿学的没办法,既然各位同仁走上了这条道,那就要找到方法然后多勤加实践才是渡世宝筏,这段话送给大家也送给自己,愿大家在编程的世界里找到自己的兴趣
最先开始学的就是C语言,然后就是C++,这段时间的收获也是相当丰厚,除了读懂了了程序主循环还有类的封装以及类的序列化(这在我当时看来是很神奇的一个东西,真是感谢侯俊杰老师),再然后由于工作的关系,就开始接触javaweb了,最近终于把SSH框架看完了,觉得自己走的路真特么偏,人家花同样的时间啥都做出来了,也真是,都快被自己蠢哭。。。。后面分享web程序开发的几点感受,简单介绍些程序执行的过程,尽量把底层跟顶层联系起来做一个衔接,由于我自己都不是正经的计算机科班出身,对这块特别欠缺,后来还是生拉硬拽走上了这条不归路。。。
当时对游戏还有几分兴趣,也特么看过几本游戏方面的书,在那会,感觉我们这带人总是不幸的,没有生在IT技术突飞猛进的时代,互联网的狂飙突进也没赶上,在这个时候前人已经造好轮子的基础上,想找点这些编程原理和底层的,比较系统的东西都不好整,毕竟当时就是一个门外汉,不得其门而入,当时最大的问题就是无法把编程与实际应用开发结合起来,中间完全被人为的割裂了(多了解下程序的主循环流程框架以及类的调用这两个才是关键)。。。。后来还是看了几本比较老的c++游戏开发的书籍,才推开了这扇大门(vc深入详解这本书不错,介绍了窗口类与程序主循环以及逻辑实现类,mvc),才慢慢学会了从程序实现上着眼,去按照需求分割实现类,用类的调用来解耦,避免功能模块臃肿,spring框架中的IOC更妙,用容器来管理类,耦合度进一步降低,开发和测试难度一降再降
-----------------------------------------分割线------------------------------------分割线----------------------------------------分割线---------------------------------------
终于到了重点了,讲解思路就是先说说客户端编程,然后到服务端编程,蓝后到web编程,最后到游戏编程。
游戏编程的实现:我关心的有两个,一个是场景的管理(包括游戏画面的渲染,三维游戏的显示是我最想弄明白的,目前也找到了方向,基于三角形网格,可以参考下计算机图形学),一个是与后台服务器通信模块的功能实现,当然这个通信模块理解了都好说,包括app跟后台服务器的通信也是同样的道理,实现一个网络通信的类,将必须的参数传入该类,在需要的时候调用该通信类投递信息包出去,与后台服务器连接产生会话,而在服务器端则监听端口,收到消息后将信息投递给解析类来解析判断该条信息应投递到哪儿个处理类来处理,并返回处理后的信息,至于物理碰撞检测与粒子系统以及声效系统等功能模块还好说。我这里就先不细讲,大家有空还是自己多多看看书(自己学会了看懂了也多多来分享啊)
然后就是客户端的实现,也是同样的道理,我们实现几个类,窗口类,场景管理类,通信类,主程序入口new一个窗口类来显示游戏画面,在游戏循环中,用场景管理类管理游戏中的场景对象,包括碰撞检测以及显示到窗口中,同时实习与用户的交互(可以使用触发消息),在需要的时候与服务器通过通信类来进行通信即可。
服务器端编程的实现:
以上是关于编程自学之旅的主要内容,如果未能解决你的问题,请参考以下文章