游戏服务端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: , , , ,

java生成唯一ID,相对唯一(15位和32位)的简单实现

星期三, 八月 8th, 2012 | algorithm-learn, JAVA-and-J2EE | 没有评论

好久没有写文章了,在oschina上看到的,感觉挺不错,摘录代码如下:
实际上更多的是根据自己的需求去实现一种不重复的主键,这里只要提供思路,以供借鉴之用.
32位生成方式
› Continue reading

Tags: , ,

上海出租车叫车电话

星期日, 七月 1st, 2012 | 爱上海 | 没有评论

大众 叫车电话:96822
巴士 叫车电话:96840
海博 叫车电话:96933
强生 叫车电话:62580000
锦江 叫车电话:96961

Tags: , , , , , ,

Linux下JDK多版本配置和不同tomcat使用不同的JDK

星期日, 七月 1st, 2012 | JAVA-and-J2EE, linux | 没有评论

要在原有linux系统的java版本为jdk7的系统上安装jira,真是让人头疼.
原因:1.jira 不支持jdk7,值支持到jdk6 (写本文的时候)
这要会引发标题的问题(Linux下JDK多版本配置和不同tomcat使用不同的JDK)
废话不说了.

1.安装jdk6
下载 jdk-6u32-linux-i586.bin,执行解压即可,移动到自己的目录 /usr/local/webserver/jdk1.6.0_32
2.配置 .bash_profile 文件

#cd 
#vi .bash_profile
添加内容
JAVA_OTH_HOME=/usr/local/webserver/jdk1.6.0_32
JRE=$JAVA_OTH_HOME/jre
PATH=$JAVA_OTH_HOME/bin:$JRE/bin:$PATH:$HOME/bin
CLASSPATH=.:$JAVA_OTH_HOME/bin/tools.jar:$JAVA_OTH_HOME/lib/dt.jar
export JAVA_OTH_HOME JRE CLASSPATH PATH

3.修改tomcat配置bin下启动文件
# cd /usr/local/webserver/apache-tomcat-6.0.35/bin
#vi catalina.sh
在开始或者你想加的地方加上
JAVA_HOME=$JAVA_OTH_HOME
更多的分配内存能配置也在此处加(不讲)

4.修改端口配置文件
#cd /usr/local/webserver/apache-tomcat-6.0.35/conf
#vi server.xml
修改 8005,8080,8443,8009
启动 tomca即可 ,可以看到使用的
Using CATALINA_BASE: /usr/local/webserver/apache-tomcat-6.0.35
Using CATALINA_HOME: /usr/local/webserver/apache-tomcat-6.0.35
Using CATALINA_TMPDIR: /usr/local/webserver/apache-tomcat-6.0.35/temp
Using JRE_HOME: /usr/local/webserver/jdk1.6.0_32
Using CLASSPATH: /usr/local/webserver/apache-tomcat-6.0.35/bin/bootstrap.jar
搞定~

Tags: , ,

为win7系统盘(C)找回点空间

星期二, 六月 12th, 2012 | computer | 没有评论

当初装win7时候 只留了50G做系统用,现在发现可怜的系统盘只有4G了,无奈下只有想办法弄会点空间,只要通过 调整虚拟内存的方式
调整Win7虚拟内存设置解决系统所在分区容量变大—找回近10G的空间

一、原因分析

  一般这种情况可以首先检查虚拟内存的设置。通常情况下,在未做针对系统的相关优化前,初次安装完成后虚拟内存都是默认由系统来管理的。比如你电脑配置的是8GB内存,那么win7系统就会在系统所在分区中自动划分出一个8GB的存储区域,随着使用时间的延长,这个容量值就会越来越大,这也就会造成win7系统所在分区容量一天天变大了。

