阅读更多
Ejoy2D是一款图形引擎,基于C和Lua开发,底层是一个十分简单的核心层,基本上只负担绘制工作,上层语言是Lua。Ejoy2D是国内简悦(EJOY)游戏公司所开发的一款游戏图形引擎,旨在帮助开发人员轻松地嵌入到游戏引擎中,方便开发者定制自己所需的功能。

开源协议:MIT
代码托管地址https://github.com/cloudwu/ejoy2d

我们联系到了Ejoy2D项目负责人云风(微博:@简悦云风),请他来分享Ejoy2D的开发历程及他在游戏开发方面的感悟。

云风,真名吴云洋,曾任网易杭州研究中心总监,是网易《大话西游》、《梦幻西游》等游戏的主要开发者,他在2011年9月从网易辞职,并与前网易COO詹钟晖联合创办了简悦(EJOY)游戏公司,任公司CTO。


Ejoy2D项目创建的初衷是什么? Top

云风:Ejoy2D的起源来自于我在2013年初玩到的一款叫Clash of Clans的移动平台游戏,这让我发现在移动平台上,除了一个人玩的传统游戏之外,还可以有非常有趣且结合移动平台特性的游戏类型存在。在此之前,我们公司并没有立刻开始移动平台开发计划;之后,我们迫切的想进入移动平台游戏的开发领域。在经过公司内部的充分讨论后,我们打算先模仿Clash of Clans做一款类似的游戏练手。我个人判断,把这类游戏做好,客户端开发有一定的技术门槛,不太容易做的好。而我在十多年前就开始做2D游戏引擎,很有自信可以为这款游戏定制一款新的、适应移动平台开发的2D引擎。这就是Ejoy2D的开始。

在独立开发了大约一个月后,从我们的PC端游戏组调出了一名同事,和我一起来制作这款新游戏。边用边对Ejoy2D提出新需求,并完善它。

到了2013年7月左右,我们的外包美术资源开始进入,这时,我们又从外部招聘了一名同事专门为 Ejoy2D定制美术工具。这样才慢慢完善了工具链,最终把游戏做了出来。这款游戏就是现在的陌陌争霸。

从一开始,我就希望把引擎开源。因为之前我们开源的游戏服务器框架Skynet反响很好,帮助了不少朋友,同时开源也提高了代码质量,不少bug都是公司之外的同学发现的。这让我们在自己生产环境碰到bug前就得以修正。

但一开始的Ejoy2D代码很不稳定,且充满了为了游戏项目能快速完成而临时添加的补丁,所以直到我们的陌陌争霸基本完成。后来,我花了大约2周时间全部重写了Ejoy2D的代码,觉得可以与大家见面了,就公布了代码,并发布了开源的消息。接下来,我们内部有两个新的项目组开始使用新版的Ejoy2D开发游戏,这两个组都有同事开始为Ejoy2D贡献代码。

与其它游戏引擎相比,比如Cocos2d-x,Ejoy2D有哪些与众不同的地方? Top

云风:Ejoy2D其实是对OpenGL ES的一个浅封装。我并不想把它发展成一个游戏引擎,而只停留在图形引擎层面上。但和别的引擎相比较大的区别是,它天生为和Lua结合而设计并实现的。你几乎不可能只使用Ejoy2D的C API ,而我鼓励你只用Lua API在其上做开发。只有解决不了的需求时,再编写一个供Lua调用的C模块。由于这种设计,在使用方式上,Ejoy2D应该会比其它结合Lua脚本的引擎更高效些,使用起Lua API也会更自然。同时,Ejoy2D保留了很小的C内核,代码全部用很简短的C实现。阅读理解起来会比较容易,维护它更轻松一些。

您们最近上线了一款手游叫“陌陌争霸”,在这款游戏中,Ejoy2D都做了些什么? Top

云风:陌陌争霸的客户端全部用Lua开发,客户端引擎就是用的Ejoy2D 。但Ejoy2D仅仅只是图形引擎,所以我们还用C编写了网络模块,资源打包的模块等等。陌陌争霸对AI方面还有比较高的性能需求,我们还用C语言为AI,士兵寻路编写了一些代码(在大部分其它类型游戏中,用Lua实现性能就够了)。

由于陌陌争霸开发的比较早,当时的Ejoy2D没有现在的版本完善,所以陌陌争霸组的同事在UI模块、粒子系统上花了更多精力。这些在现在开源版本的Ejoy2D中,在引擎层面已经做了更多的支持。

对于使用Ejoy2D的用户,您有哪些建议/经验告诉他们? Top

云风:最好能通过阅读代码来理解Ejoy2D的结构,明白它能解决什么问题。然后尽量只在Lua层面使用它。把需求提到开源社区,大家来判断该如何改进引擎适应不同的需求。对于很多引擎,通读所有的代码是件工作量很大的工作,但是Ejoy2D不同,它很简短,花不了太多时间。

从风魂引擎到Enjoy2D引擎,您在引擎和游戏开发方面有什么心得?您的设计思想和实现方式有什么变化? Top

