我刚刚用C ++ / Allegro完成了一个2d平台游戏。它仍处于一个不完整的阶段...
我不知道如何进行游戏开发人员的同行评审。我想基于
审查我的项目当前代码在某些地方看起来像是垃圾,所以您还可以提出一些简化方法吗?
您可以在更新的链接上查看我的项目(如果需要)-nincompoop (direct link)
http://ideamonk.googlepages.com/nincompoop_distro.rar
截至目前,我切换到C#和XNA,发现它非常容易和快速,因为给我留下了深刻的印象-
http://catalog.xna.com/GameDetails.aspx?releaseId=341
我无意在这里销售任何产品或推广任何产品……我的意图是从更好的人那里获得使自己变得更好的技巧。至于我上载项目的页面,任何类型的广告均不支持该页面。因此请放心。
我在您的源代码中首先注意到的是,您的大部分游戏逻辑都位于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
}
上一集中的RECAP-
我不明白为什么人们会否决您并发动进攻。保持良好的工作……– Daok(27分钟前)
要求同行评审时出了什么大错?想想在按下向下按钮之前,明天您可能也需要同行评审! – Abhishek Mishra(26分钟前)
@@ Daok:那就是58秒钟前我真正想知道的! – Abhishek Mishra(25分钟前)
这很愚蠢。这可能不适合SO问题的典型模样,但同行评审不是一件坏事,也不值得进攻,而不必多过4次否决。 – Thomas Owens(23分钟前)
@@ Mitchel Sellers:你知道吗,当我在从事这个项目时,就游戏开发进行了很好的讨论..因此,我认为最好将其放在评论中..但是@ stackoverflow ...事情真的很棒! ycombinator人群更加聪明,他们提出了惊人的反馈– Abhishek Mishra(21分钟前)
我认为这可能是问题的短语和基调。听起来更像是产品发布,而不是寻求帮助的问题。如果将其表述为“如何正确地对我的项目进行同行评审”等,那么人们可能就不那么苛刻了。 –马克·英格拉姆(21分钟前)
重点是,这不是堆栈溢出的用途。用于询问特定的技术问题。 – Remi Despres-Smyth(19分钟前)
呜呜...是的,当我键入问题时,它在我脑海中滚动...让我将其改写为REAL问题! :) – Abhishek Mishra(18分钟前)
而且本人还可以提供有关如何改进游戏的技术反馈。此外,我还要提供源代码以供审核!有什么办法可以再次打开一个问题? – Abhishek Mishra(17分钟前)
我已要求进行代码审查,并在此处收到。 Abhishek,如果有人重新打开它并且您可以对其进行编辑,请看以下问题:K & R Exercise: My Code Works, But Feels Stinky; Advice for Cleanup?作为代码审查问题示例。 –约翰·鲁迪(12分钟前)
@@ John:谢谢!希望它能工作!
我只是喜欢这里有这么多人,如果他们觉得这个问题很愚蠢,就需要放下他们。如果有人要评论,为什么要这么消极。我意识到住在你妈妈的地下室里,没有生活会让你痛苦。我自己问了一个我需要帮助的问题,使我感到愚蠢。要求复审没有问题。如果有人告诉您,否则我不会关注。但也许是时候替换这个可怕的网站了!