webgame

webgame遭遇double free or corruption (!prev):

星期二, 十二月 4th, 2012 | linux, webgame, 游戏开发 | 没有评论

游戏在内测的时候遭遇到double free or corruption (!prev):
单从上面的理解很简单就是说 有地方调了2次 free();的内存释放函数.
查了下,这种低级错误的可能性不大,但是游戏的环境是在 一个多线程的代码,在主线程中申请了一块内存,在另一个线程中释放内存,估计是这个原因.

*** glibc detected *** /home/sara/webgame/t1: double free or corruption (!prev): 0x090634c8 ***
======= Backtrace: =========
/lib/libc.so.6[0x7c7261]
/home/sara/webgame/t1[0x804891e]
/home/sara/webgame/t1[0x9804fb0]
/lib/libpthread.so.0[0x8dcab5]
/lib/libc.so.6(clone+0x5e)[0x83383e]
00759000-008c7000 r-xp 00000000 fd:00 158979 /lib/libc-2.11.so
008c7000-008c8000 —p 0016e000 fd:00 158979 /lib/libc-2.11.so
008c8000-008ca000 r–p 0016e000 fd:00 158979 /lib/libc-2.11.so
008ca000-008cb000 rw-p 00170000 fd:00 158979 /lib/libc-2.11.so

进过排查和结合网上的遇到的说明修正如下函数:(另:可以在你做free()的统一函数地方做赋值指针为null做检测)
› Continue reading

Tags: , ,

游戏服务端C/C++与脚本语言(php,Lua,Squirrel)共服务

星期五, 八月 31st, 2012 | webgame, 游戏开发 | 一条评论

前两年一直用java做页游的服务端编程,也没有想过对应的语言混合编程,毕竟java可以一种搞定,效率上也还不错.
现在就职的技术老大以前是做客户端游戏出身的,c/c++功力比较牛,技术上就采用 c + Squirrel(一种类似Lua的脚本),刚好在网上看到有人提出为什么要脚本加C,简要回答记录下.

实际上只要底层通信和数据层做好对应的框架后(c封装并提供接口),游戏开发的关键还主要在 对策划功能的理解和实现,即功能实现的设计方案,主要业务逻辑的处理,偶尔也要呼唤底层c的支持而已. 个人的一点认识.

提问:
游戏服务端程序使用PHP与C交互实现与客户端通信,C负责实现处理聊天频道、地图、组队什么的,为什么要这么设计?使用PHP直接与客户端交互不行吗,或者只使用C。各负责什么模块,在这些方面有什么优势?

简要回答:
1.个人认为从语言特性,开发成本,以及项目组人员构成等方面考虑,这么设计应该是可以理解的。
C言语开发的工具运行效率高,但开发难度大,而像游戏中的聊天、地图、组队等功能其实各游戏之间的差别不会特别大,有经验的开发人员可以很容易的将别的游戏类似功能组件移植过来使用。
php言语开发的功能运行效率稍差,但开发成本要低得多,调整灵活,用php来处理一下业务逻辑是非常适合的。
另外像我们公司的游戏的一些对外接口,如跟平台之间的交互接口,我们平台部这边也一般是建议他们使用php来进行开发的。
对于做架构,我个人认为言语并不是最重要的,系统的瓶颈往往也不是因为某种语言,可以根据不同的需要使用不同的语言来进行灵活处理。
› Continue reading

Tags: , , , , , ,

云时代的到来之Cloud对网页游戏开发的影响

星期一, 八月 27th, 2012 | webgame | 没有评论

现在facebook上有不少游戏已经开始使用amazon的aws来部署游戏,我们作为国内的WEBGAME Designer需要做好准备.

对于创业性的团队来说可以考虑之,既能减少成本开始还提供一定的稳定性,做好定时的数据备份就可以保证游戏的服务稳定性了.

云计算我们可以省却很多以前需要考虑的事:
1、安全。云计算提供了最可靠、最安全的数据存储中心,用户不用再担心数据丢失、病毒入侵等麻烦。
2、性能扩展。云计算扩展性能非常容易,当我们游戏某处出现瓶颈时,只要申请增加相应的资源就行。

这样我们就可以把更多精力放到了游戏的设计及开发上了。
另外一个方面,由于云计算使用数据存储方式、部署架构等都跟我们传统的不一样,所以在做游戏开发时,也需要针对不同的变化采用不同的实现方式。

使用云计算的方式在维护也节省了不少时间,还获得动态伸缩的能力,这是最大的优点。

但是我觉得对小的游戏开发者来说这是一个优点,但是有一个很大的问题是不可控。

比如亚马逊服务器宕机事件发生时,如果没有备份和应对机制,对大的游戏厂商来说这就是大灾难

Tags: , , , ,

Webgame编程从入门到精通

星期六, 五月 5th, 2012 | webgame | 没有评论

先说下,有点标题党了,摘录于webgame研究室讨论群
本总结原来总结于 2008年,今天翻出来还是有一定的指导意义的,除了在程序方面分了前端和后端,其他还是相当有意义的
标注 部分 为本人根据现在情况进行的跟进分析.
精通路径如下:

1. 潜心学习一门适合于做web的语言。以ASP,PHP,JSP,3P技术其中任意一门即可。
学会了再说,否则免谈。
注:就目前的情况已经分出
i.前端 (FLASH即AS(为主) 或者 unity3d 等)
ii.服务端 (基于http协议的3P或者基于 TCP 的c/c++/java等)
一人独揽整个系统的能力被大大放大了,需要团队紧密配合了

2. 专研一种数据库产品,以mssql , mysql , oracle其中任意一种即可。
学会了继续,否则免谈。
注:如果足够牛,用文件 xml等也可以实现,我看很多做端游 转过来的,还不是以数据库为主要驱动

