开源图形引擎 ejoy2d 作者云风专访 -凯发k8国际

2014-02-26  编辑 tuhaihe 评论(10条) 有35669人浏览
ejoy2d是一款图形引擎,基于c和lua开发,底层是一个十分简单的核心层,基本上只负担绘制工作,上层语言是lua。ejoy2d是国内简悦(ejoy)游戏公司所开发的一款游戏图形引擎,旨在帮助开发人员轻松地嵌入到游戏引擎中,方便开发者定制自己所需的功能。

开源协议:mit
代码托管地址

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

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


ejoy2d项目创建的初衷是什么?

云风: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有哪些与众不同的地方?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

附录:csdn ostc 2014大会信息

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

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

大会凯发k8国际娱乐官网入口官网:。


原文地址: / 作者:张红月。
  • 大小: 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
开源项目推荐网站:
7 楼 2014-05-19 22:26
思维理性,有想像力,有执行力
缺少执行力啊。
6 楼 2014-04-03 12:05
pop1030123 写道
peak 写道
vase 写道
need_faith 写道
发型很不错
赞!

赞!

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

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

赞!

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

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

发表评论

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

相关推荐

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

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

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

  • 去下载

  • 云风的ejoy2d-engine

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

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

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

  • ejoy2d帮助信息

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

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

  • 黎明 这是一个技术演示,展示了如何在开发自定义图形效果。 该项目的灵感来自于hge的演示 。 这是屏幕截图: 建造 1.出口资源 * cd res * ./export.sh 2.建立应用程式 ... * open build/ios/dawn.... 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应该有不少人关注 最近看到想编下看看demo,感觉编译对于用惯ide来说确实有些麻烦,不过嘛 这样也好,简单,方便,不用配置那么多东西,一个make就可以做完,如果调试呢? lua写嘛,网上弄个就可以了,...

  • 游戏客服端引擎第一步

  • 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

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

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

  • 平台:mac lua版本:5.3.2 请确定装的是5.3.2 不是请重装 错误1. _cf => corefoundation.framework undefined symbols for architecture x86_64: "_cfarrayappendvalue", ... __glfwinitjoysticks i

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

global site tag (gtag.js) - google analytics
网站地图