代码之家  ›  专栏  ›  技术社区  ›  Abhishek Mishra

回顾我的游戏项目或(如何同行回顾我的项目)?

  •  2
  • Abhishek Mishra  · 技术社区  · 16 年前

    我刚刚完成了一个2+PrAlgRo的2D平台。它还处于一个不完整的阶段…

    我想知道如何进行同行评审的人谁是游戏开发。 我想回顾一下我的项目,理由是

    1. 玩游戏
    2. 碰撞检测
    3. 面向对象编程的使用
    4. 声音、效果等的编程
    5. 还有什么想法吗
    6. 我本可以做得更好的方法
    7. 优化的方法

    当前代码在某些地方看起来像垃圾…那么,你也可以提出一些简化技巧吗?

    你可以在更新的链接上查看我的项目(如果你愿意的话)- nincompoop (direct link)

    http://ideamonk.googlepages.com/nincompoop_distro.rar

    到目前为止,我正在切换到C和XNA,发现很容易和快速地学习所有内容,因为我对-

    http://catalog.xna.com/GameDetails.aspx?releaseId=341

    我不打算在这里销售任何产品或推广任何东西…我的目的是从更好的人那里得到更好的建议。至于我上传我的项目的页面,它不支持任何类型的广告。所以请放心。

    2 回复  |  直到 12 年前
        1
  •  3
  •   postfuturist    16 年前

    我在源代码中注意到的第一件事是,您的大部分游戏逻辑都在main.cpp文件中,嵌套深度为11个选项卡!出于代码组织目的,这是一场噩梦。当然,我第一场比赛也是这样。:)您可以做的第一件事是简化主游戏循环,使其看起来像这样:

    int main () 
    {
        game_object gob;
        gob.init_allegro();
        gob.load_assets();
        while(true) {
            gob.handle_inputs()
            if (!gob.update())
                break;
            gob.render();
        }
        gob.cleanup();
    }
    

    其他所有东西都应该重构到你的游戏对象类中。这样管理起来会容易得多,而且您的代码实际上可能适合页面,因为您可以避免深度嵌套。如果您发现代码的深度超过了3个标签,那么无论您在做什么,都需要重构成另一个方法,甚至是一个单独的类。

    我的第二个建议是用一些更理智的东西来代替你的Goto's:

    bool playerwins = check_win_condition();
    
    if(playerwins) {
        // win condition code
    } else {
        // lose condition code
    }
    
        2
  •  1
  •   Community Mofi    7 年前

    回顾上一集-

    我不明白为什么人们投你反对票并且冒犯你。保持良好的工作…_“DAOK(27分钟前)

    在要求同行评审时有什么可怕的错误吗?在按下“向下”按钮之前,请考虑一下,明天您可能也需要同行评审!阿披舍克米什拉(26分钟前)

    @道克:那正是我58秒前想知道的!阿披舍克米什拉(25分钟前)

    这太愚蠢了。这也许不符合一个问题的典型模式,但同行评议不是一件坏事,也不值得一个进攻性的少了4票。托马斯·欧文斯(23分钟前)

    @米切尔·塞勒斯:你知道吗,在我做这个项目的时候,有一个关于游戏开发的很好的讨论。所以我想最好把它放在复习课上。但是@stackoverflow…事情真的很棒!Y组合体人群更聪明,他们出现了令人惊讶的反馈“阿披舍克米什拉”(21分钟前)

    我认为这可能是问题的词组和语气。这听起来更像是产品发布,而不是寻求帮助的问题。如果它被形容为“如何恰当地同行评审我的项目”等,那么人们可能就不那么严厉了。马克·英格拉姆(21分钟前)

    关键是,这不是堆栈溢出的目的。它是为了询问特定的技术问题。_“Remi Despres Smyth(19分钟前)

    胡扯…是的,当我打这个问题的时候,它在我的脑海里翻滚…让我把它改成 真实的 问题!:)阿披舍克米什拉(18分钟前)

    在如何改进游戏方面,我们还可以提供技术反馈。此外,我还将发布源代码以供审阅!有没有办法再打开一个问题?阿披舍克米什拉(17分钟前)

    我要求进行代码审查,并在这里收到了它。阿披实克,如果有人重新打开这个,你可以编辑它,看看这个问题: K & R Exercise: My Code Works, But Feels Stinky; Advice for Cleanup? 作为代码审查问题的例子。约翰·鲁迪(12分钟前)

    @约翰:谢谢!希望它能起作用!