总结:那些热门的开源游戏服务器框架,还不看你就out了
作为一名业内资深的游戏开发人员,经常会遇到实习的新同事在工作中会问到这样的问题:
工作中到底有哪些开源游戏服务器框架,该去值得学习呢?
囊括到nodejs 、java、C#、golang 、c++、python 等技术栈有各种各样的游戏框架。
本文给大家总结了一些github上star和fork比较常用的且有一定数量的较为完整的框架做了一个说明,大家可以往下看。
地址: https://githubcom/cloudwu/skynet
基于此引擎开发的游戏众多,很多棋牌小企业在用,例如简悦的 陌陌争霸 、 食物战争 等等很多产品
地址: https://githubcom/NetEase/pomelo
一花科技等棋牌在用
地址: https://githubcom/ketoo/NoahGameFrame
代表作全民无双
地址: https://githubcom/kbengine/kbengine
已经被电魂网络收购
地址: https://githubcom/egametang/ET
经过产品验证并且教程比较完善
地址: https://githubcom/topfreegames/pitaya
zooba appstroe排行很高的moba、吃鸡类游戏
但是,像c++类的框架对新手要求较高。
亦或者nodejs类框架性能确实差一些,毕竟它是针对io密集型。
阿博自己的话使用的是pitaya这套框架。毕竟支持分布式使用的技术比较新,也经过各种验证。 其他的就先不做评价,留着给大家发表一下意见。
毕竟,只要适合自己的才是最好的。
是的不
PHP 是一个被广泛使用的来进行Web开发的脚本语言。虽然有很多其它可供选择的Web开发语言,像:ASP 和Ruby,但是PHP是目前为止世界上最为流行的。
那么,是什么让PHP如此流行?PHP 如此之流行是因为比起别的语言来,它更容易学习,网上有一大堆相当相当不错的PHP教程可以让你快速地马上就可以进行Web程序的开发。虽然PHP是是简 单的,而且是容易上手的,但用它编程还是有点麻烦,尤其是一些反复在用的功能。不过,幸运的是,很多开发团队早就注意到了这点,现在在网上,PHP有许多 的可以信任的PHP Framework 可以缩短我们的开发时间。这些框架被一个巨大的社区所支持,因些,如果你有什么问题的话,一定会有人乐意帮你去解决。以下为十个目前最流行的基于MVC设计模式的PHP框架。
1 Yii Yii是一个基于组件的高性能的PHP的框架,用于开发大规模Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主体化,I18N和L10N,Yii提供了 今日Web 20应用开发所需要的几乎一切功能。而且这个框架的价格也并不太高。事实上,Yii是最有效率的PHP框架之一。
2 CodeIgniter CodeIgniter是一个应用开发框架——一个为建立PHP网站的人们所设计的工具包。其目标在于快速的开发项目:它提供了丰富的库组以完成常 见的任务,以及简单的界面,富有条理性的架构来访问这些库。使用CodeIgniter开发可以往项目中注入更多的创造力,因为它节省了大量编码的时间。
3 CakePHP CakePHP是一个快速开发PHP的框架,其中使用了一些常见的设计模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC。其主要目标在于提供一个令任意水平的PHP开发人员都能够快速开发web应用的框架,而且这个快速的实现并没有牺牲项目 的弹性。
4 PHPDevShell PHPDevShell是一个开源(GNU/LGPL)的快速应用开发框架,用于开发不含Javascript的纯PHP。它有一个完整的GUI管 理员后台界面。其主要目标在于开发插件一类的基于管理的应用,其中速度、安全、稳定性及弹性是最优先考虑的重点。其设计形成了一个简单的学习曲线,PHP 开发者无需学习复杂的新术语。PHPDevShell的到来满足了开发者们对于一个轻量级但是功能完善,可以无限制的进行配置的GUI的需求。
5 Akelos Akelos PHP框架是一个基于MVC设计模式的web应用开发平台。基于良好的使用习惯,使用它可以完成如下任务: ◆方便的使用Ajax编写views ◆通过控制器管理请求(request)及响应(response) ◆管理国际化的应用 ◆使用简单的协议与模型及数据库通信 你的Akelos应用可以在大多数共享主机服务供应方上运行,因为Akelos对服务器唯一的要求就是支持PHP。因此,Akelos PHP框架是理想的用于发布单独web应用的框架,因为它不需要非标准PHP配置便能运行。
6 Symfony Symfony是一个用于开发PHP5项目的web应用框架。 这个框架的目的在于加速web应用的开发以及维护,减少重复的编码工作。 Symfony的系统需求不高,可以被轻易的安装在任意设置上:你只需一个Unix或Windows,搭配一个安装了PHP5的网络服务器即可。它与差不多所有的数据库兼容。Symfony的价位不高,相比主机上的花销要低得多。 对于PHP开发者而言,使用Symfony是一件很自然的事,其学习曲线只有短短一天。干净的设计以及代码可读性将缩短开发时间。开发者可以将敏捷 开发的原理(如DRY,KISS或XP等)应用在其中,将重点放在应用逻辑层面上,而不用花费大量时间在编写没完没了的XML配置文件上。 Symfony旨在建立企业级的完善应用程序。也就是说,你拥有整个设置的控制权:从路径结构到外部库,几乎一切都可以自定义。为了符合企业的开发条例,Symfony还绑定了一些额外的工具,以便于项目的测试,调试以及归档。
PRADO团队由一些PRADO狂热者组成,这些成员开发并推动PRADO框架以及相关项目的进行。 PRADO的灵感起源于Apache Tapestry。从04年开始,PRADO成为SourceForge上的开源项目之一。这个项目目前进展到了3x版本。
8 Zend 作为PHP艺术及精神的延伸,Zend框架的基础在于简单,面向对象的最佳方法,方便企业的许可协议,以及经过反复测试的快速代码库。Zend框架 旨在建造更安全,更可靠的Web 20应用及web服务,并不断从前沿厂商(如Google,Amazon,Yahoo,Flickr,StrikeIron和 ProgrammableWeb等)的API那里吸收精华。
9 ZooP Zoop PHP框架,意为Zoop面向对象的PHP框架。 这是个稳定,可伸缩并可移植的框架。从诞生到现在的5年间,已经在不少产品开发中被使用。Zoop是一个快速,有效并干净的框架。它的伸缩性很好,你可以只安装你需要的功能。 对代码并不很熟悉的开发者也可以通过Zoop快速的开发安全的web应用。熟练的开发者则可以更加将Zoop的弹性利用到极致。 Zoop建议将display,logic以及数据层(MVC)分开使用。 Zoop由很多组件和项目集合而成,其中包括smarty和prototype AJAX框架,PEAR模块等。高效的核心组件提供了很多你原本需要自己编码来实现的功能。Zoop内置的纠错功能可以通过配置实现生产环境下的错误日志 生成,这个错误日志提供了很多信息,可读性很高,可以更轻易的寻找并排除错误。 Zoop的一个特别之处在于其GuiControls,在PHP中是一个相当革新的想法。它提供了很多form widgets与验证完整的集合到一起,并形成了一个可以轻松打造个性化GuiControls的框架。
10 QPHP QPHP,意为快速PHP,它是一个与ASPNET类似的MVC框架。基本上它是这样一个情况: ◆整合了Java和C#的美感 ◆除去了在其他PHP框架中使用的Perl形式的意义含糊的语言 ◆大量基于OOP的概念
所谓的开源服务器指的是一些可以用做服务器的管理软件,如:apache、IIS、Weblogic等,而开源服务器则是指这些软件的代码是对外公开的,你可以下载下来自己研究等,非开源服务器的话,你可可以得到那个软件的安装版本,却下载不到这个软件的源代码~~~~
当今,用JAVA语言开发运行在服务器上的应用程序,必须遵循SUN公司提出的J2EE规范,也就是说,这种规范给出了在分布式环境下开发和部署面向“组件”的Java应用程序应当遵循的一些具体规则。该规范指出了如何开发、部署和集成应用程序“组件”的具体办法,这就是所谓的“放入J2EE平台”。
特别是J2EE规范描述了一种“J2EE服务器”的运行机理,“J2EE服务器”提供了一种执行环境和一些系统“服务”,例如,事务处理服务、保持服务、消息服务和安全服务等。“J2EE服务器”是一种符合J2EE规范的计算机抽象物,是Java应用程序的“活动场地”。
典型的J2EE应用程序由两部分构成:一是表现组件(也叫Web组件,Servlets与JSP);二是企业组件(EJB,EnterpriseJavaBeans),定义事务处理逻辑和应用数据。J2EE服务器提供两种“容器”,一种是负责处理Web组件;另一种是负责处理企业组件。
上面提及的JBOSS和JOnAS开源应用服务器是“J2EE服务器”,它们分别在2004年6月19日和2005年2月1日通过了J2EE测试认证。在J2EE服务器的发展史上,开放源码的“应用服务器”能够通过J2EE的性能测试并给予“认证”,确实是一件震动世界软件业的大事。开源应用服务器是开源中间件的集中体现,从此,对于开源中间件的各种怀疑论调都失去了根据。
C#开源项目(国外的还是很多) 一、Ajax框架 AjaxNET Professional
(AjaxPro)是最先把AJAX技术在微软NET环境下的实现的AJAX框架之一。它在客户端脚本之上创建代理类来调用服务器端的方法。
MagicAjaxNET是一款在ASPNET下创建Web页面提供AJAX技术的框架。它使开发人员很容易把AJAX整合到他们的页面而不需要替换ASPNET控件或自己写javascript脚本代码。
AnthemNET是为ASPNET开发环境提供的开源AJAX工具包,它可以运行于ASPNET 11和20。
二、工作流(workflow)
WorkflowNet是使用微软Net技术基于wmfc标准的创建工作流引擎。
NetBPM是JBpm移植到net平台下的一款开源工作流软件。NetBpm可以很容易和Net应用程序集成在一起,可以创建,执行和管理工作流程序。 Bpm
Tool支持将业务模型转换成软件模型。业务开发人员可以使用模型驱动的方法设计,实现,执行和跟踪业务流程。因此开发人员能够更容易的关注业务逻辑的变化。
其实微软自己的WPF做WorkFlow也很厉害。
三、文本编辑 FCKeditor是一款功能强大的开源在线文本编辑器(DHTML
editor),它使你在web上可以使用类似微软Word 的桌面文本编辑器的许多强大功能。它是轻量级且不必在客户端进行任何方式的安装。 FreeTextBox
是一个基于 Internet Explorer 中 MSHTML 技术的 ASPNET 开源服务器控件。这是一款优秀的自由软件(Free
Software),我们可以轻松地将其嵌入到 Web Forms 中实现 HTML 内容的在线编辑,在新闻发布、博客写作、论坛社区等多种 Web
系统中都会有用途。 VietPad是一个功能完整的跨平台的Java/NET的Vietnamese
Unicode开源文本编辑器。支持打开,编辑,打印,转换,排序,和保存基于文本的Unicode格式的Vietnamese文件。
NetSpell是一款NET框架下的开源拼写检查引擎。 PPC_edit是一款应用在Pocket PC上的开源文本编辑器,它支持TXT, RTF, HTML,
WordML, DocBook 和 ZIP格式的文件,屏幕上会显示国际标准的软键盘。
四、博客(Blog)
NovaShare是一款Blog引擎,它使你创建基于交互式的web的新闻和论坛网站,很像WonkoSlice或Slashdot。管理员可以发布文章和发起投票,浏览者可以创建用户帐号,发表议论等等。
dasBlog是从BlogX 网上日志引擎发展而来。像Trackback ,Pingback
一样增加许多附加的特征,有完整的Blogger/MovableType
API支持,API注释,完整的Radio-style模板定制,支持Mail-To-Weblog/POP3的附件和内嵌,基于WEB的
DHTML,OPML,配置的编辑器。 DotText是一个被使用了数百个blogs的强劲的blog引擎。这是一个N-tiered应用的例子。
tBlogger是一个C#开发的完整的blog网站程序,使用XML配置。
Blog现在可以使用MVC的其他开源项目来构建,这些项目在codeplex上有很多,其中微软自己的就有OXite。
五、系统构建
NETZ是一款免费开源工具,它可以压缩和打包微软 NET 框架可执行文件(EXE,
DLL)以使他们更小。更小的可执行文件占用的磁盘空间较少且因为读取文件时对磁盘的访问较少而使读取数度更快。它和PE(portable
executable)打包工具不一样,NETZ是使用 C# 编写的存粹的 NET 解决方案。NETZ可以用来打包几乎每一种 NET
支持的语言编写的程序。NETZ支持 NET EXE 和 非共享(non-shared)的 DLL
文件。压缩过的程序能以相同的方式解压缩这些对最终用户是透明的。 NAntContrib为NAnt提供定制任务的工具。
Prebuild是XML驱动的一款跨平台pre-build工具,使开发人员很容易就可以为IDE和NET开发工具生成项目或构建文件。它支持 Visual
Studio NET 2002, 2003, 2005, SharpDevelop, MonoDevelop 和 NAnt。
BusyBeeBuilder是NET平台下功能强大,易于使用,可扩展的开源构建自动操作工具。 DracoNET 是 Windows
服务应用程序。它的设计使其容易持续的集成新特性。DracoNET监视你的源代码储存库。当探测到你的项目有变化时自动重新创建项目并把包含变化列表的创建结果发送到你的Email。
Build Studio为软件的自动构件处理提供了一套完整的解决方案。 CruiseControlNET是NET平台下的一款整合服务器。
NAnt类似Apache项目下的Ant,是Net下的开源构建工具。适用在自动编译NET应用的场合,如NET项目的每日构建(nightly
build)。
说老实话,我并不认为系统构建工具的作用真的有那么强大,如果你真的计划做一个很大的项目,且持续开发时间很长,那么你可以使用上面的系统构建工具。
五、图表制作
ZedGraph是C#编写的NET类库,提供了用户控件和web控件。它可以创建2D的线性图、条形图和饼图。它功能完整且有详细的功能自定义,不过
使用默认的选项就足够好用了。一款类似 PieChart, StackBar, LineChart的C#开源图表组件。
NPlot是一款NET下的开源图表类库它值得称道的地方是优雅且灵活的API设计NPlot包含了Windows Form控件,
ASPNET控件和一个创建Bitmap的类。还有一个可用的GTK#控件。 XSCharting是C#开发的图表组件,提供了多种多样的图表选项。
DaveChart是一个免费的DotNet类库。 NChart 提供了很多值得应用在商业,教育等多个领域的2 D图表。
微软自己已经提供了一个chat绘制控件,也就是原来的dunat,如果那个可以满足你的要求,那么完全没有必要使用上面的。但是如果你需要研究画图,作自己定义的chat,那么这些开源的项目将对你有很大的帮助。
六、聊天系统
Dot Net Chat
server是基于DotNet框架开发的聊天服务器和客户端项目。说老实话,我对这个很感兴趣,有时间,要瞧瞧它的代码是咋实现的。
七、内容管理系统(CMS)
Ludico是C#编写的居于ASPNET
20的Portal/CMS系统。它的模块化设计是你可以按照你希望的使用或开发网站功能。它里面有高级的用户管理,一个所见即所的(WYSIWYG)的编辑器等。
mojoPortal是一款C#开发的面相对象网站框架,它可以运行于Windows的ASPNET 和GNU/Linux 或Mac OS X的Mono的平台上。
Cuyahoga是C#开发的灵活的CMS / Portal 解决方案。它可以运行于Microsoft NET 和Mono 平台,支持SQL Server,
PostgreSQL或MySQL作为底层数据库。 Umbraco是一款在net平台下C#开发的开源内容管理系统,该系统效率,灵活,用户界面都不错。 Kodai
CMS是NET平台下的一款功能齐全的内容管理系统。 Rainbow项目是一款使用Microsoft’’s
ASPNET和C#技术开发的有丰富功能的开源内容管理系统。 NkCMS是使用ASPnet和Sql server 2000开发的内容管理系统。
Amplefile是一款内容管理系统,是Net环境下的windows应用程序,使用了Net remoting
GoKryo是一个用ASPNET(C#)NET 实现的简单的内容管理系统,后台数据库使用Microsoft SQL Server 。 ndCMS是
ASPnet
(C#)下的一个内容管理系统。它提供了用户管理,文件管理,一个WYSIWYG编辑器,模板管理,拼写检查和内置的http压缩。ndCMS的目标是提供一个简单而快速的方式部署Net站点以节省你的时间和金钱。
这些开源的CMS我试用了几个,说真的,拿来研究可以,要真的实施,估计很难。
九、论坛系统
YetAnotherForum可以作为ASPNET开发的网站的论坛或是留言板。它使用MSSQL作为底层数据库。
十、安装制作
izfree是一套套免费的工具用于帮助创建使用Microsoft”’’s Windows
Installer 技术的安装程序。使用izfree你可以为你的应用程序制作强劲的安装程序。
Windows Installer XML
(WiX)可以重XML源文件创建Windows程序安装包的工具集。它支持命令行方式,开发人员可以把结合它来创建MSI和MSM安装包一个可以和商业软件安装产品相比的开源打包工具。
一般的需求试用VS
自带的就可以了,更复杂的需要用到InstallShield,这样看起来开源的就没啥意义了。
十一、IoC容器
Springnet是从java的Spring
Framework移植过来的。java的Spring包含了许多功能和特性,在当前的Springnet都有提供。Springnet最初发布的版本包含了一个很有特色的IoC容器。
Castle是一组应用开发的工具,内含一个简单的IoC容器。
StructureMap是NET环境下的一个轻量级依赖注入工具,StructureMap也是一个灵活的、可扩展的通用“插件”机制的NE
我用过StrucutureMap,但是给我的感觉是,试用这个似乎没多发帮助。
十二、网络客户端
NET FTP Client是C#编写的开源类库。
NET Telnet是微软NET
Framework下的C#开发的开源telnet类库。它的灵感来至Java Telnet Application。
metro这个项目是C#编写的类库,它提供了一套丰富的类使开发IP version 4, TCP,
UDP and ICMP等工作更容易。它包含了有很有用的工具如包嗅探器,网络分析工具例如路由跟踪,ping等。
LJNET是LiveJournal站点的客户端。它为LJ在线日志服务提供了简单而强大的用户接口。
NET VNC Viewer 是一款完全用C#开发的开源VNC观察器。它兼容Smartphones,
Pocket PC和Windows的电脑(NET CF or NET Framework)。它比起其它观察器的优点是可以在Pocket
PC上全屏显示而且可以旋转屏幕。
GVDownloader允许你从google videos, metacafe, putfile,
youtube, breakcom 和更多的地方快速下载内含的视频和多媒体。它的包含一个强劲IE插件和位于你系统托盘的独立程序。
DotNetOpenMail能够使你在微软net框架开发的aspnet,
WinForm应用程序发送Email。它是C#编写的开源组件,它不需要使用SystemWebMail类库就可以容易的创建带附件HTML和
Plain-text的Email。程序员不需要知道很多相关的细节就可以使用不同的字符集或不同的MINE编码来创建
multipart/alternative,multipart/related和multipart/mixed的MIME消息。
DotMSN是一款独立的开源类库,它不需要和官方的MSN Messenger交互,因此不必安装MSN
Messenger就可以使用DotMSN和MSN
Messenger服务通信DotMSN是C#编写的,所以NET环境支持的语言都能够使用DotMSN类库使用简单而且实现方便。它灵活,坚固,
轻量级利于整合到任何应用系统使用DotMSN的应用系统能实现从创建消息机器人到自定义客户端等各种不同的功能如果你的应用程序需要和
Messenger服务通信,DotMSN是一个不错的工具
SharpSSH使用C#实现了SSH2协议,它支持SSH, SCP 和 SFTP
OpenPOPNET一组和POP Servers通信的NET类库。
IceChat是为连接多样的IRC Servers设计的Internet Relay Chat
Client。
lphant是为edonkey/emule开发的开源客户端程序。
NET FTP Client C#开发的类库。
OpenSmtpnet 是 C# 开发的开源SMTP组件。它不依赖NET Framework
的SystemWebMail 包中的类。允许开发人员使用不同于MS SMTP的SMTP 服务器且提供了web
service而可以通过HTTP发送email。
这里面有几个值得推荐,例如DotMsn这个,在某些场合就很有用处。
0条评论