写了一个 Canvas 游戏框架,求批评

2017-12-08 03:27:16 +08:00
 thomasyim

V 站的小伙伴们好,这学期上了一门 Game Engine Development 的课,课程的设置是在写 5 个 game assignments 的过程中不断完善,抽象出自己的 game engine。

在前几天考试结束后,我和另一个同学写完了文档,并发布了我们的 2D Canvas 游戏框架 Zion。虽然我知道目前它还有很多不完善的地方,各种 potential bugs,而且可用性不一定和我们期待的那么好。但是鉴于我们已经在这个框架的帮助下完成了 5 个小游戏的制作,所以我有继续维护、完善下去的信心。

我一直很喜欢一句话,"If You're Not Embarrassed By The First Version Of Your Product, You ’ ve Launched Too Late"。所以在这个节点上我选择了让更多人知道这个项目,而不是担心自己技术上的不成熟会带来某种尴尬。

另外,我在这门课程的学习过程和开发过程中也总结了一些体会和经验,如果你对这方面内容感兴趣,不妨花 5 分钟时间读一读这篇博客:

Building A Canvas Game Engine From Scratch

在这里发帖,最主要的目的是希望得到比我更有经验的前辈的建议和指导。另外,也希望能找到志同道合的小伙伴一起愉快地交流、写代码。

如果看完之后觉得还不错,能给个 star,那就感激不尽啦!

Reference

Zion Source Repo

文档

Gallery Page

4474 次点击
所在节点    程序员
21 条回复
batnss
2017-12-08 09:28:17 +08:00
支持下
rekulas
2017-12-08 09:30:30 +08:00
老早就看到帖子了 怎么没人捧场啊 我先占座 虽然不用也支持个
ryuzaki113
2017-12-08 10:29:34 +08:00
star 了
ResidualSoils
2017-12-08 11:08:51 +08:00
已 Star,我实在不敢在 V2EX 上提想要中文文档。
thomasyim
2017-12-08 11:52:46 +08:00
@batnss @rekulas @ryuzaki113
真的很感谢!
thomasyim
2017-12-08 11:54:40 +08:00
@ResidualSoils 没什么敢不敢的我觉得,只不过目前阶段想把重点放在可用性和构建这方面上。当然如果有更多小伙伴有这个要求的话,很愿意将它完善下去,包括翻译。
YyYyYyy
2017-12-08 12:06:41 +08:00
可以问下你上的什么专业有这种课?
oswuhan
2017-12-08 12:09:36 +08:00
态度诚恳必定干货
ResidualSoils
2017-12-08 12:58:43 +08:00
@thomasyim 支持!
wxsm
2017-12-08 14:50:15 +08:00
请问:相比现有产品(如 PIXI.js / Egret 等),优势是什么?有调查过吗?游戏引擎是一个对性能特别敏感的东西,请问有相应的介绍吗?
thomasyim
2017-12-08 15:31:12 +08:00
@wxsm 感谢你的提问,我觉得你的问题非常好。首先,从背景来看,到目前为止,这个框架是我和一个外国小哥上一门课程和课余投入一定时间的产物,也如我之前所说,必定还很不完善。另外,回答你的问题,诚实来讲,我们对这方面了解甚少,既不是专业的游戏引擎开发人员,也没有投入太多的精力做调研。我写这个游戏框架的初衷和主要目的是想在锻炼自己能力(抽象、组件化)的同时,能写出一个对新手友好的手脚架,和大家一起学习。这个“友好”既体现在“使用”,也体现在“开发”。我相信很多人都能读懂我的源码,正因为如此,这给我们使用这个工具也带来了信心。所以这是我认为最大的优势。

关于性能,我同意你的说法。但是我也同意“过早的优化是万恶之源”。我觉得如果你在开发一款游戏的时候,第一个想法是性能的话,说明思路不是很正确。我当然是希望自己的成果能在各方面都有所突破,但是以我个人的水平,很难考虑到方方面面。性能不是我考虑的首要因素,但是不代表未来不是。
thomasyim
2017-12-08 15:31:50 +08:00
@YyYyYyy 在美国读研,CS
loadfield
2017-12-08 17:16:40 +08:00
收藏了👍
colincat
2017-12-08 17:18:11 +08:00
@thomasyim 开发游戏,第一关注就是性能,没毛病。
HowToMakeLove
2017-12-08 17:36:14 +08:00
@ResidualSoils 我来
老板,给我来一份中文文档!
shunia
2017-12-08 18:51:43 +08:00
现在市面上的引擎都是基于 webgl 的了,没看到 readme 里有提到这一点.如果基于 canvas 的话,性能问题会导致可能只能做非常轻量级的 h5 游戏(2048 之类).

游戏第一个层面的考量里肯定是包含性能的.如果明知性能不达标,那么肯定会被 pass 掉.
当然更重要的是核心功能的完整度和稳定性,以及相应的工具链是否完善.
shunia
2017-12-08 18:51:56 +08:00
不过能写引擎还是真的挺厉害的,佩服.
iVanilla
2017-12-08 19:12:06 +08:00
支持 WebGL 渲染吗?
thomasyim
2017-12-08 23:52:39 +08:00
@shunia @iVanilla 目前还不支持 WebGL。也确实如你所说目前只能做轻量级的 h5 游戏,所以在性能方面没遇到什么瓶颈,因此没多加考虑。十分同意您这点,目前想先把精力放在“核心功能的完整度和稳定性,以及相应的工具链是否完善”这方面。
iVanilla
2017-12-09 10:06:00 +08:00
@thomasyim 我建议使用 pixi 做渲染引擎,因为性能最好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/412968

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX