我即将结束我的第一年CS,我认为巩固今年学到的所有东西的好方法将是个人游戏项目。
我想实现一个基于2D的rts,我正在思考星际争霸I,魔兽II甚至命令和征服。我将有大约3个月没有中断来实施游戏。
所以对于有java游戏编程经验的人来说,我有几个问题:
在3个月内从头开始设计2D rts引擎是否现实? 如果是这样,有什么好的书籍/资源可以入手?
修改一些现有项目会更好吗?我认为必须与很多其他人的代码合作的经验会很好,因为我们在大学本科学位课程中接触这些主题似乎非常罕见,如果不存在的话。
是否有任何人可以推荐的开源2d rts项目?我查看了一些,但大多数似乎是用c / c ++编写的
我的谦虚谢谢
编辑:感谢您的快速回复,我想也许这是一个糟糕的主意,因为我认为我歪曲了我想要做的事情。
当我说“沿着魔兽世界II等”时,我的意思更像是使用精灵的rts风格。我不打算实现几乎那么复杂的游戏,更像是一个基本的原型。
我的目标是更像是一个平面纹理地图,有一些基本的障碍物,如树木,一个单位产生结构,如营房。我想让这些单位拥有健康棒,能够移动,攻击和死亡(并可能变身为另一个单位)。
远程目标是使用dijkstra最短路径算法的修改版本,带有导弹攻击的远程单位等来实现一些基本路径。
我不打算实施任何反对者或ai或网络或类似的东西。
答案 0 :(得分:33)
我正在思考星际争霸I,魔兽争霸II甚至命令和征服
确保你清醒地想要匹配其中任何一个的全部范围。他们花费了大量的开发团队多年来制作数百万美元的预算,所以你甚至不希望接近这些。他们被称为AAA是有原因的。话虽这么说,假设你以前有过制作小游戏的经验,你就没有理由不能在极少数情况下嘲笑他们的设计,或制作一个类型的小游戏。
在这段时间内可能可行的RTS子类型是Tower Defense游戏。植物大战僵尸就是一个很好的例子。我建议这个子类型的原因是你可以避免实现任何类型的AI或路径查找,这是众所周知的难以工作,我认为在技术上不可能“完美”实现,特别是在CPU预算有限的情况下。 / p>
确保在你的范围内统治。支持“完整”游戏而不是新功能,因为您可以随时将其称为“完成”。尽快让您的游戏可玩,并且在您不得不这样做之前不要沾沾自喜。添加一种敌人类型和一种类型的玩家单位(只有一种能力,如果你想要实现每个单位的多种能力)。制作标题屏幕,菜单(即使菜单只是“点击屏幕播放”),屏幕上的游戏,关卡完成或统计屏幕,跨级玩家统计等等。一旦你完成了所有的解决,花费相同的时间添加新功能并抛光游戏/图形/错误。
一旦你准备好可玩的“完整”游戏(无论范围有多小),找一个真正的艺术家为你做图形。无论游戏玩法多么简单,闪亮的游戏总能吸引观众。
答案 1 :(得分:6)
认为你可以在任何地方实现2D RTS引擎甚至接近这类游戏的复杂性是非常不现实的。如果你有经验,你可能会得到一些非常粗糙的东西,但只有一年我认为这是值得怀疑的。
如果您使用现有的引擎或框架并构建它,我会情不自禁地觉得它会好得多。就像你说的,使用其他代码也可能是一个很好的学习经验。这将允许您进行实验,而不必陷入必须做所有事情。
答案 2 :(得分:5)
保持简单,否则你只会躲在复杂性中,然后才能玩得开心。既然你以前没有尝试过,你会有很多坚果要破解,你不知道它们需要多长时间。
还要记住,报告编写和文档也需要时间。
这个想法很好,如果你找到好的构建模块,我认为你可以完成整个游戏。我建议与老师讨论这个问题,听听你可以接受的内容。它会是吗?如果添加一些非平凡的功能,可以在开源引擎上进行游戏吗?
更新:似乎是Java提供的几个引擎http://www.devmaster.net/engines/list.php?fid=6&sid=1
答案 3 :(得分:3)
或许看一些现有的努力来了解你所看到的范围是有意义的。这些应该给你一些想法甚至代码来构建:
http://www.duncanjauncey.com/btinternet/old/javagame/game.html
http://en.wikipedia.org/wiki/Lightweight_Java_Game_Library
http://en.wikipedia.org/wiki/JMonkeyEngine
对于我来说,在确定的时间内(从头开始)咬掉会很多。这就是我所能说的全部。
编辑:我想也许JOGRE不是你想要的。然后我想到了它,似乎它会为你想做的事情提供所有正确的管道。
再次编辑:在我的回答之后,旁边的一个相关问题链接似乎相关:Java Game Programming: JOGL vs LWJGL?
答案 4 :(得分:3)
人们常常忘记,创造游戏不仅仅是编码技术的东西。它涉及内容创作,游戏设计,声音和音乐,“有趣的因素”。如果你大量使用现有的API或引擎,那么它是可能的,但是在3个月内没有任何经验从头开始编写就像问自己是否可以在这段时间内编写100,000 LOC,这意味着每天1111 LOC。这可能是可能的,但如果你不得不设计和思考,并且只是让代码没有游戏,那就不可能了。
答案 5 :(得分:1)
如果它给你带来任何希望,我和我的团队目前正在开发一款名为“创世纪项目”的RTS游戏。我们称自己为MotherBoard Games,简称MBG。如果你愿意,我一直在寻找更多的程序员。你可以发送电子邮件给我mpmn5891@gmail.com,我可以给你一些建议和提示,形成我6年的经验,其中2个用于制作这个游戏(给你一个范围)