May 01

我们知道, id Software 公司把它的著名的游戏"雷神之锤2(Quake II)"的 C 语言代码开源了. 之后, 很多的个人和公司开始修改这些代码, 发布基于 Quake 代码的产品. 而 Bytonic Software 公司把它移植到了 Java 下, 也就是用 Java 语言写了一个 Quake(Jake2 项目).

现在, 有一个开源的项目(Quake II GWT Port)把 Quake 搬到了浏览器上, 当然, 只有新的现代浏览器才支持, 如特定版本的 Google Chrome.

  1. 首先, 利用 Google Web Toolkit(GWT), 把 Java 版的 Quake 转成 JavaScript 代码在浏览器执行.
  2. 其次, 使用 WebGL 代替 OpenGL, DirectX 等接口的渲染方式.
  3. 原来的 UDP 通信也改成浏览器支持的 WebSocket API.

这个项目包含一个 Mac 和 Linux 下的服务器端. 浏览器可运行在 Mac, Linux, Windows 平台.

Written by benegg at 2010-05-01 12:00:39 | tags: ,

Apr 30

从BT下载的统计来看, PC和Xbox 360平台上的"使命召唤: 现代战争2(Call of Duty: Modern Warfare 2)"无疑是最大赢家. 而"新超级马里奥兄弟(New Super Mario Bros.)"则是处在Wii平台的榜首.

事实上, "现代战争2"在美国和英国市场上, 24小时之内就卖出了470万份拷贝. 然后, 5天内销售额就达到5亿5千万美元, 打破了之前的记录保持者"哈里-波特(Harry Potter)"和"混血王子(Half-Blood Prince)"(只有3亿9千4百万)和"黑暗骑士(The Dark Knight)"(只有2亿零3百80万).

Continue reading »

Written by benegg at 2010-04-30 23:18:46 | tags: ,

Mar 25

首先, 向各位订阅游戏开发博客(benegg.com)的朋友道歉, 4个月都没有发表新文章了.

最近, 想给Lighttpd做一个用来封IP的插件, 当然, 后期还会有其它功能, 比如连接限制, 防火墙等. 那么, 首先要明白Lighttpd的结构, 知道在哪里加入代码. 了解如下:

// network.c
handler_t network_server_handle_fdevent(void *s, void *context, int revents){
	con = connection_accept(srv, srv_socket);
	connection_state_machine(srv, con);
	plugins_call_handle_joblist(srv, con);
}

// server.c
main(){
	foreach(connection as con){
		connection_state_machine(srv, con);
		plugins_call_handle_joblist(srv, con);
	}
}

Continue reading »

Written by benegg at 2010-03-25 13:44:01

Nov 15

在大概8到10年前, 2D的单机游戏盛行, 游戏重视的是可玩性. 那时候, 只要掌握了图像的移动, 再加一个好的创意, 几乎就能开发一款不错的游戏. 那些游戏, 瓶颈在于创意和计算机的速度.

而到了网络游戏, 特别是MMORPG, 需要的技术可就复杂多了, 甚至比Web开发所需要的技术还多得多了. 几乎从网络知识, 到操作系统, C语言, 脚本, 数据库, 3D等等. 但是, 现在的所谓的MMORPG引擎, 似乎就是图形引擎, 至少图形引擎的内容点整个"游戏引擎"的80%以上, 而在网络, 系统存储, 开发模式等非常少.

按我的理解, MMORPG开发的本质是实现一个超大规模的网络计算机. 这样想, 如果你有一个计算机, 网络带宽达到1T, 内存有1T, CPU能力相当于100个当下主流CPU, 那么, 我们就可以很容易实现一个能容纳10万人同时在线的"无缝世界"的网游. 因为, 这样的一个计算机, 你在内存中保存着对应客户端的"对象", 你可以非常快速地对这些对象进行创建, 查找, 更新, 删除操作, 以及网络接收和发送. 这就是所有的计算机应用的本质.

Written by benegg at 2009-11-15 12:19:16