先从开发语言说起吧。
PHP,JAVA,.NET等都可以作为页游的WEB SERVICE来提供短连接服务。
数据库么,当然MYSQL,MSSQL等都可以。
UI/UE么,应该有JS+CSS+HTML,FLEX,SL,UNITY3D等等。
长连接服务器,如果是JAVA可以用MINA,C#可以用AsynSocketArgs,PHP Erlang,C++写IOCP等。最好是采用异步网络套接字,这样负载性能要高很多。
说说组合吧。
PHP+MYSQL 现在应该是最多的,性能比较好,开发速度也快,而且所有软件基本免费。在海外运营可以不涉及版权问题。长连接服务器需要有其他语言来支持了,C++比较多,JAVA也有,Erlang据说负载灰常强悍(没研究过)。在WEB和数据库都有较好的负载均衡的解决方案。
JAVA+MYSQL 性能也不错,而且直接可以用JAVA来做长连接服务器,软件环境基本和PHP+MYSQL差不多,负载均衡也不是什么问题,也是基本全部开源环境。
.NET+MSSQL OR .NET+MYSQL .NET总的来说开发速度灰常的快,而且能够可开发的应用形态比较多。性能上在WINDOWS 2008+IIS7+.NET4.0的环境下有了灰常大幅度的提高,但是微软这套平台可以做到WEB的负载均衡,但是MSSQL数据库现在没有什么好的性能的负载均衡的解决方案。所以有一些人考虑到性能时会选用MYSQL作为数据库使用。因为是微软的平台,在海外运营时系统环境的正版费用要计算进去了。
分布式缓存
比较好的解决数据库性能压力的一个东西。不做过多的介绍了。不明白的可以去百&谷。
MemCached,这个东西大家应该都了解的吧。PHP,MYSQL,.NET都可以用的。
在微软的平台下还有一个叫做AppFabric的东西,感兴趣的可以去百&谷。
与FLEX或者SL的通信。
通信主要分为短连接和长连接。为什么叫长短,不做解释。
短连接可以用HTTP直接访问页面地址,也可以使用诸如REMOTING此类的通信工具,当然也可以访问WEB SERVCIE,如果是SL还可以使用WCF。
长连接就不用说了,现在只有TCP。
数据协议格式
可以直接使用字符流,也可以使用XML,JSON,AMF。
PS:长连接需要关注粘包的处理。
我们需要关注的
我们选用的技术架构的开发速度,游戏系统的负载能力,运维时期的维护方便性,代码的可维护性。容错机制,还有对于并发的控制,以及国际化的解决方案。