V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
thomasyim
V2EX  ›  程序员

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

  •  
  •   thomasyim ·
    cyan33 · 2017-12-08 03:27:16 +08:00 · 4652 次点击
    这是一个创建于 2541 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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

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

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

    游戏第一个层面的考量里肯定是包含性能的.如果明知性能不达标,那么肯定会被 pass 掉.
    当然更重要的是核心功能的完整度和稳定性,以及相应的工具链是否完善.
    shunia
        17
    shunia  
       2017-12-08 18:51:56 +08:00
    不过能写引擎还是真的挺厉害的,佩服.
    iVanilla
        18
    iVanilla  
       2017-12-08 19:12:06 +08:00 via Android
    支持 WebGL 渲染吗?
    thomasyim
        19
    thomasyim  
    OP
       2017-12-08 23:52:39 +08:00
    @shunia @iVanilla 目前还不支持 WebGL。也确实如你所说目前只能做轻量级的 h5 游戏,所以在性能方面没遇到什么瓶颈,因此没多加考虑。十分同意您这点,目前想先把精力放在“核心功能的完整度和稳定性,以及相应的工具链是否完善”这方面。
    iVanilla
        20
    iVanilla  
       2017-12-09 10:06:00 +08:00 via Android
    @thomasyim 我建议使用 pixi 做渲染引擎,因为性能最好。
    nofastfat
        21
    nofastfat  
       2017-12-09 11:51:12 +08:00
    那我直接推荐 egret,工作流极其完善,注意是极其。性能也不错,支持 canvas 和 webgl 的无缝切换,balabala 各种游戏开发的便捷,就不一一赘述了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   944 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:27 · PVG 05:27 · LAX 13:27 · JFK 16:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.