Разработка стратегии Java в реальном времени

Я подхожу к концу своего первого года CS, и я думал, что отличный способ консолидировать все, что я узнал в этом году, будет личным игровым проектом.

Я хотел бы реализовать 2D-основанную rts, я думаю по линиям Starcraft I, Warcraft II или даже командовать и побеждать. У меня будет около 3 месяцев без перерывов для реализации игры.

Для тех, кто имеет опыт программирования Java, у меня есть несколько вопросов:

Является ли реалистичным создание 2D-движка с нуля через 3 месяца? Если да, то какие хорошие книги/ресурсы для начала?

Было бы лучше изменить какой-то существующий проект? Я бы подумал, что опыт работы с большим количеством кода другого был бы хорошим, поскольку наше знакомство с такими темами в степени cs undergrad кажется очень редким, если оно не существует.

Есть ли достойные проекты с открытым исходным кодом 2d rts, которые каждый мог бы порекомендовать? Я просмотрел несколько, но большинство, похоже, написано в c/С++

Мое скромное спасибо

Редактирование: спасибо за быстрые ответы, я думаю, что, возможно, это была плохая идея опубликовать это в спешке, так как я думаю, что исказил то, что хочу.

Когда я говорю "по строкам Warcraft II и т.д.", я имею в виду больше, чем стиль rts, использующий спрайты. Я не собираюсь реализовывать игру почти в этом комплексе, больше похожую на базовый прототип.

Моя цель была бы чем-то более похожа на плоскую текстурированную карту с некоторыми основными препятствиями, такими как деревья, единый блок, создающий структуру, вроде казармы. Я хотел бы, чтобы подразделения имели бары здоровья, могли двигаться, атаковать и умирать (и, возможно, морфинг в другой блок).

Дальнейшие цели состоят в том, чтобы реализовать некоторую базовую траекторию, используя модифицированную версию алгоритма кратчайшего пути dijkstra, единицы дальности с атакой на промах и т.д.

Я не планирую реализовывать никаких противников или ай или сетей или что-то в этом роде.

Ответ 1

Я думаю по линиям Starcraft I, Warcraft II или даже командовать и побеждать

Удостоверьтесь, что вы очищаете свой ум от соответствия всем возможностям любого из них. Они взяли на себя большие команды разработчиков за несколько лет, с многомиллионными бюджетами, поэтому вы даже не можете рассчитывать на их поддержку. Они называются AAA по какой-то причине. Тем не менее, нет причин, по которым вы не можете минимально обезоружить свой дизайн или сделать крошечную игру в своем жанре, предполагая, что у вас есть предыдущий опыт создания небольших игр.

Поджанром RTS, который может быть выполнен в течение этого времени, является игра Tower Defense. Растения против Зомби - хороший пример. Причина, по которой я предлагаю этот поджанр, заключается в том, что вы можете избежать реализации какого-либо ИИ или поиска путей, которые, как известно, трудно получить, и я думаю, что технически невозможно реализовать "отлично", особенно с ограниченным бюджетом ЦП.

Убедитесь, что вы правы в своей области. Поощрите "полную" игру над новыми функциями, потому что вы можете в любое время называть ее "сделанной". Получите вашу игру, воспроизводимую как можно скорее, и не потейте польский или детали, пока вам не придется. Добавьте один тип врага и один тип игрового устройства (только с одной способностью, если вы подумываете о внедрении нескольких способностей на единицу). Создайте экран заголовка, меню (даже если меню - это просто "экран щелчка для воспроизведения" ), экран игры, экран уровня или статистика, статистика игроков на разных уровнях и т.д. После того, как вы все это проглатываете, проводите равное время добавляя новые функции и полируя геймплей/графику/ошибки.

Как только у вас будет готовая игра, "полная" игра готова (независимо от того, насколько она мала по масштабу), найдите настоящего художника, чтобы делать графику для вас. Блестящая игра всегда привлекает аудиторию, независимо от того, насколько простой игровой процесс.

Ответ 2

Очень нереально думать, что вы можете реализовать 2D-движок RTS где-нибудь даже близко к сложности в таких играх. Возможно, вы могли бы получить что-то очень грубое, если бы вы были опытны, но с одним годом я думаю, что это сомнительно.

Я не могу не чувствовать, что было бы намного лучше для вас, если бы вы использовали существующий движок или фреймворк и построили его. Как вы сказали, работа с другим кодом, вероятно, будет хорошим опытом обучения. Это позволит вам экспериментировать, не увязнув в том, что нужно делать все.

Ответ 3

Держите его простым, или вы просто утонете в сложности, прежде чем обойтись, чтобы иметь что-нибудь воспроизводимое. Поскольку вы не пробовали это раньше, у вас будет много орехов, чтобы взломать, и вы не знаете, сколько времени они будут принимать.

Также помните, что подготовка отчета и документация также требуют времени.

Идея хорошая, и я думаю, что вы можете снять целую игру, если найдете хорошие строительные блоки. Я бы посоветовал обсудить это с вашим учителем, чтобы узнать, что приемлемо для вас. Будет ли это, например? быть в состоянии сделать игру на движке с открытым исходным кодом, если вы добавите некоторые нетривиальные функции?

Обновление: Кажется, это несколько движков, доступных на Java, в http://www.devmaster.net/engines/list.php?fid=6&sid=1

Ответ 4

Возможно, имеет смысл взглянуть на некоторые существующие усилия, чтобы понять, в чем вы смотрите. Они должны дать вам некоторые идеи или даже код, на котором можно построить:

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

Мне было бы очень сложно откусить (с нуля) в то время, когда это точно. Это все, что я могу сказать.

EDIT: Я подумал, что JOGRE не то, что вы ищете. Тогда я подумал об этом, и, похоже, у него будут все правильные виды сантехники для того, что вы пытаетесь сделать.

ИЗМЕНИТЬ СНОВА: После моего ответа один из связанных вопросов со ссылками выглядел соответствующим: Java Game Programming: JOGL vs LWJGL?

Ответ 5

Люди часто забывают, что создание игр намного БОЛЕЕ, чем просто кодирование техники. Его создание контента, дизайн игры, звук и музыка, "забавный фактор". Если вы будете активно использовать существующие API-интерфейсы или движки, это будет возможно, но написание его с нуля без опыта в течение 3 месяцев - это как спросить себя, можете ли вы в это время запрограммировать 100 000 LOC, что означает 1111 LOC в день. Это может быть возможно, но не в том случае, если вам нужно подумать и подумать, и просто наличие кода не делает никакой игры.

Ответ 6

Хорошо, если это дает вам какую-то надежду, мы с моей командой в настоящее время работаем над RTS-игрой под названием "The Genesis Project". Мы называем себя MotherBoard Games, или MBG для краткости. Если вы хотите, я всегда ищу больше кодеров. Вы можете написать мне по электронной почте на [email protected], я могу дать вам несколько советов и советов, которые составят мой 6-летний опыт, 2 из которых были потрачены на создание этой игры (чтобы дать вам возможность)