开发-前端:
前端的美工取决的游戏本身,像http://agar.io,就可以什么库都不用,手动写一些canvas操作的模块即可完成,事实上作者也是这么做的。http://slither.io的美工明显要好一些了,一些shining的特效我不确定作者是使用了别的lib还是怎么。所以如果想做成可玩的小游戏(棋牌,agario类),对html5 2D canvas是要了解的。游戏的复杂度上升,对开发者的要求自然也高,用到了WebGL就又是别的故事了。
当然前端除了美工还有别的,服务器和客户端之间有延迟,总不能让小球看起来有卡顿感吧,所以前段的卡顿需要有所补偿,所谓interpolation。所以经验是需要一点的。
然后就是典型的web开发要会一些,游戏初始界面可以用典型的web来开发的。
开发-后端: 通信 + 业务逻辑 + 算法
游戏服务器很多用C++来写,C++是个经验加成很(超)高的语言。除了对C++本身的了解之外,对于通常的网络优化要有所了解,懂得处理IO带来的负担,做好处理高并发量的准备,学会用合适的工具,agario使用了libuv。
算法的能力也是必须的,agario里头小球的碰撞貌似是用了典型的quadtree来进行优化的。http://slither.io的碰撞又不一样了,除了agario中所需的优化外,还要考虑蛇的形状可以是concave(凹)的,得好好考虑一下怎么实现的。
当然,市面上游戏引擎很多的,各种各样开源的库很多。不过虽说如此,对底层的了解还是必须的,照猫画虎只能画出猫来。
好不容易容易开发完了游戏,现在上线了。一个微博传播,唰的一下5000个用户进来了,突破了单服务器的限制。唰的一下国外的用户又进来了,要买海外服务器了。
运营:
主要成本就是服务器租用了,不贵。主要的问题在于,开发者(团队?)要能迅速适应变化,加以改变。从agario的例子来看,一开始这游戏连代码都没压缩就post上去了,不过几个月时间里就产生了很大的改变。
不过话说回来,游戏上线人气若高,很快就会有人寻求合作,资本一注入,技术什么的都不是问题。花钱雇靠谱程序员立马重做都行。
另楼主说的开发周期,取决于程序员的能力了,几天,几周,一两个月都有可能的。当然也取决于程序员人数,也取决于做这游戏的人的野心。
windows平台可以看看《Windows Server 2003服务器架设与管理》。
作为推荐,这里我主要还是推荐自己仔细研读过的书,而我读过的书中某些可能已经很老了,甚至内容已经过时了,因此,这只算是抛砖引玉,大家可以选择类似的更新、更权威的书籍学习。
基础知识主要包括:语言。这里之所以拿出来说,是因为某些语言可能导致你使用完全不同的思路来设计服务器。一般来说,C/C++、Java、C# 之类可以归为一类,而 Go、Erlang 和他们区别很显著。关于语言的经典书籍太多,这里就不说了。
网络。想了解协议底层实现,可以看《TCP/IP 详解 卷2》。上层开发时,Windows 下可以看《Network Programming for Microsoft Windows》,Linux 下可以直接看看官方相关的 API 文档。Windows 下 IOCP,Linux 下 epoll(其他类 Unix 下的技术类似)是需要掌握的。实际开发中,网络库可能自己实现,也可以基于某些开源库开发,所以,无论是出于学习还是使用目的,都可以研究一下开源库,例如 libuv、libevent、boost ASIO。
操作系统相关。类 Unix 系统比较好的书籍就是《Advanced Programming in the UNIX Environment》了,Windows 下则可以看看《Windows核心编程》。系统相关的最核心的东西可能就是线程、进程,以及相关同步的内容了,看看《Multithreading applications in Win32》挺不错(包括类 Unix 系统下的开发者)
数据库。主要看你选择 SQL 还是 NOSQL。基本上搞搞 mysql、redis 不会错。
一些思想。光会各种技术是不能写出好的代码的,可能还需要学习一些更抽象的知识,所谓的一些”哲学“或者开发的指导思想。比较推荐的是《UNIX 编程艺术》,还有一本书《精益思想》,这本书和编程完全无直接关系。
《网络游戏核心技术与实战》日本人写的网络游戏服务器端开发的书, 结合游戏开发讲到了服务器端的方方面面, 但是相对的可能不够深入. 适合入门, 对游戏和技术有更好的理解. 然后就可以针对特定的技术领域, 比如网络, 数据存储等找专门的书来看了. 单纯从技术角度而言, 基础的东西并没有太多的不同. 只是网络游戏服务器端的应用领域相对狭窄, 所以市面上专门的书籍并不多。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)