开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
博客专区 - 开源中国社区

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

收集微信跳一跳的辅助

微信发布小游戏后,跳一跳作为第一款开屏小游戏,火爆朋友圈,然而火爆的夜幕下,在发布当天就出现了辅助软件,这里收集了数个GitHub上的开源项目,简单总结下,以作分享。
dingdayu 发布于 3周前 阅读 2328 评论 4

2017——关于坚持了一年的事情

2017,你对自己成长负责了么
wier 发布于 4周前 阅读 1703 评论 13 点赞 10

如何预估索引性能?

掌握快速预估索引耗时的能力
wier 发布于 1个月前 阅读 1987 评论 10 点赞 9

什么是DB的三星索引

如果你从网上或者教程中,查询索引设计相关规范,常常会看到一些不知所云的规则和注意事项,这些规则看似很有道理,但应用时,仍然一头雾水,那么究竟如何来做?
wier 发布于 1个月前 阅读 447 评论 2 点赞 1

快速了解人工智能结晶之语音转换文字

科技解放生产力,人工智能的应用如今是大热,那么今天就来给各位介绍一下IBM在这方面的一个小的尝试,语音转换文字。咱们来看一看相较于传统的转换,结合Watson的IBM是如何做到让识别率飙升的。
IBM Bluemix

Sql优化器究竟帮你做了哪些工作?

关系型数据库的一大优势之一,用户无需关心数据的访问方式,那么优化器是如何做到的,我们要如何优化?
wier 发布于 2个月前 阅读 2974 评论 22 点赞 8

DB——数据的读取和存储方式

数据库是我们常用的一些存储数据的方式,我们从读写来了解RDBMS的存取结构
wier 发布于 2个月前 阅读 2038 评论 5 点赞 6

Unity太空大战游戏-Socket网络通信教学示例

U3D游戏与WeaveSocket网络通信教学示例
dreamsfly 发布于 2个月前 阅读 680 点赞 1

一致性hash在DynamoDB上的应用

Dynamo是Amazon提供的一个分布式存储NoSQL 数据库,它采用去中心化、松散耦合的方式,组成一个支持高度扩展的Key/Value 数据库,本篇我们着重分析一下,它是如何采用采用一致性hash而达到可高度扩展的。
wier 发布于 2个月前 阅读 1104 评论 1 点赞 1

娱乐开发两不误,10 大开源游戏框架推荐

游戏技术的不断发展和游戏模式的不断创新,给技术专家带来了许多新的挑战。
编辑部的故事 发布于 3个月前 阅读 6284 评论 19 点赞 6

如何合理的规划一次jvm性能调优

JVM性能调优涉及到方方面面的取舍,往往是牵一发而动全身,需要全盘考虑各方面的影响,那么如何进行一次优雅的调优,提升应用的性能?
wier 发布于 3个月前 阅读 2738 评论 9 点赞 11

jvm优化必知系列——监控工具

项目部署线上之后,我们该如何基于监控工具来快速定位问题....
wier 发布于 3个月前 阅读 4236 评论 14 点赞 18

【码云周刊第 42 期】Unity 开发看这些就够了!

每周为您推送最有价值的开源技术内参!
码云Gitee 发布于 3个月前 阅读 2512 评论 5 点赞 4

jvm优化—— 图解垃圾回收

jvm必知系列,总结一些常见jvm回收机制,方便查阅
wier 发布于 3个月前 阅读 5445 评论 21 点赞 20

Cocos2dx 搓牌效果

