逍遥剑客
GameEngineArchitecture读书笔记(二)
关注作者
前往小程序,Get
更优
阅读体验!
立即前往
腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
逍遥剑客
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
社区首页
>
专栏
>
GameEngineArchitecture读书笔记(二)
GameEngineArchitecture读书笔记(二)
逍遥剑客
关注
发布于 2018-05-23 15:50:45
348
0
发布于 2018-05-23 15:50:45
举报
文章被收录于专栏:
逍遥剑客的游戏开发
逍遥剑客的游戏开发
DLL
很多公司会采用完全的静态链接, 这样比较省事, 也比较安全
静态链接通常比较慢(编译时间影响开发效率), 而且EXE也比较大
DLL的话如果不使用interface封装会暴露很多类定义
如果使用C++/CLI的话不能使用静态链接库
Debug
Release能重现而Debug不能重现的BUG通常是变量没初始化
DMP文件可以方便地重现崩溃时的堆栈调用
Coding
代码规范是一个项目/引擎必须制定的东西, C++标准的缺乏造成每人一种风格习惯
CodeReview其实是统一风格习惯的一种有效措施
AtomString/HashString: 这东西本身是为了提高效率而出现的, 但是用不好就会成为影响效率的东西
Endianness: 主机平台跟Win32是不一样的, 生成二进制格式需要转换
全局static变量的初始化顺序没办法控制, 不过函数里的static变量确可以在调用时初始化, 这样可以解决一部分初始化顺序问题
dbghelp可以通过地址反查代码行, 对付内存泄露比较方便
SIMD要求128bit对齐的内存, 如XNAMath
Exception:
主机平台应该避免使用
有时为了保证稳定性不得不用, 比如美术的编辑工具, 至少要让他们有保存一下的时间, 不要直接崩溃了...
模块的初始化/销毁可以使用堆栈处理, 通常这两边的顺序正好相反
数学库现在最好的选择是XNAMath, 自己去实现感觉吃力不讨好, 而且也不敢保证没BUG
容器最好自己实现, STL的限制有很多;
通用型的效率比不上针对特定问题优化过的
内存占用的要多一些(主机平台很看重这个)
动态分配的内存太多
各平台的实现不一样, 对于平台移植有些麻烦
最好不要用boost
字符串
尽量减少const char*的使用(个人习惯)
比于比较操作频繁的, 可以使用HashString
中文编码处理需要考虑
最好把所有字符串做成一个表格, 游戏里通过ID使用
本文参与
腾讯云自媒体分享计划
,分享自作者个人站点/博客。
原始发表:2011年04月20日,如有侵权请联系
cloudcommunity@tencent.com
删除
前往查看
其他
本文分享自
作者个人站点/博客
前往查看
如有侵权,请联系
cloudcommunity@tencent.com
删除。
本文参与
腾讯云自媒体分享计划
,欢迎热爱写作的你一起参与!
其他
评论
登录
后参与评论
0 条评论
热度
最新
推荐阅读
LV.
关注
文章
0
获赞
0
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
产品介绍
产品文档
精选特惠 用云无忧
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档
0
0
0
推荐