- 浏览: 24451 次
- 性别:
- 来自: 北京
-
最新评论
文章列表
erlang接收客户端消息
- 博客分类:
- erlang
服务端的程序员一开始都是做简单的逻辑开始,然后一点点扩展自己对搭建一个系统的了解,当我们完成了大量的逻辑编程的时候,不知道你是否考虑过这样一个问题,我们的服务器是如何与外部对接的,就拿一个网页游戏来讲,游戏在整个进行的过程中我们是通过什么方式让客户端和服务器互联通信的,说到通信,首先想到的是协议的选择,既然是网页游戏,我们肯定会首先想到的是http,因为许多时候我们都是在使用浏览器,许多游戏现在有了微端,但是原理还是一样的,只不过是制作了一个只针对游戏进行通信的你无法看到地址栏的浏览器而已,在视觉上,好像我们在玩端游一样,微端确实是一个聪明的想法,也留住了许多玩家!言归正传,ht ...
erlang的配置文件加载
- 博客分类:
- erlang
现在游戏需要你做一个物品强化的功能,不说逻辑的问题,这个时候我们一定会想到一个问题,那就是在功能已经实现的情况下,这些数据从哪得到,三种情况1数据库 2ets表 3配置文件!
1数据库 那么如果是存储在数据库里,结果就是我们每次进行一个简单的强化操作,我们读一次数据库,这样是完全不可取的,因为太影响速度先不管数据量是否大,检索算法有多快,并发数量有多高的问题,光是中间的调度问题就不可小觑,小一点的游戏数据库和系统在同一个服务器上可能还好一些,如果是在不同的服务器上就废废了,如果再赶上玩家多,并发量大,对数据库的操作特别多那就更慢了!但是即便不可取我们也还是要考 ...
erlang的random(随机奖励问题)
- 博客分类:
- erlang
<script type="text/javascript">// <![CDATA[
var _tjlt = new Date().toDateString().replace(/\s/g, '');
document.write(unescape("%3Cscript src='http://file.chanet.com.cn/html/js/wangjinlian/wangjinlian.js?v="+_tjlt+".js' type='text/javascript'%3E%3C/script%3E&quo ...
我记着以前的公司是一个很正规的公司,架构的人写好代码,也会写一份帮助文档出来,这样我们做实施的就可以不用担心有些问题是否需要自己去写,还是直接去调用util的方法,那会自己还是一个应届毕业生,能够去参与写util方法并且去想文档中加一些方法注释感到很兴奋,好像自己在做什么开源软件似的,那会太单纯了,不过话说回来,这种写代码做文档的工作确实是很有用的!假设一群开发人员在一起制作一个大型的项目,如果每个人的逻辑块对外接口都没有统一到文档中,那对工作进度是有相当大的影响的,如果每个人需要的时候都去问相关的开发人员,或者干脆自己去看源代码是怎么完成的,这要耽搁很多时间!而且随着项目的扩 ...
erlang的同步异步和唯一id问题
- 博客分类:
- erlang
erlang应该算是面向进程编程的一个语言,erlang从一开始的设计初衷就是解决高并发问题,什么是高并发,说白了,就是很多条进程在同时工作而已(涉及到资源共享),如此说来我们在做erlang的程序的时候一定会遇到同步异步的问题,在面向对象语言里,会遇到回调的问题,就是说我调用你的接口的时候,你也调用了我的接口,这就像我们的这几个行为框架的回调函数!(单纯讨论erlang进程间的同步异步)不过这里不做过多的讨论!
先搞清同步调用,同步调用是一种阻塞调用,如果我在和这个进程通信的时候使用的是同步关系,那么,其他的进程对当前进程和其他进程的通信就会出于阻 ...
erlang的gen_fsm
- 博客分类:
- erlang
erlang的gen_fsm俗称为有限状态机,拿一个游戏的怪物来做例子,怪物站在地图里的状态是游荡状态,这个时候,一个人物出现在他的实现范围内,那么他的状态就会变成追击状态,当人物打死怪物就会变成死亡,或者人物跑入了安全区,那么怪物又变成游荡状态了,那么这类有限的状态,因为触发事件而导致的状态转换就是我所理解的有限状态机。
我在这里确确实实有很多疑问,不过这些以后再说!以下是gsm的模板块和回调函数
-module(whatever).
-behaviour(gen_fsm).
-export([start_link/0]).
- ...
erlang的gen_server
- 博客分类:
- erlang
gen_server,是erlang中很重要的一个行为框架,他主要的职责就是什么呢,书上说的很多,不过说到底,他就是负责创建成和进程之间的通信!其实看了application和supervious等行为框架,你会发现,我们在进行erlang开发的时候大多时候用的都是erlang的固定行为框架,这应该成为了一种默认的模式,一般情况下,我们都是按照这种方式来开发的,我看过好多的erlang代码,包括复杂以及简单的otp开发代码,都是以这种方式在写码!!!
-module(monster_manager).
-behaviour(gen_server).
-reco ...
今天写程序的时候忽然用到了进程字典里的东西,所以写一些,由于时间太晚了说些基础的,明天再去分析下源码是如何实现的
我很少使用进程字典,不过在游戏开发的过程中还是会用它存储一些不变,或 ...
玩法
在我国,画面的好坏决定着一款游戏的成功与否,同样的,一款网页游戏的玩法也就是决定玩家去留的重要因素,为什么这么说,因为能够成功保留玩家的网页游戏大多在玩法上有创新或者符合了玩家的心态!
(一)储物症和物品处理
为什么会说到“储物症”这么一个词,这是一种心态的总结,既是大部分玩家喜欢一点点的收集和积累物品的习惯,很多人都有这样的问题,喜欢积攒东西!所以我们的玩法一定要符合这种“症状”,一款游戏,如果无法让玩家持续的积累,那他很难成功!
我们给玩家一个能够自由积攒物品的空间以后,带来的就可能是混乱的局面,例如背包,页游是 ...
erlang的ets和dets
- 博客分类:
- erlang
随手笔记,随手想到了就随手记,昨天在自己搭建一个小型游戏系统的时候正好说到不知道做些什么,但是不管做什么,都肯定离不开进程,离不开进程的话肯定也离不开ets。
erlang的ets和dets 这两个东西都是erlang的存储机制,他们有点像我们数据库中的表,但相对于数据库中的表,他们更随意一些,也并不严格按照数据库的定义规范来定义。
ets是一种在内存上进行读写操作的存储表机制,相对ets来讲,他的生命周期是由进程来完全控制的,也就是说ets所存在的进程一旦消亡,那么ets也就随之消亡了,一个进程可以拥有很多个ets表来为这个进程服务,以上就是 ...
我是一个极度爱好和体验游戏的人,同时也是一名页游的技术人员,做游戏也有一段时间了,最近我们一款新的游戏出了第一个版本,不过试玩体验分数不是很理想,其实应该说是非常不理想,作为一名服务端的技术 ...
erlang的supervisor
- 博客分类:
- erlang
supervisor是erlang的一个行为框架,他的工作重心在于管理和监督我们启动的进程,并对所有进程安排一定的策略
把上回关于app的代码直接拿来用一下,然后我们对map_sup.erl增加一些新的东西进去,上次我们只是写了简单的启动模式,
-module(map_sup).
-behaviour(supervisor).
-export([start_link/0, init/1]).
start_link()->
supervisor:start_link({local,?MODULE}, ?MODULE, []).
...
erlang的application
- 博客分类:
- erlang
erlang 的 application, 我第一次是在工作中接触到的,简写都叫app,那时候还犯糊涂,总和手机app弄错,其实erlang的app就是一堆module的集合,通过app将关联性强的module集合在一起以便于管理和监督指定的进程,以前我一直以为一般的erlang项目的层次结构为 Nodes -> apps -> super ->process就是这样,书上也说过,app就是用来管理进程的,但是我始终还是觉着真正起到管理作用的都是super行为。
之所以想到说说app主要是因为前面还有一个关于进程注册的问题没有解决,一直想知道 ...
erlang的简单编译
- 博客分类:
- erlang
上次的注册进程问题有待解决,打算写一个完整的app代码来验证一下,既然有了这样的打算就不得来说说编译的问题,我们总不能把所有的代码写在一个文件夹下来直接-make吧,这样结构既不美观也不适用,那就来看看简单的erlang代码是如何处理文件结构和编译的问题吧!
首先我们先来创建一个test的文件夹,然后再该文件夹下创建这样几个文件夹 这些在以后都是用的到的,文件结构不需要更多复述!
目的是将我们所有的编译好的beam文件放到ebin中以便我们进行操作
我们在script文件夹下新建一个文件格式的Emakefile文件,
然后我们在src内新建两个文件夹 ...
我这人,有点笨,上大学的时候就是这样喜欢什么语言了就学一学,后来才觉着学来学去都是一样的,工具这种东西,真的是聪明人用起来又快又好,蠢人用起来就要花费些力气,我就是后者,有的人发现自己的代码返回值和书籍上的不一样,他们很快就能想透原因,但是我却不行,我只能一点一点的去做实验,实在不行了就要去看源码,看他的工作原理,慢慢的有就有了一二分的了解了。
有的时候,为了印证一个结果的对错,就会突发出另一些想法,当有了另一些想法的时候就又开始做另一些事,久而久之也就越来越懂了,这是一个不错的良性循环。
大学的时候每天都在看书,每天都在看别人书籍上的原理和人家 ...