我即将在eclipse中开始一个个人JAVA项目,我和朋友在这里创建游戏服务器,游戏引擎和基于现有纸牌游戏的游戏。游戏服务器将是最后的,但是现在我想专注于构建卡游戏引擎,然后是游戏本身。
在学校,我们只会创建像gameEngine.whatever
这样的软件包,然后不同的游戏就会出现在像game.gameName.whatever
这样的软件包中。我正在考虑将游戏引擎作为自己独立的项目,然后让游戏成为一个单独的项目,而不是将它们全部放在一个项目中并根据包将它们分开,就像我在学校里完成的那样。在我的实习中,我们有多个项目一起工作,但根本没有在课程中提到过。
与其他方式相比,它有什么不同吗?或者他们基本相同?谢谢!
答案 0 :(得分:4)
如果我理解你的情况,你现在不应该过多担心代码组织。当然,在某些项目中,事先明确了哪些内容。在许多情况下并非如此。
在您的情况下,当您开始实施时,您将更清楚地了解要采取的方向和组织。使用像eclipse这样的IDE的一个优点是,您可以在稍后阶段重构代码(包括代码,甚至跨项目移动包/类)。对于eclipse,代码不仅仅是文件/目录。它正在查看解析树,因此可以让您安全地移动许多精细的东西 - 在包或项目中移动代码是它可以做的最微不足道的事情。
只关注你必须做的事情,并尝试用真实的东西取得进步。如果您不得不担心多个项目,您将知道何时开始。我建议先从以下内容开始:
暂时创建一个项目。首先找到一个标准和唯一的包前缀。假设你决定选择像“org.abc”这样的东西(只是一个不好的例子)
现在开始处理您的项目。随着您不断添加课程,请专注于组织包装。随时随地添加包。比如..
org.abc.game.engine
org.abc.game.util
org.abc.game.games.mario
org.abc.game.engine.phy
org.abc.game.server
org.abc.game.common
...
在您想要的一段时间后,您可以创建新项目。例如,您可以决定
将当前项目称为 GameMario
将整个org.abc.game.common和org.abc.game.util与一些文件一起移动到名为 GameCommon 的项目中。两个项目中可以存在相同的包(在许多情况下也可以)
将org.abc.game.engine,org.abc.game.server及其所有子包移至新项目 GameServer ,并继续在该项目中添加游戏服务器代码
GameMario 和 GameServer 都会对 GameCommon
答案 1 :(得分:2)
如果“X”可以单独使用,或者有(或可能)至少2个使用“X”的不同项目,我会说你应该为“X”单独创建一个项目。否则,包裹没问题。
答案 2 :(得分:1)
使用多个项目而不是包具有一些优点 您可以单独编译,测试和运行服务器,客户端和引擎。 我知道这也适用于包装,但它会更清洁。如果像git中那样存在代码协作,那么管理起来会更容易。
如果您怀疑将引擎用作客户端中的模块,则可以始终将一个项目用作另一个项目的库。这样,您可以将工作分开,但在开发游戏时可以毫不费力地使用这些功能。
另一方面,存在一些缺点。您的代码将是三个独立的实体。因此,如果您习惯于在任何地方移动一个jar文件并向单个类发出参数,告诉它运行哪个模块,则此项目方法可能无效。
这一切都取决于您的应用和您的风格。如果我是你,我会做三个项目。
祝你好运。