- 博客(26)
- 收藏
- 关注
转载 [C] 跨平台使用Intrinsic函数范例1——使用SSE、AVX指令集 处理 单精度浮点数组求和(支持vc、gcc,兼容Windows、Linux、Mac)
本文面对对SSE等SIMD指令集有一定基础的读者,以单精度浮点数组求和为例演示了如何跨平台使用SSE、AVX指令集。因使用了stdint、zintrin、ccpuid这三个模块,可以完全避免手工编写汇编代码,具有很高可移植性。支持vc、gcc编译器,在Windows、Linux、Mac这三大平台上成功运行。一、问题背景 最初,我们只能使用汇编语言来编写SIMD代码。不仅写起来
2018-02-08 12:03:55 791
转载 手游性能优化之深入理解Texture Compression
一、引子 手游项目开发日常里,经常有美术同学搞不清Photoshop制图软件与Unity3D游戏引擎之间的图片assets流转逻辑,在工作输出时经常出现如下疑问:1、要JPG的,还是要PNG的?2、JPG的要压存为多高质量的?3、PNG的还要压?引擎不是自动处理的么?4、为毛非要正方形的?我这个图实在是没法儿做方的怎么弄?5、图太大,要选哪个压缩方
2017-07-11 17:46:02 651
转载 Lua游戏逆向及破解方法介绍
背景介绍随着手游的发展,越来越多的Cocos-lua端游开发者转移到手游平台。Lua脚本编写逻辑的手游也是越来越多,如梦幻西游、刀塔传奇、开心消消乐、游龙英雄、奇迹暖暖、疾风猎人、万万没想到等手游。随着Lua手游的增加,其安全性更值得关注,在此归纳一些常用的分析方法,同时介绍一些辅助工具。识别Lua游戏Android平台的apk包可以直接解压,找到./lib目录下的so逻辑
2017-07-11 17:39:41 5392 1
转载 Linux内核同步机制之Memory barrier
我记得以前上学的时候大家经常说的一个词汇叫做所见即所得,有些编程工具是所见即所得的,给程序员带来极大的方便。对于一个c程序员,我们的编写的代码能所见即所得吗?我们看到的c程序的逻辑是否就是最后CPU运行的结果呢?很遗憾,不是,我们的“所见”和最后的执行结果隔着:1、编译器2、CPU取指执行编译器将符合人类思考的逻辑(c代码)翻译成了符合CPU运算规则的汇编指令,编译器了解底
2017-06-27 11:45:42 894
原创 手机游戏优化方向概要
本篇中我们主要讲解一些游戏开发中优化的方向,希望能给大家一点启示和帮助,也让你们的项目更加稳定,更加流畅。 我们主要分四个方向来讲解,分别讲述其表现以及一些常用的优化方法,有些技巧其实也是属于多个方面的,大家意会一下就行。1.GPU 表现:1)FPS下降2)发热量,耗电量大优化:1)合理规划美术资源(如粒子数量,模型面数等)2)简化/优化shader,预加载预编译3)批处理,减少
2017-05-12 17:07:10 797
转载 强行在C# Winform中渲染Cocos2d-x 3.6
【前言】 上一篇讲了怎么把Cocos2d-x 3.6渲染进MFC窗体,这里来讲一下怎么在C# Winform中做到同样的功能。如果你不熟悉MFC的使用但对C# Winform比较在行,请往下看。 这一篇是作为上一篇的副属文,所以文中提到的部分操作需要在上一篇中找……博主懒逼不在这复制粘贴了。 【核心思想】 同上一章不同的是,C#是托管环境,并不能直
2017-05-12 15:51:02 1674
转载 强行在MFC窗体中渲染Cocos2d-x 3.6
【前言】 把Cocos2dx渲染到另一个应用程序框架中的方法,在2.x时代有很多大神已经实现了,而3.x的做法网上几乎找不着。这两天抽空强行折腾了一下,不敢独享,贴出来供大家参考。 【已知存在的问题】 程序退出时会发生非常严重的内存泄漏,博主检查了很久,但技术不够暂时无法解决。如果有大神能搞定,求告知一下做法,谢谢! 在程序从开始运行到关闭期间,有
2017-05-08 14:53:07 1170
原创 跨平台sdk接入总结
sdk说明:1、Bugly SDK:自动捕获上报App的脚本错误和原生代码引发的崩溃信息,并提供异常问题分类分析。2、语音 SDK:提供游戏内收发语音功能。 接入步骤:step1:仔细通读一遍sdk接入文档step2:将需要用到的sdk代码文件拷贝至指定工程路径下step3:环境配置1)win32:1、将sdk目录下的所有dl
2017-05-08 11:20:37 1039
转载 JPG、PNG和GIF图片的基本原理及优化方法
一提到图片,我们就不得不从位图开始说起,位图图像(bitmap),也称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。这些点可以进行不同的排列和染色以构成一副图片。当放大位图时,可以看见赖以构成整个图像的无数单个方块。我们常见的图片格式中JPG、PNG、GIF亦属于位图,所以它们的数据结构大致相同,只是每一种图片格式都有不同的压缩算法,不同的扫描方式,但是优化的方法都有一个共
2017-03-27 11:18:42 862
原创 Lua游戏逻辑开发中的优化思路
本篇中,我们主要讲到一些Lua游戏逻辑开发中的优化思路,以及我们项目中的一部分应用。 开始之前,我们先说个题外话。编者认为,对于个人而言,程序高效可能会高于维护性。但对于团队合作来说,往往易懂、易维护、易扩展,稳定是基本要求,再去追求极致。 这里的高效都是相对的,作为一名程序员来说,我觉得高效应该是一种习惯和追求。扯了一下,回归正题,这节里我们先从7个点来介绍。1. 接口统一、抽象化 避免代码
2017-03-21 17:35:53 1559 1
原创 Lua游戏内存泄漏检查
上一篇我们对Lua对象释放做了一些初步了解,那么在这一节中,我就简单介绍两种Lua内存泄漏检查的常用方法。内存快照对于内存快照,目前用得最多的是云风大大开源在github上的snapshot库。原文链接它提供一个函数,可以对当前的 Lua State 做一个完整的快照,为了减少分析数据,只记录了复杂对象的引用关系。也就是记录记录下所有 table thread userdata function
2017-03-14 14:23:01 2827
原创 Cocos、Lua游戏内存释放之我见
本系列针对cocos2dx+Lua游戏开发,在本篇中主要Lua对象释放的姿势,避免造成内存泄漏,有写得不好或者写错的地方,麻烦大家帮忙指正。介绍之前,我们先了解一下游戏运行时,最基本的内存占用。(这里的划分并不标准,只是为了形象介绍划分出来的) 1、贴图内存 2、代码运行内存其中贴图内存主要包括贴图资源和字体资源。代码运行内存包括平台层,C++层,Lua层等,相对于贴图内存来说,占比较小,但往往
2017-02-21 13:07:30 6457
原创 珍惜当下,面向未来
过去的2016,对于苍狼,对于我来说只能用“夹缝中生存”来总结。2016最大的感触:工作和技术都是一个累积的过程,多点感悟,多点思考就会多一分敬畏,多一分珍惜!相比去年的我,现在更懂得思考,更懂得学习。2017,我们能走得更远更高。从0到1的过程永远都是最艰难的,是一个量变到质变的过程,进一步海空天空,退一步万丈深渊。总结之前的问题,在以下几个方面我们应当做的更
2017-02-07 14:33:56 1654
转载 cocos2D-X源码分析之从cocos2D-X学习OpenGL(3)----BATCH_COMMAND
本文转自http://blog.csdn.net/bill_man,大家一起跟大神学习上一篇介绍了QUAD_COMMAND渲染命令,顺带介绍了VAO和VBO,这一篇介绍批处理渲染命令BatchCommand,批处理命令的处理在Render中比较简单[cpp] view plain copy else if(commandType
2016-04-06 14:07:53 557
转载 cocos2D-X源码分析之从cocos2D-X学习OpenGL(2)----QUAD_COMMAND
本文转自http://blog.csdn.net/bill_man,大家一起跟大神学习 上一篇文章介绍了cocos2d-x的基本渲染结构,这篇顺着之前的渲染结构介绍渲染命令QUAD_COMMAND命令的部分,通过这部分的函数,学习opengl处理图片渲染的方法,首先介绍这节需要涉及到的基本概念VAO和VBO。VAO和VBO: 顶点数组对象(V
2016-04-06 14:06:22 703
转载 cocos2D-X源码分析之从cocos2D-X学习OpenGL(1)----cocos2D-X渲染结构
http://blog.csdn.net/bill_man从本篇文章开始,将分析cocos2D-X 3.0源代码,第一部分是从cocos2D-X学习OpenGL,也就是分析cocos2D-X 3.0的渲染代码,本篇首先介绍cocos2D-X 3.0的渲染结构,使用的是3.0正式版。[cpp] view plain copy
2016-04-06 14:03:59 450
转载 AB是一家?VAO与VBO
我想大家都已经熟悉VBO了吧。在GL3.0时代的VBO大体还是处于最重要的地位,但是与此同时也出现了不少新的用法和辅助役,其中一个就是VAO。本文大致小记一下这两者的联系,帮助大家理解一下这个角色。——原文地址:http://www.zwqxin.com/archives/opengl/vao-and-vbo-stuff.html如果你也逐渐步进GL3.0开始的新标准,你大概会
2016-04-06 13:59:03 483
原创 图形图像认识
1. 矢量图(摘自:百度百科)使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等,它们都是通过数学公式计算获得的。例如一幅花的矢量图形实际上是由线段形成外框轮廓,由外框的颜色以及外框所封闭的颜色决定花显示出的颜色。优缺点:文件小,保存的是线条和图块的信息,只与复杂程度有关,文件所占的存储空间较小。对图形进行缩放,旋转或变形操作时,图形不会产生锯齿效果。
2015-11-22 16:06:40 1070
转载 Sublime Text 常用快捷键
转载:http://frontenddev.org/article/sublime-does-text-commonly-used-shortcut.htmlSublime Text 快捷键Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shi
2015-11-22 11:38:25 403
原创 cocos2dx 3.x中ActionTimeLine无法使用setLastFrameCallFunc的解决方案
CocosStudio导出序列帧功能3.x其实用起来已经挺方便的。不过很多人使用的时候都发现,在lua中播完序列帧回调setLastFrameCallFunc无法使用,网上也有很多人说setFrameEventCallFunc来处理,但是这种每帧都回调明显不靠谱,而且笔者用的3.6也发现ActionTimeline并没用调用emitFrameEvent(其实这个是CCFrame中Frame::em
2015-10-28 18:09:27 4853
原创 游戏开发中,回调机制和事件机制的灵活运用
在游戏开发中,回调机制和事件机制是我们解耦比较常用的设计。但各有各的优点,下面我就说一下我个人的一些见解吧。回调机制的简单的理解:⑴定义一个回调函数;⑵在初始化的时候,将回调函数注册给调用者;⑶当特定的事件或条件发生的时候,调用者调用该回调函数进行处理。事件机制的简单的理解:⑴使用者绑定对应事件;⑵当特定的事件或条件发生的时候,触发者派发事件给管理者;
2015-10-21 19:38:27 3320
转载 深入探究Lua中的解析表达式
使用一个模式这个例子显示了一个建立和使用模式的程序,它非常简单但很完整:复制代码代码如下:local lpeg = require "lpeg"-- matches a word followed by end-of-stringp = lpeg.R"az"^1 * -1print(p:match("hello")) --> 6prin
2015-10-18 16:33:26 649
转载 在cocos2d-x中使用libcurl实现上传文件功能(quick版)
项目中需要实现b截图分享功能,我的设计思路是使用 CCRenderTexture 来截图,并通过HTTP上传到截图分享服务器。通过查看 cocos2d-x 源码,我发现 cocos2d-x 封装了一个 CCHttpClient 类,用于调用 libcurl 实现HTTP协议通信。不过并没有实现文件上传功能。但 quick-cocos2d-x 不知道什么原因,删除了这个 CHtt
2015-10-18 16:20:56 1111
转载 从一款已上线的MMO手游分析游戏地图的同步方案
地图几乎是每一部RPG、MOBA、动作冒险等游戏作品中必不可少的东西,而地图的设计也是影响玩家体验的重要元素之一,游戏中的地图该怎么设计呢?本文将以一款已经上线的MMO手游为例,介绍地图在设计中需要注意的一些地方和同步方案。1. 客户端地图格子的相关知识在2.5D的MMO游戏里,角色是通过3D的方式渲染,2D的地图是通过2D的方式显示,所以在客户端一般会有三个坐标系:a) 3D坐标系:
2015-10-15 19:51:53 5466
原创 Lua中string.format转义符的使用
虽然lua中字符串拼接”string.format“相对于”..“消耗较大,但有时为了代码的可读性,项目中还是经常用到”string.format“。至于这两个用法的性能看源码也很容易看出来,这里就简单说一下,前者其实调用C函数str_format来实现拼接的,而后者只是一个操作符,通过memcpy来拼接,并且多个”..“的操作其实也只执行了一次concat。对于”string.for
2015-10-15 16:19:57 43917
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人