决战JavaScript服务端网游开发

在经过三年多的手游客户端学习与开发练习后,我发现仅满足于前端仅能在游戏开发中占居一席之地。要想全面深入理解手游开发逻辑,特别是如今的网络时代的手游数据管理及通信逻辑,必须掌握一定的服务器端开发技术。作一个十分相似的比较,就像Web开发,只懂得前端技术(HTML/HTML5/CSS/DOM/BOM/JQUERY/JS),也只能是具备了一条腿走路的能力,而两条腿走路则更是每一个程序员所期望的。因此,作为一名优秀的Web前端程序员最好对于

服务器端开发技术也有一定程度的了解。

值得欣喜的是,相当多的程序员在选择软件开发这条路之前都不同程度地具备了“不断学习”甚至是“终生学习”的打算,因此,作为前端去了解后端,或者后端到前端,都不是太难的事情。

另一方面,时间是最宝贵的,时间是金钱,时间是生命。这对于每一位程序员来说,无不感慨如是。

约一年多以前,网络上有一篇大概名叫单机手游已死类似题目的文章深深触动了我。结合我自己的实际,比较同意作者观点。网络时代做游戏,不与网络结合,无异于自找麻烦,更准确说是自找死路。说实在的,在做单机开发期间,我也花费不少时间分析市场,深感选择游戏却远离网络存在极大风险。

于是,我花费几乎所有业余时间学习与研究服务器网游开发技术。对于大型网游戏,我先抛到一边。而对于弱联网手游开发技术进行集中学习。

