Я создаю в Django игру на основе текста и поворотов на Google App Engine с патчем app-engine-patch. Упрощенная концепция заключается в том, что каждый игрок может построить несколько разных юнитов и зданий, чтобы улучшить свою базу и сражаться с другими игроками за очки.
Мой вопрос касается проектирования моделей Джанго, мне кажется, что здания и подразделения, которые будут иметь различную силу атаки, срок службы и т. Д., Должны быть своими собственными моделями, например:
class Unit(db.Model):
name = db.StringProperty()
type = db.ReferenceProperty(UnitType)
targets = KeyListProperty(UnitType)
attack = db.IntegerProperty()
life = db.IntegerProperty()
price = db.IntegerProperty()
Тогда моя проблема заключается в том, как проще всего установить количество игроков для конкретного юнита / здания. Например, игрок должен иметь возможность купить, скажем, 15 самолетов.
Тогда я мог бы просто установить «самолет» как IntegerProperty в модели игрока и использовать имя отряда в качестве идентификатора при получении силы атаки и срока службы самолета. Это, однако, не было бы очень динамичным дизайном, так как модель игрока еще не знает, присутствует ли на самом деле «самолет». Я бы хотел, чтобы модель игрока каким-то образом отражала существующие модели юнитов / зданий.
Это моя первая попытка создать сетевую игру, так что я могу быть совершенно не в курсе, есть ли у кого-нибудь мнение по этому поводу? Есть ли лучший способ сделать это?