云风:风魂是我大学时代的作品,到现在已经有十多年过去了。当初我希望尽量帮助游戏开发人员解决所有问题,而现在不这么想了。我希望使用引擎的开发人员有足够的选择权。作为一个图形引擎,应该尽量配合开发人员的选择权,尽可能的把引擎做成一个方便开发人员组装的一个组件。

引擎的实现应该足够简单,并尽可能的隐藏需要引擎解决的技术细节。

与开发PC游戏相比,开发移动游戏的痛点是什么? Top

云风:我并没有正经的开发过一款传统的PC游戏,而我在意识里并不把MMO Game和传统游戏归为一类的。在移动平台上开发游戏让我找到了一些开发游戏的乐趣,我觉得比开发MMO游戏更加有趣。至于痛点,我觉得在国内做游戏,或多或少的要迎合渠道的想法很讨厌。比如说,我不希望我们的游戏需要玩家有一个账号才能开始游戏,而各种国内的平台会强迫你接入他们的SDK ,需要玩家注册账号,然后才能开始游戏。

从事游戏开发这么多年,您最大的感悟是什么? Top

云风:心无旁骛方能获得无穷乐趣。

您一直都在鼓励大家开源,并且把自己的一些作品都开源出去了,这样做给您带来了哪些好处/乐趣?对其它开发者来说,把自己的作品开源出去有哪些好处? Top

云风:开源对自己毫无损失。反而会督促你把代码质量提高,设计时也需要考虑得更完善。如果有其他人使用,他们往往会以一种你不曾考虑过的方式来用,从而发现你发现不了的漏洞。这些漏洞可能是实现上的,也可能是设计上的。

您已经这么牛了,在这个圈子里,有您崇拜的技术大腕吗?您认为这些人身上都有哪些特点? Top

云风:想不到 “崇拜” 这个词能用在什么人身上,我不认同人和人之间产生 “崇拜”的这种情感。只能说我喜欢怎样的人吧。我喜欢思维理性,有想像力,有执行力,总能自己动手去解决问题的人。

附录:CSDN OSTC 2014大会信息 Top

“启蒙·开源”为主题的2014开源技术大会(Open Source Technology Conference 2014)将于3月30日在北京召开,欢迎各路开源大侠积极参与。

届时云风将亲临现场,分享他多年的开源开发经验,欢迎大家来领略大神的风采。

大会官网http://ostc.csdn.net


原文地址:CSDN / 作者:张红月。
  • 大小: 34 KB


评论 共 10 条
10 楼 gyyloveyc 2018-03-07 22:03
腾讯云活动开始啦,https://cloud.tencent.com/act/campus/group/detail?group=14954
点此链接购买腾讯云服务器,配置“1核2G 1M带宽  50G云硬盘”,16个月只需120元
购买后通过以下链接续费两年(认证随便填填就好),120元一年。
https://cloud.tencent.com/act/campus
9 楼 MCLoginandPwd 2017-08-11 10:49
分享一款代码生成器,拖拽式组件结合流式处理,很容易的访问数据库、http、文件读写操作等等,支持编写javascript、java、freemaker,功能丰富强大,编制规则,可生成一切想要的代码,详见:http://blog.csdn.net/LoginandPwd/article/details/76944900,更多资讯:http://blog.csdn.net/LoginandPwd/article
8 楼 dfjjfxyl 2017-07-04 16:53
开源项目推荐网站:
http://binlily.imwork.net
7 楼 lalaeye 2014-05-19 22:26
思维理性,有想像力,有执行力
缺少执行力啊。
6 楼 chenzheng8975 2014-04-03 12:05
pop1030123 写道
peak 写道
vase 写道
need_faith 写道
发型很不错
赞!

赞!

我想知道这个Ejoy2D有多少上线的游戏用了?

32个赞
5 楼 pop1030123 2014-03-15 15:08
peak 写道
vase 写道
need_faith 写道
发型很不错
赞!

赞!

我想知道这个Ejoy2D有多少上线的游戏用了?
4 楼 chengshwu 2014-03-13 21:43
发型确实不错
3 楼 peak 2014-03-04 10:54
vase 写道
need_faith 写道
发型很不错
赞!

