Category: Game

  • Ubuntu 9.10 下安装 OpenTTD 1.0.0 中文版

    OpenTTD是开源版本的《运输大亨》,这两天刚刚发布了 1.0.0,中文汉化很完整。经本人验证,使用官方提供的 deb 包安装后,对于中文的显示需要小小调整。本着 Mr’Hu 的 BuZheTeng 原理,现记录一下较为简单的安装过程。 (more…)

  • [翻译]游戏引擎即服务

    在赖神的 Google Reader 的分享中看到,觉得很有意义。或许可以作为现有的大量的游戏平台的下一步发展方向吧。结合SaaS的思想,以及网络游戏的实际运营模式,特别是webgame。将游戏底层技术支撑和游戏的策划、运营上端建筑分离应该会是一个很有前景的事情。

    为了分享给更多的朋友,特别的翻译一下。

    ————————————————–开心翻译分界线,下面是未来————————————————– (more…)

  • Achron,新的战略?

    昨天看到Solidot的一篇报道:Solidot | Achron:基于时间旅行的即时战略游戏看起来很有意思的样子。于是晚上抽空看了视频和开发人员的采访(http://www.escapistmagazine.com/videos/view/the-escapist-show/890-Episode-43-Hazardous-Softwares-Achron)。

    从视频上看,似乎是将游戏按照时间线进行记录。玩家可以跳转到之前的时间线修改自己的行为,这种修改立刻就会对现有的战斗格局产生影响。看起来很有趣的样子。

    不过我觉得,这更类似一种geek行为。或许那些梦想自己能进行时间旅行的geek会热衷于这个游戏。对于普通玩家,这款游戏在时间跳跃的基础上,对于思维的要求明显有些过高了。

    我个人还是比较期待这个游戏的,我非常希望知道他们是如何设计时间线逆转这种反常规的行为。尤其是如何平衡游戏可玩度和时间跳跃这种非常逻辑的事情的关系。

    记得有一种时间旅行的观点提出,改变一个过去的事件,不会对现有世界、当前时间产生影响。而在改变的那个时间点,世界分叉了。变成了并行的互不干扰的两个平行世界。

    这很类似SVN管理的分支概念……

    不扯淡,上图,大家臆想一下:

  • Bang!Howdy,用 JMonkey Engine 开发的多人在线游戏

    我曾经跟一个朋友说过,用 java来做游戏开发。他非常鄙视(他不是搞技术的,我也不知道他从哪里得到的消息说 java 不能做游戏)。

    于是我只能自己关注以下 JMonkey Engine,或者在家玩一下 darkstar 过瘾了。

    Bang!Howdy 这个游戏在看 JMonkey Engine 的时候看到过介绍,今天无意点到了它的广告。于是心血来潮安装了一下。感谢上帝,java可以装在 linux 下。

    使用 Java Web Start 也可以嵌入浏览器内玩,这算不算 webgame?

    先上靓图一张。

    http://www.banghowdy.com/launch.html

    bang

    玩起来效果不错,除了网络有点卡。

    不知道后端是用的哪个通讯框架实现。不过看 darkstar 的 demo 项目,JME和darkstar在开发3D MMO也算不错的组合。

    现在看,将来的 webgame 技术上会有两个分支,一个 java 的 web start,一个 flash。

  • 在游戏中使用脚本语言

    这只是一个有趣的探索,demo 使用 java 编写。模拟了一个龙与地下城类 RPG 游戏中,在不同的房间内移动的简单游戏场景。

    阅读本文前,首先下载使用 Netbeans 6.5 建立的完整项目代码:下载。然后,我会用 UML 图的方式来说明如何在游戏中使用脚本,其中可能还会简介一下游戏中实体对象的建立和管理(不知道值得不值得另外写一篇文章来介绍了)。

    I have a dream… (more…)

  • 关于 web game 运算负载的只言片语

    没办法整理成长篇大论了,就写点只言片语吧。
    起因看这里:http://www.javaeye.com/topic/305801?page=1
    -----------------
    看了一遍,忍不住了,插句嘴~~

    webgame 根本没有,也不需要什么大量实时数据要处理~~

    例如类似部落战争的行军,这个其实早就根据所选兵种、指挥官、宝物等等生成了一个事件存放在事件队列中(可能是内存对象、可能是某种数据缓存更有可能是数据库的某条记录),然后服务器在那个事件事件到达的时候取出事件对象执行一下,得到一个结果,接着存起来。至于行军途中到哪个位置如何如何,那是给玩家想象的,服务器根本不管。总之,事件运算有三种方式:1。玩家请求时已经运算完成,到了特定时间通知玩家。2。事件执行时间运算完成,并通知玩家。3。在服务器空闲时,处理待处理的运算,到了特定时间通知玩家。

    webgame, MMO 实时性不是首先考虑的。例如资源增长,如果服务器有 10W 激活用户,在同一时间增长资源是几乎不可能的。那就将一分钟划分60秒(废话),每秒开一个新线程来处理一部分用户(10W/60)的资源增长。资源增长基本上就是浮点数加减乘除,对于现在的 cpu 来说,并不是很高。何况服务器 N 个 cpu……

    简单的说,webgame 不像 MMO 需要“随时”客户端跟服务器端通讯。更多情况,web 服务器通过某种方式从 game server 中获得一个当前游戏状态的快照返回到浏览器。并从浏览器接收数据,然后在一个可接受的,合理的时间内去修改 game server 的状态。请再次注意,again!这不是“实时”的!

    最后再罗嗦一下,webgame 的 game server 更多情况下是一个 task server。它不需要去预测客户端行为,也不需要计算碰撞、寻找可行路径……
    另外,我个人的体会,RPG 类型的 webgame 在运算负载上来说,远小于策略形的。并且通常只需要 3 台服务器配合:web server、task server、db server。

    哦,还有,如果用 flash 的 socket 方式开发,不在上述范围内。当这种模式是个客户端能力稍差的 MMO 好了。