我刚用C ++ / Allegro完成了一个2d平台游戏。它还处于不完整的阶段......
我想知道如何从进入游戏开发的人那里进行同行评审。 我想以
为由审查我的项目当前代码在某些地方看起来像垃圾......所以你还可以建议一些简化技术吗?
您可以通过更新的链接查看我的项目(如果您愿意) - nincompoop (direct link)
http://ideamonk.googlepages.com/nincompoop_distro.rar
截至目前,我正在转向C#和XNA,发现它非常简单快速,因为我对此印象深刻 -
http://catalog.xna.com/GameDetails.aspx?releaseId=341
我不打算在这里出售任何产品或推广任何产品......我的目的是从更好的人那里获得更好的建议。至于我上传我的项目的页面,它不受任何类型广告的支持。所以请感到安全。
答案 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:谢谢!希望它有效!