对于小小型公司的弱联网手游开发,可供选择的服务器端软件技术大致有:微软平台型(例如C++,C#,并结合ASP.NET技术)、JAVA平台型、PHP平台型,再就是目前国内非常火的两个平台:网易的Pomelo(基于Node+JS等开源技术)和9秒的Firefly(基于Python+Twisted等开源技术)。

如果选择前面三大平台,基本上掌握一定的相应平台网站开发技术就可以胜任服务器端网游开发,当然游戏开发自有其特殊性还需专门学习。后面两种技术都有较好的社区生态系统支持,特别是Pomelo。难度上,Firefly相对容易,其相关框架且不论,单单Python与JS比较就可以得出这种结论。我的结论是:如果Python学习需要三个月完全胜任Python相关开发(在学习了从多的语言之后,感觉Python几乎是除了VB外的最易学最灵活的语言),那么JavaScript开发至少需要六个月。

在选择自己所擅长的服务器端开发技术的同时,更长远一点面向最终的产品部署的选择更值得关注。
我认为(还没有作全面的分析):对于小小型公司的弱联网手游开发,初期产品部署选择云端技术几乎是必走之路。这条路最大优点是:投资少、弹性大,完全可以针对公司及产品的发展前景作弹性调整。

最终,我选择网易的Pomelo的几个主要原因:网易的Pomelo是一个更大型的弹性框架,既适合网站开发又面向网游开发,Node及JS社区相当成熟(当然Python也是),更重要的是:服务器端与前端几乎可以一体化,即两端的代码几乎可以无修改地相互借用。面向最终的产品部署支持,无论是国内国外,都没有问题(Firefly也一样)。

目前,我使用Node+Express等技术制作一个基于3D技术的定制产品展示网站(还没有完全成功),感觉效率OK。

因个人水平有限,上述结论仅供参考。最后一句:想致力于当今最具生命力和市场竞争力的JS开发,包括服务器端WEB开发,特别是网游开发的朋友,让我们一起努力吧!一份汗水一份收获,坚信我们的成功即在不远的未来!

时间: 2024-08-07 00:17:44

决战JavaScript服务端网游开发的相关文章

Unity网游开发生存指南—蒸汽之城

Posted by amy on 2013.03.07 文 / 王楠(梦加网络 游戏制作人) 前段时间关于Unity是否适合国内手游/网游创业团队的讨论非常火爆,本文从<蒸汽之城>的开发历程谈起,对于国内网游团队是否应该选择Unity引擎,以及如何解决使用Unity开发网游时遇到的各种主要问题进行讨论. 厦门梦加的蒸汽之城  <蒸汽之城>是厦门梦加网络的第一款作品,使用Unity引擎制作的蒸汽朋克风3D实时战斗MMORPG页游.游戏拥有幻想工业时代恢弘苍凉的场景:丰富的种族.职业和

python的flex服务端数据接口开发

python的flex服务端数据接口开发 python 如果给flex提供服务端,需要提供一个网关和一个可供客户端(flex)调用的类.这方面我更加推荐用twisted来写这个网关,因为twisted有很好的异步机制. 下面的我写的一个简单的验证用户的python服务端: ______________________________DBServer.py # Copyright (c) 2009-2010 The Newjh Project."""@author: Roy@s

张左峰的歪理邪说 之 对于瀑布式开发和敏捷开发在网游开发中的应用

本周小孩送回姥爷姥姥家,终于有时间更新一下自己的微博了,三年没更新了,我真TMD懒惰!我错了....这次努力更新一些东西 有些人问我,为啥不去一些大点的微博站写这些内容.我觉得没有必要啊,反正早晚都会被搜索引擎爬到,哪里都一样. 本文纯理论,是一个思想指导,你完全照搬,你就输了....尽可能写的雅俗共赏一些,一起研究学习进步! 正文开始.....(哪那么多废话...果然人老了) 首先,我们要明确两个概念 瀑布式开发:瀑布式,顾名思义,自上而下,连绵不绝,稳步推进.瀑布式开发,是一个我们最常规的开

WebSocket集成XMPP网页即时通讯1:Java Web Project服务端/客户端Jetty9开发初探

Web 应用的信息交互过程通常是客户端通过浏览器发出一个请求,服务器端接收和审核完请求后进行处理并返回结果给客户端,然后客户端浏览器将信息呈现出来,这种机制对于信息变化不是特别频繁的应用尚能相安无事,但是对于那些实时要求比较高的应用来说,比如说在线游戏.在线证券.设备监控.新闻在线播报.RSS 订阅推送等等,当客户端浏览器准备呈现这些信息的时候,这些信息在服务器端可能已经过时了.所以保持客户端和服务器端的信息同步是实时 Web 应用的关键要素,对 Web 开发人员来说也是一个难题.在 WebSo

webService服务端和客户端开发 简单实例

这几天一直在看webService相关的知识. webService是一个跨平台访问的第三方插件,方便易用,多平台使用. 开发中我们可能自己是服务端,提供webService接口给别人访问我们的系统:也有可能我们调用别人的webService接口去访问别人的系统(比如查询天气预报). 下面是服务端和客户端的开发,实际开发中我们只是其中一方. 服务端开发: ①创建一个服务类,运行main方法发布即可,服务端就开发完成了. package com.lijianbo.service; import j

thrift服务端到客户端开发简单示例

(1)首先我们在服务器端写个helloworld.thrift文件,如下所示: service HelloWorld{ string ping(1: string name), string getpng(), } (2)在服务器端编译helloworld.thrift编译helloworld.thrift文件,会产生服务器端和客户端相应语言的接口源码./usr/local/thrift/bin/thrift -r --gen py helloworld.thrift /usr/local/th

unity手游《摩卡世界online》全套源码(服务端+客户端+数据库)

unity手游<摩卡世界online>全套源码(服务端+客户端+数据库),客户端用unity3d开发,服务端用java开发,包含服务端源码.客户端源码.工具源码.数据库.配置搭建文档说明.编译好的文件等,解压后2.32G大小,要的速度下,过期不候. 摩卡世界是一款人气火热的休闲类手机网游,画面精致,出场人物造型各异,十分讨人喜爱,同时摩卡世界操作都是通过功能按钮的组合来完成,全拟真的操作规则和爽快的打击节奏让我们找回街机般的操作手感,华丽的必杀技.便捷的操作和流畅的画面,会让格斗爱好者爱不释手

Node.js是一个事件驱动I/O服务端JavaScript环境

Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎.目的是为了提供撰写可扩充网络程序,如Web服务.第一个版本由Ryan Dahl于2009年发布,后来,Joyent雇用了Dahl,并协助发展Node.js. 其他编程语言的类似开发环境,包含Twisted于Python,Perl Object Environment于Perl,libevent于C,和EventMachine于Ruby.与一般JavaScript不同的地方,Node.js并不是在Web浏

谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现

一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是一位英雄.客户端和服务端均使用C#开发,客户端使用Unity3D引擎,数据库使用MySQL.这个MOBA类游戏是笔者在学习时期和客户端美术策划的小伙伴一起做的游戏,笔者主要负责游戏服务端开发,客户端也参与了一部分,同时也是这个项目的发起和负责人.这次主要分享这款游戏的服务端相关的设计与实现,从整体的架构设计,到服务器网络通信底层的搭建,通信协议.模型定制,再到游戏逻辑的分层架构实现.同时这篇博客也沉淀了笔者在游戏公司实践五