3. 考验自己。如果能随手就做个小型的交互式网站,完成一定规模的任务。那就差不多可以做个入门级的Webgame了。
能干了继续,否则免谈。

4. 专研数据结构和算法。游戏是对世界的模拟,数据是世界的抽象,规则是运行的约束。
这一切都是算法和数据结构。
如果你看不到游戏运行的本质,还是继续免谈。

5. 深刻思考游戏编程的机理。游戏也是软件,从工程学的角度来说,你需要一个范围,需要完成一些功能,需要划分软件层次,需要组织编码。
如果你要投入编程,请用软件工程的策略认真思考问题。否则免谈。
› Continue reading

Tags: , , ,

盘点(webgame)网页游戏的那点人、那点事

星期五, 十二月 23rd, 2011 | webgame | 没有评论

自己一直在页游从事服务端开发,算下来也有快4年的时间了,也看到很多知名的页游一个一个的冒出,刷新一个又一个的运行神话,
开创游戏的新模式等,在网络看到别人盘点的人物,也记录一下,以下内容来源于网络:

1、第七大道《弹弹堂》曹凯(全球月收入据传过亿RMB)

站长出身,此前从来没做过游戏,游戏业务自学成才,你问曹凯什么是MMORPG,他的回答是:“我不懂这个的”。也许是南方互联网行业务实,勤奋,刻苦的精神让第七大道在曹凯的带领下从几个人的创业公司发展成如今几十万游戏在线,全球月收入过亿,并高价被搜狐畅游收购的辉煌今天。

2、游戏谷《七雄争霸》邱果(月收入1亿元RMB)

自从业以来所从事的项目无一例外的获得了成功,入行时期作为项目普通成员参与了《天龙八部》并担任数值策划。后创业担任《英雄之门》主策划,在2008年的时候此游戏月收入500万还是非常成功的。在到如今月收入过亿的,在线80万的《七雄争霸》更是让无数的人明白原来网页游戏还有这么大的想象空间。

3、天神互动《傲剑》陈默(月收入6000万RMB)

非常有才华的游戏制作人,早年从事多年传奇私服运营,长期接触用户,使陈默对用户的把握和了解程度在国内网页游戏圈无人能比肩。后经过成都梦工场裘新的言传身教,得到正规化训练后的陈默在接手《傲剑》时把团队所有策划开除,一人用4个月时间把整个项目重构,完成所有策划案,最终使游戏上线大获成功。

4、光环众《神仙道》叶斌(月收入4600万RMB)

网站站长出身,此前从来没做过游戏,凭借多年网站经营中长期接触用户的实战中对用户的了解非常到位,首次做游戏就获得如此巨大的成功。这和叶斌多年站长经验密不可分,深刻的把握到要获得广大用户的支持和喜爱,游戏应该做到什么样的体验。

5、上海锐战《傲视天地》赵中毅(月收入3300万RMB)

赵中毅原先在九城《纵横九州》项目时,成绩也非常糟糕,但这并不影响他后来完成如此影响深远的《傲视天地》,可以说他开创了SLG网页游戏的一个新的时代。也让众人发现,原来网页游戏可以做成单机这样,原来网游是可以没有交易的,战斗可以这样做的。
› Continue reading

Tags: , , , ,

java中的log的那点事–记游戏中比赛分组

星期二, 十一月 8th, 2011 | JAVA-and-J2EE, webgame | 没有评论

一直不怎么用java中的math的函数,但是用起来才感觉真的很好用,下面就是一个分组的最大上限的回调函数;
即是2的n此方的分组取上最多分组
public static int getUpNum(int applyNum){
double b=Math.log(applyNum)/Math.log(2);
double c=Math.ceil(b);
double n=Math.pow(2, c);
return Double.valueOf(n).intValue();
}
获得此值, 就可以获取最大分组数,和第一次直接晋级人数,比赛的轮数,第一局的人数等等信息(有点晕吧,游戏中比赛的分组逻辑,算是webgame巡回赛[争霸赛]中比较重要的分组函数)

Tags: , , ,

写了个<食神小当家>游戏的通讯插件

星期四, 十一月 25th, 2010 | webgame | 没有评论

《食神小当家》,是自己所在的网络公司开发的一款,模拟经营类游戏,美食经营搭配实景地图,涵盖吃饭系统,装潢系统,约会,赛车,宠物,还有将要推出的结婚系统,比较休闲的女性玩家超多的;(顺便给公司游戏也宣传下)

自己在游戏做服务端开发,今天有点时间,就根据通讯协议写个直接连接的通信插件,测试了下,能正常通过进入系统;(前提是我知道对应的加密方式,呵呵),做起来也就不复杂了,反正都是使用TCP协议嘛,就试试client端和server端的对接,两面都ok,感觉还是蛮好的!(注:RP很好,不会做不正行为的!\(^o^)/~)

Tags: , ,

webgame的开发烦恼之多

星期一, 九月 28th, 2009 | Database, JAVA-and-J2EE | 2 Comments

做webgame开发遇到很多以前做软件时候不需要考虑的问题,面对高并发,外接任务的等灵活对接;
不单需要考虑的实现快速,还要考虑快速的扩展;
既要保证程序的快速实现,又要确实减少数据库的压力;
游戏的引擎设计很大程度上决定了你的产品上线后能应付多大的高并发,对应数据库的优化配置
貌似简单,不知道里面凝结多少智慧和汗水,也行这就是经验探索~~~~

聊记下:将近一个月的疯狂加班的思索和重构的欲望

Tags: , ,

Search

文章分类

Links

Meta