У меня есть проект по созданию roguelike, каким-то образом абстрагирует UI от движка, а движок от создания карты, линии сайта и т. д. Чтобы сузить фокус, я сначала хочу просто заставить UI (клиент игрока) и движок работать.
Моя текущая идея состоит в том, чтобы сделать клиента в основном программой, которая решает, что один персонаж (игрок, монстры) будет делать в свой ход, и ждет, пока он снова сможет двигаться. Итак, у каждого монстра есть клиент, и у игрока тоже. Клиент игрока распечатывает карту, ожидает ввода, отправляет его движку и сообщает игроку, что произошло. Клиент монстра делает то же самое, за исключением того, что он не распечатывает карту и не использует ИИ вместо ввода с клавиатуры.
Прежде чем я пойду дальше, если это кажется каким-то образом запутанным способом делать что-то, моя цель - научиться, а не писать рогалик. Это путешествие, а не пункт назначения.
Итак, мне нужно выбрать, какая форма ipc подходит эта модель лучшая.
- Моя первая попытка использовала каналы, потому что они самые простые, и я написал пользовательский интерфейс для игрока и программу для передачи инструкций, таких как, где разместить карту и игрока. Хотя это работает, он позволяет только одному клиенту - общаться через стандартный ввод и выводить его.
- Я думал о том, чтобы сделать движок демоном, который смотрит в спул, где клиенты при запуске создают уникальные временные файлы для каждого клиента, чтобы давать инструкции движку и получать обратную связь.
- Наконец, я сделал небольшое вводное программирование с сокетами. Кажется, что они могут быть подходящим вариантом и позволят игре, возможно, когда-нибудь превратиться в сетку. Я бы хотел, если возможно, использовать более простое решение, и, поскольку я с ними не знаком, оно более подвержено ошибкам.
- Я всегда открыт для предложений.