查看我的游戏项目或(如何同行评审我的项目)?

时间:2008-10-29 14:01:03

标签: allegro

我刚用C ++ / Allegro完成了一个2d平台游戏。它还处于不完整的阶段......

我想知道如何从进入游戏开发的人那里进行同行评审。 我想以

为由审查我的项目
  1. 游戏
  2. 碰撞检测
  3. 使用OOP
  4. 声音,效果等的编程
  5. 任何进一步的想法
  6. 我可以做得更好的方式
  7. 优化方法
  8. 当前代码在某些地方看起来像垃圾......所以你还可以建议一些简化技术吗?

    您可以通过更新的链接查看我的项目(如果您愿意) - nincompoop (direct link)

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

    截至目前,我正在转向C#和XNA,发现它非常简单快速,因为我对此印象深刻 -

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

      

    我不打算在这里出售任何产品或推广任何产品......我的目的是从更好的人那里获得更好的建议。至于我上传我的项目的页面,它不受任何类型广告的支持。所以请感到安全。

2 个答案:

答案 0 :(得分:3)

我在源代码中注意到的第一件事是,你的大部分游戏逻辑都在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();
}

其他所有内容都应该重构到你的game_object类中。以这种方式管理会更容易,因为您可以避免深度嵌套,因此您的代码实际上可能适合页面。如果你发现你的代码深度超过3个标签,那么无论你做什么都需要重构为另一个方法甚至是一个单独的类。

我的第二个建议是用这样的东西替换你的goto:

bool playerwins = check_win_condition();

if(playerwins) {
    // win condition code
} else {
    // lose condition code
}

答案 1 :(得分:1)

上一集的RECAP -

我不明白为什么人们会投票让你失望​​和冒犯。保持良好的工作...... - Daok(27分钟前)

要求进行同行评审时出现了什么错误?在按下按钮之前想一想,明天你可能也需要同行评审! - Abhishek Mishra(26分钟前)

@Daok:这就是58秒之前我想知道的! - Abhishek Mishra(25分钟前)

这太傻了。它可能不适合SO问题的典型模式,但同行评审并不是一件坏事,也不值得进攻,而不是4票。 - 托马斯欧文斯(23分钟前)

@Mitchel Sellers:你知道吗,我在做这个项目的时候对游戏开发进行了很好的讨论..所以我觉得把它放在评论中会很好..但是@ stackoverflow ......事情真的很棒! ycombinator人群更聪明,他们提出了惊人的反馈 - Abhishek Mishra(21分钟前)

我认为这可能是问题的短语和基调。这听起来更像是产品公告,而不是帮助问题。如果它被称为“如何正确地同行审查我的项目”等,那么人们可能不那么苛刻。 - Mark Ingram(21分钟前)

重点是,这不是Stack Overflow的用途。这是为了询问具体的技术问题。 - Remi Despres-Smyth(19分钟前)

woops ...是的,当我输入问题时,它在我脑海里滚动......让我把它改成 REAL 问题! :) - Abhishek Mishra(18分钟前)

并且可以提供关于如何改进游戏的技术反馈..此外我还提供了源代码以供审查!有没有办法再次打开一个问题? - Abhishek Mishra(17分钟前)

我已经要求进行代码审核,并在此处收到。 Abhishek,如果有人重新打开此内容并进行编辑,请查看此问题:K & R Exercise: My Code Works, But Feels Stinky; Advice for Cleanup?作为代码审核问题示例。 - 约翰鲁迪(12分钟前)

@John:谢谢!希望它有效!