[奇思幻想] 开发过程中的一些设想记录中(持续更新....)

一直以来我总是会有些设想或乱想...这些想法有对有错,有优有劣,凌乱的,我都在这里去记录,有时间我会去验证,去实现,去整理,欢迎大家来探讨与指正。

[cocos2d-x]


  1. 使用pngcrush:这个工具会我认为是成本最低的优化,而且可以达到不错的效果,大可对整个游戏资源中的png批处理优化一次,成本低,无需写任何代码,无副作用,pngcursh主要做了删除一些不重要的chunk,选择最优的压缩选项参数。

  2. 平台定制图片格式:ios支持pvr硬件解压缩,android支持etc,所以我们针对不同平台将png转成不同的格式,每个图片生成唯一id,代码根据平台通过唯一id去读取相应的文件和使用不同的方式解压缩,cocos2d-x同时支持pvr和etc,有硬件支持,相信在加载图片上会有很大提高,而这个成本也不是很高,需要写一点代码将图片的路径从唯一id映射到相应平台的文件路径,这个唯一id通过配表来做,配表在在将png转换的时候生成。游族的四大萌捕游戏中用一种ATF格式,atf其实就是做了我刚才说的这样的操作,

[状态机]


  1. 状态机应用:状态机模式应用很广:TCP的状态图,tellphone的状态图,游戏ai的状态图,地铁闸机的状态图,应用到很多逻辑开发,状态图无疑是描述逻辑很好的工具,

  2. 状态机进阶(smc):我在github中找到

  3. SCXML状态机:是 W3C
    组织制定的一种有限状态机的规范,目前处于开发阶段,该项目定义了状态机的语言,很有意思,这对逻辑可视化编辑很有帮助,一个应用的逻辑在一个状态图中一目了然,业务逻辑往往是繁锁的,易变的,需求方和程序员需要这样一个交流工具,而程序员要做的就是完成action的原子编写,很有意思。

[游戏AI]


  1. 状态机实现:大部分游戏都是使用状态机实现的,写法各有不同,但大部分不是很如意

  2. 行为树实现:之前看过很多篇博文,这玩意很有意思,待深入了解

  3. AI逻辑可视化编辑:复杂的游戏有复杂的ai逻辑,利用状态图和行为树两种方式,我认为是可以实现ai的可视化编程的,在unity3D有一个playMaker实现了ai可视化编程,在cryEngine引擎里有行为树编辑器对ai进行编辑,这些在端游里应该都有很成熟的实现,cocos2d-x刚起步,未来希望有这样的插件支持,

[图片压缩]


  1. Lzma压缩图片:之前看过coc图片压缩使用的lzma方式,png压缩位图使用的是lz77,查阅相关文档得知:lzma比lz77平均高出5%的压缩率,最高的时候可以高出30%,试想可不可以有针对性的使用这种方式压缩图片。据说flash11已经使用lzma方式压缩图片了,并不是针对所有的图片都会有较好的效果,有些反而不如png的lz77

[图形学]


  1. 图片描边:opengl我不会!在玩端游的时候,都有很好的边缘描边高亮效果,做游戏中我经常碰到这种需求,目前做法出两张图,显然这比较耗,
    等我慢慢啃完opengl在去实现,什么边缘检测、法线放大、卡通渲染、高斯模糊这些新名词要一个一个去啃

时间: 2024-12-22 17:50:03

[奇思幻想] 开发过程中的一些设想记录中(持续更新....)的相关文章

学习中遇到的c++问题,持续更新

向上取整 使用ceil函数.ceil(x)返回的是大于x的最小整数.如: ceil(2.5) = 3 ceil(-2.5) = -2 学习中遇到的c++问题,持续更新

php中自己总结的函数(持续更新)

每一种编程语言在用的过程中都会发现有时候要一种特定需求的功能函数,结果没有内置这样的函数,这个时候就需要自己根据已有函数编写尽可能简单的函数,下面是我在做php相关工作时积累下的函数,会持续更新,您要是有好的也可以推荐给我,我在这里统一展示给大家. 第一,生成随机字符串 代码如下面所示,要注意以下,查看手册可以看到,php在版本4.2.0以前生成随机数时,需要先给随机数发生器播种,PHP_VERSION>4.2.0的版本,系统自动完成播种工作,所以这里要做下判断. <?php function

Atom使用记录(持续更新中)

部分内容取自:http://www.jianshu.com/p/dd97cbb3c22d,我自己也在使用,持续更新中 Atom安装插件在窗口中File---Setting---install 在里面进行搜索就行. minimap: 为Atom加上一个代码预览地图,就想sublime中右侧的缩略图一样,效果如图. Emmet(和sublime一样的) simplified-chinese-menu:Atom的简体中文语言包,完整汉化,兼容所有已发布的版本Atom. autoclose-html:h

SDUT中大数实现的题目,持续更新(JAVA实现)

SDUT2525:A-B (模板题) import java.util.Scanner; import java.math.*; public class Main { public static void main(String[] args) { Scanner ci = new Scanner(System.in); BigInteger a; BigInteger b; while(ci.hasNext()) { a=ci.nextBigInteger(); b=ci.nextBigIn

2D游戏中常见的碰撞检测处理【持续更新】

~写在前面~ 嗯...打算开始每天写点啥了,不知道能坚持多久. 打算每天写一点或是技术或是应用或是设计或是什么的乱七八糟的有用的“干货”,所以起名叫“大杂烩”.以一周为单位来进行更新,周一~周三写一些图形方面的内容,四~六是和图形没有什么太大关联的内容(大家意会就好),周日作为一个更新重点试着写一些和paper有关的东西.打算做到“paper a week”不过感觉似乎有点不太现实总之先试试吧w 这篇里面用到的大部分图片应该都是用 http://editor.method.ac/ 这个东西做的,

HTML 与 CSS 中值得注意的要点(持续更新)

HTML <button> 元素 元素名称 属性 属性可选值 属性默认值 button type button ? reset ? submit ? <button> 元素 的 type 属性取值可以是 button.reset.submit:在IE8及更新版本和其他现代浏览器中该属性默认值为 submit. 可以观察如下代码及其最终效果: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q

项目中常用的linux命令(持续更新)

1. du -sm * | sort -n 把当前目录下的文件(或目录)按大小排序,看下哪个地方占用最多: 2. pwd                     获取当前目录路径 3. tail -f $file_path    显示文件最后几行内容 4. pgrep $process_name 获取进程ID 5. ps -ef|grep $process_name 获取进程信息 ps -aux|grep $process_name 获取进程信息 6. kill $process_id 杀死进程

UVA+POJ中大数实现的题目,持续更新(JAVA实现)

UVA10494:If We Were a Child Again 大数除法加取余 import java.util.Arrays; import java.util.Scanner; import java.math.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); BigInteger a,b; String s; while(cin.ha

HDU中大数实现的题目,持续更新(JAVA实现)

HDU1002:大数加法,PE了N次 import java.util.Scanner; import java.math.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); int T; T=cin.nextInt(); for(int z=1;z<=T;z++) { if(z!=1) System.out.println(); BigInte