赞!
2 楼 vase 2014-03-03 23:17
need_faith 写道
发型很不错
赞!
1 楼 need_faith 2014-02-26 20:58
发型很不错

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 开源图形引擎Ejoy2D.zip

    Ejoy2D是一款图形引擎、基于C和Lua开发,底层是一个十分简单的核心层,基本上只负担绘制工作,上层语言是Lua。Ejoy2D是国内简悦 (EJOY)游戏公司所开发的一款游戏图形引擎,旨在帮助开发人员轻松地嵌入到游戏引擎中...

  • 信号与系统分析2022春季作业-参考答案:第十二次作业

    2022年信号与系统作业参考答案。

  • 第十六届全国大学生智能车竞赛全国总决赛获奖排行榜

      §01 基本信息 对于全国大学生智能车竞赛全国总决赛参赛队伍进行统计。包括两大类十一个比赛组别: 总决赛组别: 竞速组: 创意组: 一、基本数量 1、竞速比赛 2、创意比赛

  • Spring Security http basic 示例代码

    去下载

  • 云风的Ejoy2D-Engine

    云风的Ejoy2D-Engine

  • Ejoy2D —— 来自云风的开源游戏图形引擎

    Ejoy2D是一款图形引擎、基于C和Lua开发,底层是一个十分简单的核心层,基本上只负担绘制工作,上层语言是Lua。Ejoy2D是国内简悦 (EJOY)游戏公司所开发的一款游戏图形引擎,旨在帮助开发人员轻松地嵌入到游戏引擎中...

  • Ejoy2D图形引擎

    Ejoy2D是一款基于C和Lua开发的游戏图形引擎,旨在帮助开发人员轻松地嵌入到游戏引擎中,方便开发者定制自己所需的功能。

  • Ejoy2D:“风魂”游戏引擎作者云风的又一力作

    摘要:Ejoy2D是一款图形引擎、基于OpenGL ES的图形库。Ejoy2D是国内简悦(EJOY)游戏公司所开发的一款游戏图形引擎,旨在帮助开发人员轻松地嵌入到游戏引擎中,方便开发者定制自己所需的功能。 Ejoy2D是一款...

  • quick-ejoy2d:ejoy2d扩展项目

    quick-ejoy2d完全的基于ejoy2d官方( )的渲染内核,计划补充如下一些引擎功能: (已完成)支持png和jpg. (基础完成,持续改善中)重新设计并实现quick-ejoy2d引擎的应用层架构。 (开发中...)开发一个ui库. 引入一个物理...

  • ejoy2d帮助

    ejoy2d帮助信息

  • 云风blog Ejoy2D 开源

    因为决定做一个 2d 游戏,我觉得在 2d 游戏引擎方面我有超过 15 年的经验,使用一个流行的开源引擎,比如大家都在用的 Cocos2d-X 还不如自己写。这样对引擎的可控性更强,可以方便的定制自己需要的功能,并在性能上...

  • dawn:一个ejoy2d技术演示

    黎明 这是一个技术演示,展示了如何在开发自定义图形效果。 该项目的灵感来自于HGE的演示 。 这是屏幕截图: 建造 1.出口资源 * cd res * ./export.sh 2.建立应用程式 ... * open build/ios/dawn.... Ejoy2d是一个开源的

  • 学习Ejoy2D引擎--配置环境

    1,引擎地址:https://github.com/cloudwu/ejoy2d.git 2,下载mingw:http://sourceforge.net/projects/mingw/files/  只是个安装器,下载还得一段时间。 3,下载lua源码:http://www.lua.org/ftp/ 4,下载glew-...

  • [迁移]关于ejoy2d在win上mingw的编译

    关于ejoy2d应该有不少人关注 最近看到想编下看看demo,感觉编译对于用惯ide来说确实有些麻烦,不过嘛 这样也好,简单,方便,不用配置那么多东西,一个make就可以做完,如果调试呢? lua写嘛,网上弄个就可以了,...

  • ejoy2d wnidows下环境搭建过程

    游戏客服端引擎第一步

  • [ejoy2d] - 安装

    1. 安装opengles sudo apt-get install libgles-mesa-dev ...4. 下载ejoy2d git clone https://github.com/cloudwu/ejoy2d make linux    转载于:https://www.cnblogs.com/venusSolar/p/3696577.html

  • ejoy2d 编译环境搭建 步骤最全无坑版本

    从github上下载到ejoy2d zip包之后, 解压, 进入ejoy2d源码目录, 直接make mingw, 会在当前目录下生成 ej2d.exe, 在mingw命令行下 运行 ej2d.exe examples/ex01.lua 即可看到运行效果:

  • 编程、创业、开源感悟——SDCC 2013讲师云风专访

    编者按:CSDN年度技术盛宴SDCC 2013中国...云风(真名吴云洋)曾任网易杭州研究中心总监,是网易《大话西游》、《梦幻西游》等游戏的主要开发者,他在2011年9月从网易辞职,并与前网易COO詹钟晖联合创办了简悦(EJOY

  • ejoy2d mac编译遇到问题

    平台:Mac Lua版本:5.3.2 请确定装的是5.3.2 不是请重装 错误1. _CF => CoreFoundation.framework Undefined symbols for architecture x86_64: "_CFArrayAppendValue", ... __glfwInitJoysticks i

  • Ejoy2D 开源(很简单的游戏图像引擎,利于追求极致物理文件大小)

    Ejoy2D 开源 我们的第一个手游差不多做完了,预计在明年 1 月初推广,目前内测的情况非常不错,我们也可以考虑开始下一步在手游领域立新项目了。 上个项目做的太匆忙,今年 4 月份才开始。因为决定做一个 2d 游戏...

Global site tag (gtag.js) - Google Analytics