二、调整Win7虚拟内存设置

  既想让64位Win7系统的虚拟内存发挥作用,同时又想避免过高的占用系统所在分区的容量,简单的方法就是修改虚拟内存的设置。比如将其转移到其他非系统分区中即可。具体调整步骤如下:

  STEP1:右键单击桌面“计算机”图标,选择“属性”命令进入后,在打开的窗口界面左方单击“高级系统设置”;然后再在“系统属性”对话框下单击“性能”栏中的“设置”按钮,:
› Continue reading

Tags: , , ,

vps开设最低权限的ssh帐号,用于上网代理

星期六, 六月 2nd, 2012 | computer, linux | 没有评论

首先辅助一个linux下怎样显示所有用户名的吗命令

awk -F: '{print $1}' /etc/passwd

1,增加一个linux用户,并赋予该用户一个nologin的shell权限。

useradd username -s /sbin/nologin

2,设置该用户密码。

passwd username

3,如果需要经常建立这种账户的话,建立一个脚本方便自己的操作。

通过ssh终端root权限连接到vps后输入:
vi ssh.sh
编辑一个sh文件
打开后,按 i 键进入编辑模式。
然后将下面内容复制进去(终端内点下鼠标右键即可复制)

#!/bin/bash
cat >> /etc/shells << END
/sbin/nologin
END
useradd $1 -s /sbin/nologin
echo $1:$2 | chpasswd

然后保存退出编辑模式。
这样,输入下面命令就可以方便建立ssh代理帐号:
bash ssh.sh username password
› Continue reading

Tags: ,

iis与apache共存

星期一, 五月 28th, 2012 | pagemaker | 没有评论

在window2003下安装apache出现系统无法找到apache2的解决方案

在window2003 下安装apache出现系统无法找到apache2的解决方案

启动apache时系统找不到指定的文件

(windows)启动apache时 显示:

[error] (OS 2)系统找不到指定的文件。 : No installed

:No installed service named “Apache2″的错误

解决方案:

将IIS停掉(打开services,找到iis服务管理器,停止),重新安装apache;(IIS admin 服务项)

修改默认端口 (/apache2/conf/httpd.conf)

重新启动apache

Tags: , ,

win7下配置IIS7.5支持php

星期日, 五月 27th, 2012 | enterprise, pagemaker | 没有评论

要在iis下支持php应用,在win7的iis7.5版本,在网上找到一个很方便的方法,一试就成功,记录下,方便以后自己重新配置

1.首先确认IIS中启用了CGI功能:

2.IIS 7.5中为了易于PHP程序的安装,增设了PHP Manager模块。只要您简单设定,其它的工作自动到位!下载地址:http://phpmanager.codeplex.com/releases/view/62183,安装。

3.再开启IIS,会发现里面多了一个PHP Manager图标项了。(点击上面的那个图可以发现已经有了)

4.到http://php.net/downloads.php 下载最新的php版本(此处以php5.4.3为例)。我们下载【VC9 x86 Non Thread Safe】这个版本的zip包就好。(顺便说下iis使用的是vc9的,如果是apache现在还要使用vc6的)
然后,解压到E:\PHP5.4.3中就可以了

5.配置文件修改。

将php.ini-development改名为php.ini

修改php.ini 查找data.timezone 修改为date.timezone = “Asia/Shanghai”(这里必须改,不然会出警告)

找到Windows Extensions开启 所需模块,如:php_curl.dll php_mysql.dll php_mysqli.dll php_xmlrpc.dll php_curl.dll 只要去掉前面的 分号 保存就可以了
› Continue reading

Tags: , , , ,

php连接非默认端口(1433,3306)的连接函数参数写法.

星期五, 五月 25th, 2012 | php | 没有评论

使用php连接sqlserver 数据库,修改了端口非1433了:

更改了默认的1433端口号,则IP地址后面加端口号,用,号隔开,不是:号,如
$linkId = mssql_connect(‘IP地址,端口号’,’用户名’,’密码’);
值得注意的是mysql_connect使用的是:号
记忆下,在手册上也没有写清楚,真是麻烦.

Tags: ,

Search

文章分类

Links

Meta