先上效果图: ![输入图片说明](https://static.oschina.net/uploads/img/201709/27165000_30Za.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201709/27165022_OXxv.png "在这里输入图片标题") ![输入图片说明](https://static.oschina.net/uploads/img/201709/27165036_kC4x.png "在这里输入图片标题") cocos2dx 3D搓牌效果类如下: ``` -- date:2017/9/26 -- author:looyer -- purpose:3D搓牌效果层, -- 顶点着色器 local strVertSource = [[ attribute vec4 a_position; attribute vec2 a_texCoord; attribute vec4 a_color; uniform float ratio; //牌初始状态到搓牌最终位置的完成度比例 uniform float radius; //搓牌类似于绕圆柱滚起,其圆柱的半径 uniform float width; uniform float finish; //是否完成搓牌 uniform float offx; uniform float offy; varying vec4 v_fragmentColor; varying vec2 v_texCoord; void main() { //注意OpenGL-ES中:1.attribute修饰的变量是常量。2.没有自动转类型float a = 1;或者5.0/3都是错误的 //这两个问题改了两天,可以通过修改CPP代码,打印log来调试cocos2dx程序 vec4 tmp_pos = a_p...
looyer 发布于 4个月前 阅读 3316 评论 5 点赞 6

java多线程——并发测试

并发程序存在不确定性,出现的方式也没有固定规则。这对程序的应用会造成一些困难,如何在测试中,尽可能的暴露出这些问题,并且了解其性能瓶颈,这也是对开发者带来新的挑战。
wier 发布于 4个月前 阅读 1217 点赞 4

java多线程——CAS

CAS是什么,有那些特性,如何使用...
wier 发布于 4个月前 阅读 673 评论 5 点赞 5

java多线程——锁

这是多线程系列第四篇,偏重于线程的实践,对锁的几种应用做个简要介绍
wier 发布于 4个月前 阅读 3552 评论 15 点赞 4

java多线程——volatile

java多线程系列第三篇,深入理解volatile的原理以及应用
wier 发布于 5个月前 阅读 3539 评论 11 点赞 6

在Unity游戏中使用Live2D

Unity中使用Live2D
Lohanry 发布于 5个月前 阅读 494 评论 1

java多线程-内存模型

了解一些jvm在内存操作中如何保证一致性问题
wier 发布于 5个月前 阅读 2096 评论 8 点赞 3

osg 贴图

切换帖图帧的一个模型程序
洛克人杰洛 发布于 14小时前 阅读 3

listVIew分页加载——手动加载

public class MainActivity extends AppCompatActivity implements View.OnClickListener, AbsListView.OnScrollListener {     private ListView mListView;     private MyAdapter mAdapter;     private View mFootView;     private Button mLoadMore;     private ProgressBar mPro;     private ArrayList<String> mList = new ArrayList<>();     private int mMaxSize = 56;     private int mLastIndex;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         initData();         initFootView();         initViews();         mAdapter = new MyAdapter(mList, MainActivity.this);         mListView.setAdapter(mAdapter);     }     private void initData() {         for (int i = 0; i < 10; i++) {             mList.add("这是第" + i + "条数据");         }     }     private void initViews() {         mListView = (ListView) findViewB...
津乐 发布于 2个月前 阅读 2

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

串口通讯

1.API 需要切换成.NET2.0。称为几乎接近.net2.0。.net2.0 subset是.net2.0的子集。串口通讯用到的system.IO.Ports命名空间在。net2.0中。 2.Unity的目标平台一定要切换为Windows平台,否则是其他平台会报错误。 3.串口参数,.net2.打开串口是如果串口超过10,则需要在串口名字前加“\\?\”。所以unity给的参数也必须有“\\?\”。实际中给的参数,因为转移符的关系要写成“\\\?\\”。      PortName "COM1"    (端口名字)      baudRate 115200 (波特率)      parity  (校验位)      databit  8 (数据位)       stopbit 1 (停止位) 4.  SerialPort.DiscardOutBuffer方法清除串行驱动程序发送缓冲区的数据;      SerialPort.DiscardInBuffer方法清除串行驱动程序的接收缓冲区的数据; 5. 收发错误等回调有,但是不能用,并不会回调。只能用多线程。时刻查看有没有收到数据。     private bool canrecive = true;     private void PortReceive()     {         while (this.port != null && this.port.IsOpen && canrecive)         {             Thread.Sleep(1);                          try         ...
learnerNS 发布于 2个月前 阅读 2

stick-BattleServer负载均衡

  战斗服是开房间的形式,单进程模式,,每个战斗服N个房间一个房间最多4人。战斗服功能主要是广播,按照房间数量来,一个战斗服设定是125个房间即 一个战斗服最多500人。 战斗服管理器负责战斗服的分配和负载均衡,一个管理器链接N个战斗服。网关所有的加入房间,单人匹配 创建房间请求都转发给战斗服管理器来处理 负载基本思想是管理器只分配,当分配不够时,才从缓冲中刷新到当前战斗服最新负载信息。战斗服定期吧自己的负载量(人数和房间数量)发送给管理器, 当整个系统负载非常非常高时,缓冲区和非缓冲区会交换很频繁,性能下降大约2倍。这种方式允许少分配,但是不会给战斗服多分配,这在设计上是允许存在的。 游戏有单人匹配 创建房间加入房间3种开始游戏的方式, 单人匹配又分为加入匿名房间和创建匿名房间,这个到底是加入还是创建直接交给战斗服去处理。创建房间是会分配一个全服唯一房间号,称之为开黑房间,开黑房间只能通过房间号来加入,这个管理器分配出来后会二次确认信息,到战斗服,确认可用后再返给客户端战斗服信息和房间号。 负载算法:可参见房间数量,可加入玩家数量,对于开黑房间直接预处理为最大房间人数来计算负载量,因为开黑房间不允许匿名...
梦想游戏人 发布于 1个月前 阅读 14

搭建C++编译环境

安装git,g++ gcc 并且升级到4.9版本,用premake 从vs工程 输出为makefile 等 --安装git sudo add-apt-repository ppa:git-core/ppa sudo apt-get update sudo apt-get install git --安装g++ sudo apt-get install build-essential sudo apt-get install g++-multilib sudo apt-get install libc6 libc6-dev --更新 G++ 不然编译不过 sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install gcc-4.9 sudo apt-get install g++-4.9 sudo apt-get install gcc-4.9-multilib sudo apt-get install g++-4.9-multilib --安装好之后 创建链接 到4.9版本 不然默认还是4.8 sudo su cd ../../usr/bin ln -s /usr/bin/g++-4.9 /usr/bin/g++ -f ln -s /usr/bin/gcc-4.9 /usr/bin/gcc -f --安装nginx apt-get install libtool  ...
梦想游戏人 发布于 2周前 阅读 5

Unity shader 官网文档全方位学习(三)

这篇文章主要介绍Vertex and Fragment shader的基础与相关例子的个人探索与解读。有不对的地方,请各位指教。
AveryHuo 发布于 1周前 阅读 3

在其所属的客户端上运行

在同步UMG的时候遇到的问题,反而解决了一个一直以来的疑问----在其所属的客户端上运行 在其所属的客户端上运行 在拥有这个变量的Actor中执行 例子 去修改Widget中的Text,我们已经让Text显示在屏幕上了,并绑定了Text这个变量 两人游戏中,NewPlayerController一共有三个,服务器上两个,客户端一个(解释点击跳转),而服务器上的是没有必要去渲染UI的,所以我们要在本地的NewPlayerController中去渲染UI。 NewPlayerController蓝图节点 在本地的NewPlayerController中创建Widget PS:可以这么认为服务器的NewPlayerController即是本地,是权威的,因为服务器上的NewPlayerController就存在服务器里,而且只有一个 GameMode蓝图节点 储存服务器上的两个PlayerController(两个权威版的PlayerController) NewPlayerController蓝图节点 按下“Q”去呼叫GameMode的事件 GameMode蓝图节点 历遍所有的PlayerController,转化为我们两个NewPlayerController,这里需要注意两点 有关于服务器的NewPlayerController,因为服务器只有一个NewPlayerController,所以转化没有问题。 有关于客户端的NewPlayerController,因为客户端有两个NewPlayerController,所以转化可能会出现问题...
代码丽莎的微笑 发布于 1周前 阅读 2

二进制跨语言数据描述语言调研:todo

# 编者注 由于json是字符进行传送,尤其是传送float参数,会直接导致数据传输量暴增。则需要使用二进制化的跨语言传输方法。编者找到Google Protocol Buffers,Apache Thrift,Apache avro。 # Google Protocol Buffers [Google Protocol Buffers 官网 - 需要翻墙](https://developers.google.com/protocol-buffers) ## Git地址 [protobuf git](https://github.com/google/protobuf) # Apache Thrift ## 下载 [Apache Thrift 下载地址](http://thrift.apache.org/download) # Apache Avro [Apache Avro 官网](https://avro.apache.org/)
抢小孩糖吃 发布于 3天前 阅读 7

Unity - HttpHelper框架类库

# 编者注 这几天一直在写Unity当中的C#的网络传输,但是发现由于Unity采用的mono框架,支持的仅仅是.Net Framework 3.5的API,并不支持更高级别的HttpClient,则很多功能需要手动开发。最早简单测试过GET数据,并且JSON文件反序列化为对象成功。之后实现了POST的JSON文件,获取返回的JSON,所以麻痹大意,导致在uploadfile这个环节花费了大量的时间。 # 设计方法 笔者认为apache commons的库设计非常好,所以仿照了httpclient进行了设计。 ``` └─Utils ├─GlobalConfig │ UnityTemplate.cs - 用来存储Unity项目规范结构 │ ├─HttpHelper │ │ HttpHelper.cs - 针对访问http程序的主要方法 │ │ │ ├─http │ │ HttpEntity.cs - HTTP Body中的内容 │ │ HttpHeader.cs - HTTP Headers │ │ │ └─methods │ HttpGet.cs - Get方法 │ HttpPost.cs - Post方法 │ HttpRequestBase.cs - 公共继承方法 │ └─JsonHelper - 另外的库,用来处理Json序列化与反序列化 ``` ## HttpHelper 根据HttpClient方法,由于已经能够确认.net core开源版本已经集成HttpClient,如果未来Unity什么时候集成core,则不需要考虑现在的方法,则把现在的方法命名为HttpHelper HttpHe...
抢小孩糖吃 发布于 3个月前 阅读 14

物理游戏的同步模型

该篇分析的环境是:服务器不接入物理引擎,纯物理游戏(偏向于强操作)开房间。 分析点主要是:同步模型,服务器框架,防作弊,主客户端热切换(保证游戏任何玩家掉线都不会影响游戏) 该篇记录更多的是个人思考的记录。 同步模型: 服务器不接入物理引擎的话,那么只有依赖于选举一个客户端(主客户端)来做物理处理,然后把状态同步到其他客户端,其他客户端做插值处理。(服务器也可以接入逻辑来控制取代主客户端的部分功能,甚至取消主客户端这个角色,服务器记录来自客户端的状态快照然后逻辑处理)。     因此其他客户端的“物理效果”表现力和插值算法和同步频率有关:      客户端物理表现方案1:主客户端全物理,每个玩家都是物理控制下,其他玩家吧操作发送给主客户端,然后接收来自主客户端的状态信息,然后做插值。好处是游戏控制权都在主客户端,降低了同步模型设计的难度,主客户端只需要接收其他玩家的操作信息即可,因此,其他玩家的操作,主客户端就要处理为操作状态的改变,而不是收到一个操作就处理一个操作,因为同步频率远低于游戏帧数,因此会出现操作不连贯,发生的现象比如移动一走一停,因此主客户端应该处理为输入状态的改变,比如某客户...
梦想游戏人 发布于 3个月前 阅读 46

收集微信跳一跳的辅助

微信发布小游戏后,跳一跳作为第一款开屏小游戏,火爆朋友圈,然而火爆的夜幕下,在发布当天就出现了辅助软件,这里收集了数个GitHub上的开源项目,简单总结下,以作分享。
dingdayu 发布于 3周前 阅读 2328 评论 4

2017——关于坚持了一年的事情

2017,你对自己成长负责了么
wier 发布于 4周前 阅读 1703 评论 13 点赞 10

娱乐开发两不误,10 大开源游戏框架推荐

游戏技术的不断发展和游戏模式的不断创新,给技术专家带来了许多新的挑战。
编辑部的故事 发布于 3个月前 阅读 6284 评论 19 点赞 6

DB——数据的读取和存储方式

数据库是我们常用的一些存储数据的方式,我们从读写来了解RDBMS的存取结构
wier 发布于 2个月前 阅读 2038 评论 5 点赞 6

Unity太空大战游戏-Socket网络通信教学示例

U3D游戏与WeaveSocket网络通信教学示例
dreamsfly 发布于 2个月前 阅读 680 点赞 1

如何合理的规划一次jvm性能调优

JVM性能调优涉及到方方面面的取舍,往往是牵一发而动全身,需要全盘考虑各方面的影响,那么如何进行一次优雅的调优,提升应用的性能?
wier 发布于 3个月前 阅读 2738 评论 9 点赞 11

什么是DB的三星索引

如果你从网上或者教程中,查询索引设计相关规范,常常会看到一些不知所云的规则和注意事项,这些规则看似很有道理,但应用时,仍然一头雾水,那么究竟如何来做?
wier 发布于 1个月前 阅读 447 评论 2 点赞 1

跳一跳辅助工具

微信游戏跳一跳辅助
Mstart 发布于 2周前 阅读 109 评论 2

Rider 开发调试Unity

# 编者注 Unity开发一直在找各种IDE,VS不好使用,使用逻辑和IDEA不一致。MonoDevelop有些自己写的Interface,不能在IDE中发现问题。之前找过完全开源的consulo,也不太好用。随即找到了官方的Rider # Unity配置Rider ## 找到Rider的安装目录 笔者使用的是Windows系统,安装目录在 ``` C:\Users\zhanp\AppData\Local\JetBrains\Toolbox\apps\Rider\ch-0\172.4144.1873\bin\rider64.exe ``` ## Unity配置 在UnityEidtor当中,点击Edit菜单,选择Preferences,会打开Unity Preferences窗口,窗口侧边栏当中有External Tools,点击在External Script Editor的下拉列表,选择"Browse"。 ``` Edit -> Preferences -> External Tools -> External Script Editor ``` 填写复制Rider安装目录,点击rider64.exe,完成UnityEditor的配置。 # 双击代码找不到using **注意**:如果这时按照Unity传统方法,直接双击C#代码,会导致项目内的所有using都找不到。 这个原因是因为没有在项目当中安装Rider的plugin。 # 正确载入项目 ## 打开Rider 打开Rider项目页面,选择`Open Solution or Project`,选择你的Unity项目当中的xxx.sln文件。 ## 自动安装Unity3DRider 通过载入项目的方式打开U...
抢小孩糖吃 发布于 2个月前 阅读 23

Sql优化器究竟帮你做了哪些工作?

关系型数据库的一大优势之一,用户无需关心数据的访问方式,那么优化器是如何做到的,我们要如何优化?
wier 发布于 2个月前 阅读 2974 评论 22 点赞 8

收集微信跳一跳的辅助

微信发布小游戏后,跳一跳作为第一款开屏小游戏,火爆朋友圈,然而火爆的夜幕下,在发布当天就出现了辅助软件,这里收集了数个GitHub上的开源项目,简单总结下,以作分享。
dingdayu 发布于 3周前 阅读 2328 评论 4

2017——关于坚持了一年的事情

2017,你对自己成长负责了么
wier 发布于 4周前 阅读 1703 评论 13 点赞 10

娱乐开发两不误,10 大开源游戏框架推荐

游戏技术的不断发展和游戏模式的不断创新,给技术专家带来了许多新的挑战。
编辑部的故事 发布于 3个月前 阅读 6284 评论 19 点赞 6

DB——数据的读取和存储方式

数据库是我们常用的一些存储数据的方式,我们从读写来了解RDBMS的存取结构
wier 发布于 2个月前 阅读 2038 评论 5 点赞 6

Unity太空大战游戏-Socket网络通信教学示例

U3D游戏与WeaveSocket网络通信教学示例
dreamsfly 发布于 2个月前 阅读 680 点赞 1

如何合理的规划一次jvm性能调优

JVM性能调优涉及到方方面面的取舍,往往是牵一发而动全身,需要全盘考虑各方面的影响,那么如何进行一次优雅的调优,提升应用的性能?
wier 发布于 3个月前 阅读 2738 评论 9 点赞 11

什么是DB的三星索引

如果你从网上或者教程中,查询索引设计相关规范,常常会看到一些不知所云的规则和注意事项,这些规则看似很有道理,但应用时,仍然一头雾水,那么究竟如何来做?
wier 发布于 1个月前 阅读 447 评论 2 点赞 1

Rider 开发调试Unity

# 编者注 Unity开发一直在找各种IDE,VS不好使用,使用逻辑和IDEA不一致。MonoDevelop有些自己写的Interface,不能在IDE中发现问题。之前找过完全开源的consulo,也不太好用。随即找到了官方的Rider # Unity配置Rider ## 找到Rider的安装目录 笔者使用的是Windows系统,安装目录在 ``` C:\Users\zhanp\AppData\Local\JetBrains\Toolbox\apps\Rider\ch-0\172.4144.1873\bin\rider64.exe ``` ## Unity配置 在UnityEidtor当中,点击Edit菜单,选择Preferences,会打开Unity Preferences窗口,窗口侧边栏当中有External Tools,点击在External Script Editor的下拉列表,选择"Browse"。 ``` Edit -> Preferences -> External Tools -> External Script Editor ``` 填写复制Rider安装目录,点击rider64.exe,完成UnityEditor的配置。 # 双击代码找不到using **注意**:如果这时按照Unity传统方法,直接双击C#代码,会导致项目内的所有using都找不到。 这个原因是因为没有在项目当中安装Rider的plugin。 # 正确载入项目 ## 打开Rider 打开Rider项目页面,选择`Open Solution or Project`,选择你的Unity项目当中的xxx.sln文件。 ## 自动安装Unity3DRider 通过载入项目的方式打开U...
抢小孩糖吃 发布于 2个月前 阅读 23

Sql优化器究竟帮你做了哪些工作?

关系型数据库的一大优势之一,用户无需关心数据的访问方式,那么优化器是如何做到的,我们要如何优化?
wier 发布于 2个月前 阅读 2974 评论 22 点赞 8

跳一跳辅助工具

微信游戏跳一跳辅助
Mstart 发布于 2周前 阅读 109 评论 2

如何预估索引性能?

掌握快速预估索引耗时的能力
wier 发布于 1个月前 阅读 1987 评论 10 点赞 9

安卓手机游戏 纪念碑谷1+2+被遗忘海岸+艾达的梦 解锁码

安卓手机游戏 纪念碑谷1+2+被遗忘海岸+艾达的梦 解锁码。限时优惠,拍下自动发货,绝对有效。
码上中国博客 发布于 2个月前 阅读 30

asio 主线程调用

多线程环境中 可以利用io.post 方法  吧一个回调之类的 通过io_service post到 io主线程中执行
梦想游戏人 发布于 4天前 阅读 8

游戏服务器设计之属性管理器

# 游戏服务器设计之属性管理器   游戏中角色拥有的属性值很多,运营多年的游戏,往往会有很多个成长线,每个属性都有可能被N个成长线模块增减数值。举例当角色戴上武器时候hp+100点,卸下武器时HP-100点,这样加减逻辑只有一处还比较好控制,如果某天有个特殊功能当被某技能攻击时,角色武器会被击落,这样就会出现减数值的操作不止一处。如果逻辑处理不当,比如击落的时候没有恰当的减数值,再次穿戴武器就导致属性值加了两边,也就是玩家经常说的刷属性。这种bug对游戏平衡性影响很大,反响很恶劣,bug又很难被测试发现。本文将介绍一种管理属性的思路,最大限度的避免此类bug,如果出现bug,也能够很好的排查。 ## 设计思路   刷属性bug的核心原因是某功能的模块数值加了N次,所以各个模块加的属性要被记录,加过了必须不能重复加。设计这样的数据结构。 ```cpp //!各个属性对应一个总值 //!各个属性对应各个模块的分值 template class PropCommonMgr { public: typedef T ObjType; typedef int64_t (*functorGet)(ObjType); typedef void (*functorSet)(ObjType, int64_t); struct PropGetterSetter { PropGetterSetter():fGet(NULL), fSet(NULL){} functorGet fGe...
zhaoxinfeng1 发布于 2周前 阅读 14

《游戏行业DDoS攻击解决方案》重磅发布

摘要: 游戏行业一直是竞争、攻击最为复杂的一个江湖。曾经多少充满激情的创业团队、玩法极具特色的游戏产品,被互联网攻击的问题扼杀在摇篮里;又有多少运营出色的游戏产品,因为遭受DDoS攻击,而一蹶不振。游戏行业在防御DDoS攻击时面临着诸多挑战,主要包括可被攻击的薄弱点多、涉及的协议种类多、实时性要求高等技术难点。 点此查看原文:http://click.aliyun.com/m/40468/ 前言 游戏行业一直是竞争、攻击最为复杂的一个江湖。曾经多少充满激情的创业团队、玩法极具特色的游戏产品,被互联网攻击的问题扼杀在摇篮里;又有多少运营出色的游戏产品,因为遭受DDoS攻击,而一蹶不振。游戏行业在防御DDoS攻击时面临着诸多挑战,主要包括可被攻击的薄弱点多、涉及的协议种类多、实时性要求高等技术难点。 针对以上安全痛点,结合阿里云安全技术团队长年攻防经验,我们输出了游戏行业DDoS攻击解决方案,带您一起认识阿里云最新“黑科技”——游戏盾。 如何缓解DDoS攻击? 基于阿里云安全技术团队经验,从架构优化、服务器安全加固等方面提升您的游戏业务的安全性和健壮性,有效缓解DDoS攻击。同时,如果您的游戏业务遭受大流量DDoS攻击的困扰,传统的商用DDoS防护服务始终无法...
阿里云云栖社区 发布于 5天前 阅读 7

在多人游戏中更换不同的角色

DEMO介绍     在游戏按下“1”键,自动识别是不是服务器,并生成对应角色 预览     游戏开始时,统一角色 server窗口更换角色     当在服务器窗口按下“1”键,server窗口更换角色 Client窗口更换角色     当在客户端窗口按下“1”键,Client窗口更换角色 蓝图区 MyPlayerController     创建继承自PlayerController类的MyPlayerController蓝图类 MyGameModeBase     创建继承自GameModeBase类的MyGameModeBase蓝图类 GetSpawnPoint函数     获取生成角色的随机点 总结     在这个例子中可以详细的观察到,网络变量复制的一些规则以及给出对应证明 变量的 更新/修改/同步 必须在服务器 更新/修改/同步,否则均在本地 更新/修改/同步,不管是否变量Replicate,结果都是一致的。证明01 在服务器上变量 更新/修改/同步 时,要注意变量Replicate,如果没有Replicate,那么结果只有服务器上的变量 更新/修改/同步 了,本地不会更新。证明02  服务器上有所有的Actor,客户端的都是拷贝服务器的,并且每人只有一份;例如,开启两人游戏,有两个窗口,一个server,一个client,我们以PlayerController为例子,在游戏中一共有3个playerControl...
代码丽莎的微笑 发布于 2周前 阅读 2

Python玩跳一跳【简】

准备环境: Windows 10; 【有】 安卓手机 【有】 python(版本建议3以上) adb驱动  依赖安装包 Python下载安装【官网下载并安装】 详情参见 Python3.6.4 安装 pip安装 pip用于安装依赖包,Python【版本3以上】中已经有pip功能,cmd命令输入pip验证,出现如下效果说明可以正常使用pip功能 adb驱动安装 adb驱动下载地址:https://adb.clockworkmod.com/ 安装时建议修改安装路径,安装完成后进行验证【cmd命令行输入adb】 源码拷贝 将源码从github拷贝到本地 github地址:https://github.com/wangshub/wechat_jump_game 安装依赖安装包 跳一跳微信辅助的最终运行需要很多的Python模块,作者已经将这些所需要的模块都写在了源码中的requirements.txt中,所以我们执行命令 pip install -r requirements.txt,即可将这些必须的模块下载下来,模块包括有matplotlib,numpy等。 切换到源码解压缩后的目录路径,再执行命令pip install -r requirements.txt 这里我遇到了问题是numpy模块 No module named numpy 我从stackoverflow上查到的方法是,在全局安装numpy pip install numpy 安装完成后再执行命令pip install -r requirements.txt 手机与电脑连接【手脑相连】 将安卓手机...
anlve 发布于 2周前 阅读 92 评论 1

unity3d GUITexture不显示问题

GUITexture不显示问题
Aeroever 发布于 4天前 阅读 6

irrlicht 3d游戏编程1第三人称摄像机

近来有空,打算写点游戏编程的文章。 今天第一篇,关于第三人称摄像机的。 先看效果   按下鼠标中键,左右可旋转,上下可倾斜。   下面是代码 #include <windows.h> #include <string.h> // strcpy_s #include <irrlicht.h> using namespace irr; using namespace core; using namespace scene; using namespace video; using namespace io; using namespace gui; #ifdef _IRR_WINDOWS_ #pragma comment(lib, "Irrlicht.lib") #endif #include "my3rdcamera.h" My3rdCamera* myCamera; class EventReceiver: public irr::IEventReceiver { public: virtual bool OnEvent (const irr::SEvent& e){ if(myCamera) myCamera->OnEvent(e); //传入事件到camera里处理 return false; } }; EventReceiver e; int _tmain(int argc, _TCHAR* argv[]) { // create device IrrlichtDevice *device = createDevice(EDT_OPENGL, core::dimension2d<u32>(640, 480), 16, false); if (device == 0) return 1; // could not create selected driver. device->setEventReceiver(&e); device->setWin...
styleman 发布于 3周前 阅读 10

osg 改变模型贴图

网络上抄的代码, 有作修改
洛克人杰洛 发布于 1天前 阅读 1

osg 贴图

切换帖图帧的一个模型程序
洛克人杰洛 发布于 14小时前 阅读 3

osg 改变模型贴图

网络上抄的代码, 有作修改
洛克人杰洛 发布于 1天前 阅读 1

二进制跨语言数据描述语言调研:todo

# 编者注 由于json是字符进行传送,尤其是传送float参数,会直接导致数据传输量暴增。则需要使用二进制化的跨语言传输方法。编者找到Google Protocol Buffers,Apache Thrift,Apache avro。 # Google Protocol Buffers [Google Protocol Buffers 官网 - 需要翻墙](https://developers.google.com/protocol-buffers) ## Git地址 [protobuf git](https://github.com/google/protobuf) # Apache Thrift ## 下载 [Apache Thrift 下载地址](http://thrift.apache.org/download) # Apache Avro [Apache Avro 官网](https://avro.apache.org/)
抢小孩糖吃 发布于 3天前 阅读 7

unity3d GUITexture不显示问题

GUITexture不显示问题
Aeroever 发布于 4天前 阅读 6

asio 主线程调用

多线程环境中 可以利用io.post 方法  吧一个回调之类的 通过io_service post到 io主线程中执行
梦想游戏人 发布于 4天前 阅读 8

2018

钢琴:小幸运 吉他:天空之城:http://www.iqiyi.com/w_19rt9c6081.html  
阿锋zxf 发布于 5天前 阅读 5

《游戏行业DDoS攻击解决方案》重磅发布

摘要: 游戏行业一直是竞争、攻击最为复杂的一个江湖。曾经多少充满激情的创业团队、玩法极具特色的游戏产品,被互联网攻击的问题扼杀在摇篮里;又有多少运营出色的游戏产品,因为遭受DDoS攻击,而一蹶不振。游戏行业在防御DDoS攻击时面临着诸多挑战,主要包括可被攻击的薄弱点多、涉及的协议种类多、实时性要求高等技术难点。 点此查看原文:http://click.aliyun.com/m/40468/ 前言 游戏行业一直是竞争、攻击最为复杂的一个江湖。曾经多少充满激情的创业团队、玩法极具特色的游戏产品,被互联网攻击的问题扼杀在摇篮里;又有多少运营出色的游戏产品,因为遭受DDoS攻击,而一蹶不振。游戏行业在防御DDoS攻击时面临着诸多挑战,主要包括可被攻击的薄弱点多、涉及的协议种类多、实时性要求高等技术难点。 针对以上安全痛点,结合阿里云安全技术团队长年攻防经验,我们输出了游戏行业DDoS攻击解决方案,带您一起认识阿里云最新“黑科技”——游戏盾。 如何缓解DDoS攻击? 基于阿里云安全技术团队经验,从架构优化、服务器安全加固等方面提升您的游戏业务的安全性和健壮性,有效缓解DDoS攻击。同时,如果您的游戏业务遭受大流量DDoS攻击的困扰,传统的商用DDoS防护服务始终无法...
阿里云云栖社区 发布于 5天前 阅读 7

influxDB tag query

tag 中没有in的查询,但是可以使用正则表达式实现。示例如下: SELECT * FROM some_measurement WHERE some_tag =~ /a|b|c/ 另一种实现是使用OR来连接 SELECT * from mydb WHERE service = 'aa' OR service = 'bb' Note: tag 的列为字符串,所以在使用是一定要加上单引号,示例如下: SELECT * FROM dummy WHERE id='1234'  
idoz 发布于 6天前 阅读 4

OnServer----服务器事件是本地呼叫权威版的事件

之前的标题有点错误(OnServer----服务器事件是呼叫权威版的事件)已经修改为OnServer----服务器事件是本地呼叫权威版的事件 一图胜千言 我们的输入是在本地进行的。当本地使用RPC里的服务器事件时候,就会去呼叫服务器/权威版的PlayerController,如上图。 当我们需要GameMode的时候也是需要使用RPC去呼叫权威版的PlayerController,因为客户端里是没有GameMode的。如上图 小例子 在PlayerController中,将本地PlayerController的Test变量设置为False PS:Test变量默认值为true 两个按键事件 “Q” 打印本地版本的Test变量 “E” 打印权威/服务器版本的Test变量 结果 服务器端 由于服务器的PlayerController只有一个且是本地,那么肯定都是false 客户端 客户端的本地PlayerController是False,权威版是True    
代码丽莎的微笑 发布于 6天前 阅读 6

cocos2d-x解压zip文件到指定目录

 win下报错,记得添加附加包含目录: $(EngineRoot)external\win32-specific\zlib\include   #ifdef MINIZIP_FROM_SYSTEM #include <minizip/unzip.h> #else // from our embedded sources #include "unzip/unzip.h" #endif #define BUFFER_SIZE 8192 #define MAX_FILENAME 512 bool DirLayer::uncompress(const std::string &filePath, const std::string &storagePath, bool isLocalAsset) { // Open the zip file unzFile zipfile; if (!isLocalAsset) { zipfile = unzOpen(FileUtils::getInstance()->getSuitableFOpen(filePath).c_str()); } else { Data dataFile = FileUtils::getInstance()->getDataFromFile(filePath); ssize_t size = 0; unsigned char *data = dataFile.takeBuffer(&size); zipfile = unzOpenBuffer(data, size); } if (!zipfile) { CCLOG("can not open downloaded zip file %s", filePath.c_str()); return false; } // Get info about the zip file unz_global_info global_info; if (unzGetGlobalInfo(zipfile, &global_info) != UNZ_OK) { CCLOG("can not read file global info of %s", f...
Valiancer 发布于 1周前 阅读 6

在其所属的客户端上运行

在同步UMG的时候遇到的问题,反而解决了一个一直以来的疑问----在其所属的客户端上运行 在其所属的客户端上运行 在拥有这个变量的Actor中执行 例子 去修改Widget中的Text,我们已经让Text显示在屏幕上了,并绑定了Text这个变量 两人游戏中,NewPlayerController一共有三个,服务器上两个,客户端一个(解释点击跳转),而服务器上的是没有必要去渲染UI的,所以我们要在本地的NewPlayerController中去渲染UI。 NewPlayerController蓝图节点 在本地的NewPlayerController中创建Widget PS:可以这么认为服务器的NewPlayerController即是本地,是权威的,因为服务器上的NewPlayerController就存在服务器里,而且只有一个 GameMode蓝图节点 储存服务器上的两个PlayerController(两个权威版的PlayerController) NewPlayerController蓝图节点 按下“Q”去呼叫GameMode的事件 GameMode蓝图节点 历遍所有的PlayerController,转化为我们两个NewPlayerController,这里需要注意两点 有关于服务器的NewPlayerController,因为服务器只有一个NewPlayerController,所以转化没有问题。 有关于客户端的NewPlayerController,因为客户端有两个NewPlayerController,所以转化可能会出现问题...
代码丽莎的微笑 发布于 1周前 阅读 2

ue4同步填坑

在PlayerController中只执行一次服务器事件     在PlayerController中,若只想在游戏开始时,只执行一次服务器事件,那么事件就得写在服务器的本地PlayerController中的。如图                         权威版和非权威版--个人这么认为的 假如进行一个二人游戏,那么服务器上就有两个PlayerController,客户端只有一个PlayerController 权威版就是服务器上的PlayerController,一个PlayerController是服务器的权威版,同时该PlayerController也是服务器的本地PlayerController,另外一个PlayerController是客户端的权威版PlayerController。 非权威版就是客户端上的PlayerController,该PlayerController是客户端本地的PlayerController,该PlayerController是服务器端的权威版PlayerController 复制/同步 过来的。 GameInstance     单独存在每个链接中/或者说是窗口中,服务器上修改的变量不会同步到所有的客户端 所以得依靠GameState去同步给客户端     由于我们在服务器调用SetRoomName,其实是可以不用设置为在服务器上执行自定义事件的,但是这样可以防止客户端(非权威)执行该事件 设置房间     在多人游戏会话中,以创建房间,设置房间名...
代码丽莎的微笑 发布于 1周前 阅读 3

关于LUA+Unity开发_toLua篇【一】

网上有许多的LUA与Unity插件,如toLua,uLua, sLua, xLua。 uniLua由于其复杂的集成使用过程,已经被主流所抛弃了。在对各个插件使用过之后,出此系列博客与大家分享一下心得。 前面两篇计划说说toLua的那些事。 toLua自己集成到项目里,下载地址:https://github.com/topameng/tolua 步骤如下: 1.复制assets目录到项目里 2.复制Unity5.x的Plugins到项目里 集成后的结构是这样的:   然后,开始Examples里面内容的学习: 大概介绍一下各个实例, Helloworld,介绍了LuaState的生成,DoString以执行文件,Dispose来销毁。注意销毁前调用了CheckTop,用于检测LUA栈中是否还有未执行的指令。 ScriptsFromFile, 流程来说,首先生成一个虚拟机,再指定工作路径后,读取LUA文件内容来执行,使用DoFile和Require功能。 CallLuaFunction,较xLua来说就提供了多种形式了。这里简单说明一下: 1.使用比较原始的方式,根据LUA的核心机制,使用pCALL指令将数据放LUA执行栈中,再从栈中取出。 luaFunc.Invoke就是对此的封装 2.使用 luaFunc.ToDelegate 直接创建一个函数委托句柄。 3. 使用LUA虚拟机对象里的Invoke来实现调用,实现机制基本与1一样 AccessingLuaVariables,这里涉及...
AveryHuo 发布于 1周前 阅读 16

Unity shader 官网文档全方位学习(三)

这篇文章主要介绍Vertex and Fragment shader的基础与相关例子的个人探索与解读。有不对的地方,请各位指教。
AveryHuo 发布于 1周前 阅读 3

ulua,slua,tolua,xlua 等跨语言C#Lua 接口崩溃原因

使用ulua等unity lua 脚本接口工具时,经常会出现各种崩溃 这些崩溃本质上有一个共同模式: C#调用 Lua, Lua调用c#, 接着C#出现异常 也就是跨语言 异常处理上 存在严重问题; ulua,slua等 库 都抄袭了一个叫做 LuaInterface的库, 而这个异常传递导致崩溃的问题,就是LuaInterface自身 设计的问题 修改起来也很简单,避免将C#层的异常,抛给Lua去处理 直接在C#层打印Log,也可以将当前Lua堆栈打Log,同时向Lua层返回一个 nil即可 ![输入图片说明](https://static.oschina.net/uploads/img/201801/12124350_IF73.png "在这里输入图片标题") 这个问题本质原因是: Lua如果使用c编译,使用的longjmp方式处理的异常,c++编译器的话,使用的是c++自己的异常机制; 而C# 是托管代码,走的是Mono虚拟机上的异常处理, 而异常处理,本质上还是要借用 操作系统级别上的 接口 当异常发生的时候,Mono需要 做一次上下文的长跳转,将C#堆栈还原到特定位置,同时需要将 CPU的关键寄存器状态进行还原,C层堆栈进行还原 这里我们就会看到严重的问题,lua的异常机制会对c层,操作系统层堆栈进行处理,而Mono虚拟机也会对操作系统层堆栈进行处理, 我们都知道,两个不会考虑彼此的系统,同...
李勇2 发布于 2周前 阅读 12

net.sf.json.JSONException: Object is null

今天开发的时候,写代码的时候出现了这个 ``` Could not write content: Object is null (through reference chain: net.sf.json.JSONObject["rows"]->net.sf.json.JSONArray[5]->net.sf.json.JSONObject["cell"]->net.sf.json.JSONArray[4]->net.sf.json.JSONNull["empty"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Object is null (through reference chain: net.sf.json.JSONObject["rows"]->net.sf.json.JSONArray[5]->net.sf.json.JSONObject["cell"] ->net.sf.json.JSONArray[4]->n ``` 我这个 json jack 版本有点低,一直没有进行更新。。。 原因是这样的: 有一个字段 date 类型, updateTime . 它是 空的, NULL , jackjson 这个 硬死 解析不出来,还报错了。。。 如果我赋值之后,,,可以看出来,,,它是把时间解析成一长串 list 的里面有 day 啊等等属性的。 而不是一个 时间字符串的。。。 坑爹。 然后我想设置 忽略 这个 时间字段,, 配置了 它的忽略注解后,,,还是没有起作用。。。 换成 阿里的 json 使用了就可以了。...
之渊 发布于 2周前 阅读 5

OSG 矢量叉乘

原来这要这么写
洛克人杰洛 发布于 2周前 阅读 3

游戏服务器设计之属性管理器

# 游戏服务器设计之属性管理器   游戏中角色拥有的属性值很多,运营多年的游戏,往往会有很多个成长线,每个属性都有可能被N个成长线模块增减数值。举例当角色戴上武器时候hp+100点,卸下武器时HP-100点,这样加减逻辑只有一处还比较好控制,如果某天有个特殊功能当被某技能攻击时,角色武器会被击落,这样就会出现减数值的操作不止一处。如果逻辑处理不当,比如击落的时候没有恰当的减数值,再次穿戴武器就导致属性值加了两边,也就是玩家经常说的刷属性。这种bug对游戏平衡性影响很大,反响很恶劣,bug又很难被测试发现。本文将介绍一种管理属性的思路,最大限度的避免此类bug,如果出现bug,也能够很好的排查。 ## 设计思路   刷属性bug的核心原因是某功能的模块数值加了N次,所以各个模块加的属性要被记录,加过了必须不能重复加。设计这样的数据结构。 ```cpp //!各个属性对应一个总值 //!各个属性对应各个模块的分值 template class PropCommonMgr { public: typedef T ObjType; typedef int64_t (*functorGet)(ObjType); typedef void (*functorSet)(ObjType, int64_t); struct PropGetterSetter { PropGetterSetter():fGet(NULL), fSet(NULL){} functorGet fGe...
zhaoxinfeng1 发布于 2周前 阅读 14

pygame在mac下的安装

1.安装pip,有pip的同学请跳过 sudo easy_install pip 2.安装pygame pip install pygame --user 3.测试是否安装成功 import pygame print pygame.ver  
MyClassPHP 发布于 2周前 阅读 7

Python玩跳一跳【简】

准备环境: Windows 10; 【有】 安卓手机 【有】 python(版本建议3以上) adb驱动  依赖安装包 Python下载安装【官网下载并安装】 详情参见 Python3.6.4 安装 pip安装 pip用于安装依赖包,Python【版本3以上】中已经有pip功能,cmd命令输入pip验证,出现如下效果说明可以正常使用pip功能 adb驱动安装 adb驱动下载地址:https://adb.clockworkmod.com/ 安装时建议修改安装路径,安装完成后进行验证【cmd命令行输入adb】 源码拷贝 将源码从github拷贝到本地 github地址:https://github.com/wangshub/wechat_jump_game 安装依赖安装包 跳一跳微信辅助的最终运行需要很多的Python模块,作者已经将这些所需要的模块都写在了源码中的requirements.txt中,所以我们执行命令 pip install -r requirements.txt,即可将这些必须的模块下载下来,模块包括有matplotlib,numpy等。 切换到源码解压缩后的目录路径,再执行命令pip install -r requirements.txt 这里我遇到了问题是numpy模块 No module named numpy 我从stackoverflow上查到的方法是,在全局安装numpy pip install numpy 安装完成后再执行命令pip install -r requirements.txt 手机与电脑连接【手脑相连】 将安卓手机...
anlve 发布于 2周前 阅读 92 评论 1

如何预估索引性能?

掌握快速预估索引耗时的能力
wier 发布于 1个月前 阅读 1987 评论 10 点赞 9

Sql优化器究竟帮你做了哪些工作?

关系型数据库的一大优势之一,用户无需关心数据的访问方式,那么优化器是如何做到的,我们要如何优化?
wier 发布于 2个月前 阅读 2974 评论 22 点赞 8

DB——数据的读取和存储方式

数据库是我们常用的一些存储数据的方式,我们从读写来了解RDBMS的存取结构
wier 发布于 2个月前 阅读 2038 评论 5 点赞 6

一致性hash在DynamoDB上的应用

Dynamo是Amazon提供的一个分布式存储NoSQL 数据库,它采用去中心化、松散耦合的方式,组成一个支持高度扩展的Key/Value 数据库,本篇我们着重分析一下,它是如何采用采用一致性hash而达到可高度扩展的。
wier 发布于 2个月前 阅读 1104 评论 1 点赞 1

如何合理的规划一次jvm性能调优

JVM性能调优涉及到方方面面的取舍,往往是牵一发而动全身,需要全盘考虑各方面的影响,那么如何进行一次优雅的调优,提升应用的性能?
wier 发布于 3个月前 阅读 2738 评论 9 点赞 11

jvm优化必知系列——监控工具

项目部署线上之后,我们该如何基于监控工具来快速定位问题....
wier 发布于 3个月前 阅读 4236 评论 14 点赞 18

jvm优化—— 图解垃圾回收

jvm必知系列,总结一些常见jvm回收机制,方便查阅
wier 发布于 3个月前 阅读 5445 评论 21 点赞 20

java多线程——锁

这是多线程系列第四篇,偏重于线程的实践,对锁的几种应用做个简要介绍
wier 发布于 4个月前 阅读 3552 评论 15 点赞 4

java多线程——volatile

java多线程系列第三篇,深入理解volatile的原理以及应用
wier 发布于 5个月前 阅读 3539 评论 11 点赞 6

java 多线程—线程怎么来的?

并发处理的广泛应用是使得amdah1定律代替摩尔定律成为计算机性能发展源动力的根本原因,是人类压榨计算机运算能力的最有力武器。
wier 发布于 5个月前 阅读 4640 评论 5 点赞 9

图解LZ77压缩算法

数据压缩是一个减小数据存储空间的过程,目前被应用在软件工程的各个地方,了解其一些原理,方便我们更好的甄选压缩方案。
wier 发布于 6个月前 阅读 3646 评论 7 点赞 16

游戏服务器架构演进(完整版)

王者荣耀技术分析第三篇,服务器架构模型分析...
wier 发布于 6个月前 阅读 7649 评论 38 点赞 20

从王者荣耀聊聊游戏的帧同步

通过王者荣耀,我们来聊一聊帧MOBA游戏的技术实现以及同步方式
wier 发布于 7个月前 阅读 9658 评论 58 点赞 37

有趣的二进制—高效位运算

位运算是一种比较特别的数学运算。一般情况下,位运算的运算效率比加减乘除等常规数学运算要高得多。此外,位运算具备一些常规数学运算所没有的特点和规律,我们可以利用位运算的相关特性来完成一些非常巧妙的程序设计。
wier 发布于 10个月前 阅读 3559 评论 31 点赞 8

有趣的二进制

优秀应用算法都大量用到位运算,而位运算在工作中很少用到,所以借助其算法,我们看一下位运算的优势以及应用,但是大多数教材只会教大家二进制和十进制如何互换,都是死记硬背式的,并没有去讲解真正含义,换一个进制之后,依然不会,我们回到最根本的一些计数方法上,从10进制来推算,希望用一种更简单的方式介绍其原理
wier 发布于 10个月前 阅读 5294 评论 22 点赞 11

WinformGDI+入门级实例——扫雷游戏(附源码)

本文将作为一个入门级的、结合源码的文章,旨在为刚刚接触GDI+编程或对相关知识感兴趣的读者做一个入门讲解。游戏尚且未完善,但基本功能都有,完整源码在文章结尾中。
穆翔 发布于 1年前 阅读 1515 评论 4 点赞 1

几款 Pokémon Go 开源项目介绍

Pokémon Go是由任天堂发布的增强现实(AR)游戏,一经推出,火遍全球,收获众多玩家。想必很多只猿,也沉浸其中。在这里,介绍几款 Pokémon Go开源项目,感兴趣的猿,可以尝试尝试。
催呀催呀 发布于 1年前 阅读 5692 评论 14 点赞 3

Xgame 合服工具技术设计文档

这是一篇介绍“合服工具”的技术文档;合服工具代码可以参考:https://git.oschina.net/afrxprojs/xgame-php_tool,注意:合服工具使用 PHP 语言开发!为什么使用 PHP,我后面会简要说明;该文档的主要目的是说明开发“合服工具”的思维过程,而不仅仅是使用说明!技术文档的价值在于过程而不是结论;我假定你对游戏行业的技术岗位工作有所了解。如果你亲身参与过游戏合服工作,这篇文档阅读起来可能会比较轻松;这是一篇不合规范的文档,所有符合规范的文档,没有人喜欢读……该文档以“轻松、易读、实用”作为规范;
hjj2017 发布于 2年前 阅读 1074 评论 3 点赞 2

C#程序员整理的Unity 3D笔记(十五):Unity 3D UI控件至尊–NGUI

目前,UGUI问世不过半年(其随着Unity 4.6发布问世),而市面上商用的产品,UI控件的至尊为NGUI:影响力和广度(可搜索公司招聘Unity 3D,常常能看到对NGUI关键词)。 NGUI虽然不是Unity 官方原生的,但以其强大的能力和友好的操作性,成为了事实上的王者—-无他,OnGUI太挫了。
王文刚_AR_VR 发布于 3年前 阅读 16190 评论 4 点赞 7 打赏 1

C#程序员整理的Unity 3D笔记(十三):Unity 3D基于组件的思想

如果你接触过《设计模式》、软件架构的编程思想,就会知道优秀的设计准则:“组合优于继承的”。 这句话很简短,但开始学习OOP的时候,真切的是—-不太好理解(以我个人当初学习为例)。
王文刚_AR_VR 发布于 3年前 阅读 2058 评论 4 点赞 2
顶部