随笔分类 -  Game::Code

游戏开源代码学习。
摘要:翻开项目的代码,处处可见成百上千行的函数,函数体里面switch-case、if、for等交错在一起,一眼望不到头的感觉。有些变态的函数,长度可能得按公里计算了。神啊,请赐予我看下去的勇气吧!先不论逻辑如何,首先这长度直接就把人给吓到了。这些超大号函数是怎么来得呢? 阅读全文
posted @ 2015-04-02 13:19 david++ 阅读(728) 评论(1) 推荐(1)
摘要:代码就是程序员的孩子,给“孩子”取个好听的名字很重要! 我们在项目开发中,接触到的变量、函数、类多数都是项目自己定义的,往往都是为了解决一些特定的领域的问题,引入了各种各样的概念,代码里面的名字就对应着问题领域或方案领域的这些概念,所以,对于一个命名良好,代码规范,设计简洁的系统,要想非常快的理解一个系统,最直接的方式就是RTFC(Read The Fucking Code)。对于一个不断演进的系统,代码的可读性至关重要,首要要解决的问题就是名字,变量名、函数名、类名等都需要仔细斟酌,认真对待,一个能够简洁,能够清晰表达概念和意图的名字就显得尤为重要。 阅读《代码整洁之道》这本书后发现其中说的内容在我们自己项目中比比皆是,随便拿出一块代码都可以当做反面教材给大家讲半天。长时间积累,导致代码发霉变质,取名也是毫无章法,信手拈来。阅读这样的代码,撞南墙的心都有了。下面结合自己项目中的问题和《代码整洁之道》谈谈关于命名相关的原则。 阅读全文
posted @ 2015-03-27 13:47 david++ 阅读(917) 评论(0) 推荐(0)
摘要:项目随着时间的推移,开发人员换过了一波又一波,项目的代码被一些代码风格“狂野”的新同学们“强奸”了一遍又一遍。我们游戏服务器代码从09年时的50W行激增到现在的200W行,不得不赞叹:“还真是能写啊!”。代码混乱的程度,简直不忍直视:风格迥异的命名方式、得以米计算长度的函数、各种MagicNumber,让人摸不着头脑、缺少封装导致的大量重复代码、各种奇葩的缩进方式、拥挤在一堆,就不知道敲个空格或空行会浪费多少时间啊...。 阅读全文
posted @ 2015-03-27 13:45 david++ 阅读(469) 评论(0) 推荐(0)
摘要:cocos2d-iphone是一个基于Objective-C的2D游戏引擎。还有一个跨平台版的叫cocos2d-x,这个现在貌似挺火的。用cocos2d开发应用之前,必须要先了解下面几个概念:Scenes:场景Director:导向器Layers:层Sprites:精灵1.场景的概念场景(CCScene对象)在app的工作流中,是一个比较独立的元素。你也可以把他称作“屏幕”或“关卡”。你的应用可能有很多场景,但当前状态下只能有一个被激活的场景。例如,一个小游戏,它可能有下面的场景:介绍、菜单、第一关、过度场景1、关卡2、胜利过度场景、失败过度场景、最高分场景等。2.场景的实现cocos2d的C 阅读全文
posted @ 2013-02-01 17:15 david++ 阅读(475) 评论(0) 推荐(0)
摘要:代码的三中类型Product:产品代码,一个可用的产品代码。比如一些开源软件,还有当前工作整天面对的代码。lib:库代码,对某一种功能封装的模块,一个工具库。framework:框架代码,某种业务常用逻辑的封装,就形成改业务逻辑的框架库。比如,游戏客户端来说就是游戏引擎,MFC是window下的一个GUI框架,等等。三种代码的编写与设计,抽象层次依次递增,对编写者能力的要求也依次递增。代码发布的内容无论是作为产品、库、还是框架,代码发布的形式一般都有下面的内容:Source Code:源码Product/Example/Demo:产品/示例/演示Test:对源码的全面单元测试(现在项目的产品代 阅读全文
posted @ 2011-07-08 22:13 david++ 阅读(1100) 评论(0) 推荐(0)