Фреймворк для игры в Java-игральные карты [закрыт]
-
23-09-2019 - |
Вопрос
Мы с друзьями в универе любим играть Говнюк до самого рассвета.Но скоро мы заканчиваем школу и уезжаем из города, так что, вероятно, какое-то время не будем собираться вместе на игру.
Я хочу разработать Java-приложение, которое мы могли бы использовать для воспроизведения Shithead и других наших любимых игр по сети.
Приложение, подобное этому уже существует, но является уродливым, глючным и не поддерживает наши домашние правила.Исходный код доступен, но там такой беспорядок, что я бы действительно предпочел начать с нуля, чем пытаться его реорганизовать!
Создание моей игры с использованием какого-нибудь стандартного api для игральных карт или фреймворка, если такая вещь существует, было бы лучше, чем начинать с нуля.Ответ на аналогичный вопрос SO заключалось в том, чтобы использовать JPC-API, который якобы предоставляет базовые услуги по игре в карты и их рендерингу.Но этот проект Sourceforge в настоящее время не предоставляет никаких файлов или исходного кода!
Есть ли альтернатива или где-то еще, чтобы найти этот фреймворк?
Вскоре мне также понадобится помощь в следующем:
- Услуги лобби (поиск других игроков)
- Игровой сетевой протокол (для обмена ходами между игроками)
- Теория игр (для написания компьютерным оппонентом)
- Определение условий выигрыша
- Разработка пользовательского интерфейса игры
Решение
Я рекомендую вам использовать Red-Dwarf для сервера и Jnag для связи клиент-сервер.
Ознакомьтесь с некоторыми примерами, которые вы можете использовать для начала.Кроме того, автор Jnag (я) всегда рад помочь людям использовать Red-Dwarf и Jnag.
Другие советы
Я думаю, что вы узнаете гораздо больше, самостоятельно создав ядро игры и используя существующие фреймворки для общих сервисов.
Существует достаточно вариантов взаимодействия клиент-сервер, от игровых лобби и протоколов до самостоятельного написания с помощью таких вещей, как JMS.
Что касается игровой логики, то это то, что делает вашу игру уникальной, так что продумайте условия выигрыша и все такое.
Для ИИ вашего противника вам необходимо предоставить функцию оценки, но вы, вероятно, можете использовать существующие фреймворки ИИ для выбора ходов с учетом этой функции.
Для графического интерфейса вокруг достаточно значков, вы, вероятно, сможете довольно легко закодировать элементарный графический интерфейс.