Java实时策略游戏开发

我即将结束我的第一年CS,我认为巩固今年学到的所有东西的好方法将是个人游戏项目。

我想实现一个基于2D的rts,我正在思考星际争霸I,魔兽II甚至命令和征服。 我将有大约3个月没有中断来实施游戏。

所以对于有java游戏编程经验的人来说,我有几个问题:

在3个月内从头开始设计2D rts引擎是否现实? 如果是这样,有什么好的书籍/资源可以入手?

修改一些现有项目会更好吗? 我认为必须与很多其他人的代码合作的经验会很好,因为我们在大学本科学位课程中接触这些主题似乎非常罕见,如果不存在的话。

是否有任何人可以推荐的开源2d rts项目? 我看了几个,但大多数似乎是用c / c ++编写的

我谦虚的谢谢

编辑:感谢您的快速回复,我认为这可能是一个不好的主意,因为我认为我歪曲了我想做的事情。

当我说“沿着魔兽世界II等”时,我的意思更像是那种使用精灵的rts风格。 我不打算实现几乎那么复杂的游戏,更像是一个基本的原型。

我的目标是更像一个平面纹理的地图,有一些基本的障碍,如树木,一个单位生产结构像营房。 我想让这些单位拥有健康棒,能够移动,攻击和死亡(并可能变身为另一个单位)。

远程目标是使用dijkstra最短路径算法的修改版本,具有导弹攻击的远程单位等来实现一些基本路径。

我不打算实施任何反对者或ai或网络或类似的东西。

我正在思考星际争霸我,魔兽争霸II,甚至命令和征服

确保你清醒地想要匹配任何一个的全部范围。 他们花费了大量的开发团队多年来制作数百万美元的预算,所以你甚至不希望接近这些。 他们被称为AAA是有原因的。 话虽这么说,假设你以前有过制作小游戏的经验,你就没有理由不能将它们的设计做到最低限度,或者制作一个小型游戏。

在这段时间内可能可行的RTS子类型是塔防游戏。 植物大战僵尸就是一个很好的例子。 我建议这个子类型的原因是你可以避免实现任何类型的AI或路径查找,这是非常难以工作,我认为在技术上不可能“完美”实现,尤其是在CPU预算有限的情况下。

确保在你的范围内统治。 支持“完整”游戏而不是新function,因为您可以随时将其称为“完成”。 尽快让你的游戏可玩,并且在你不得不这样做之前不要沾沾自喜。 添加一个敌人类型和一种类型的玩家单位(只有一种能力,如果你想要实现每个单位的多种能力)。 制作标题画面,菜单(即使菜单只是“点击屏幕播放”),屏幕上的游戏,关卡完成或统计屏幕,跨级别玩家统计等等。一旦你完成了所有的解决,花费相同的时间添加新function并抛光游戏/图形/错误。

一旦你准备好可玩的“完整”游戏(无论范围有多小),找一个真正的艺术家为你做图形。 无论游戏玩法多么简单,shiny的游戏总能吸引观众。

认为你可以在任何地方实现2D RTS引擎甚至接近这类游戏的复杂性是非常不现实的。 如果你有经验,你可能会得到一些非常粗糙的东西,但只有一年我认为这是值得怀疑的。

如果您使用现有的引擎或框架并构建它,我会情不自禁地觉得它会好得多。 就像你说的,使用其他代码也可能是一个很好的学习经验。 这将允许您进行实验,而不必陷入必须做所有事情。

保持简单,否则你会在复杂之前淹没,然后才能玩得开心。 既然你以前没有尝试过,你会有很多坚果要破解,你不知道它们需要多长时间。

还要记住,报告编写和文档也需要时间。

这个想法很好,如果你找到好的积木,我认为你可以完成整个游戏。 我建议与老师讨论这个问题,听听你可以接受的内容。 如果添加一些非平凡的function,是否可以在开源引擎上进行游戏?

更新:似乎是Java提供的几个引擎, url为http://www.devmaster.net/engines/list.php?fid=6&sid=1

人们经常忘记,创造游戏不仅仅是编码技术的东西。 它涉及内容创作,游戏设计,声音和音乐,“有趣的因素”。 如果你大量使用现有的API或引擎,那么它是可能的,但是从头开始编写它没有3个月的经验就像问你自己是否可以在这个时间内编写100,000 LOC,这意味着每天1111 LOC。 这可能是可能的,但如果你不得不设计和思考,并且只是让代码不进行任何游戏。

也许有必要考虑一些现有的努力,以了解你所看到的范围。 这些应该给你一些想法甚至代码来构建:

http://www.duncanjauncey.com/btinternet/old/javagame/game.html

http://en.wikipedia.org/wiki/Lightweight_Java_Game_Library

http://www.ardor3d.com/

http://en.wikipedia.org/wiki/JMonkeyEngine

对于我来说,在确定的时间内(从头开始)咬一口是很多的。 这就是我能说的全部。

编辑:我想也许JOGRE不是你想要的。 然后我想到了它,似乎它会为你想做的事情提供所有正确的管道。

再次编辑:在我的回答之后,侧面的一个相关问题链接似乎相关: Java游戏编程:JOGL与LWJGL?

好吧,如果它给你任何希望,我和我的团队目前正在开发一款名为“创世纪项目”的RTS游戏。 我们称自己为MotherBoard Games,简称MBG。 如果您愿意,我一直在寻找更多的程序员。 你可以发送电子邮件给我mpmn5891@gmail.com,我可以给你一些建议和提示,形成我6年的经验,其中2个用于制作这个游戏(给你一个范围)