Аль-Митра, я, наверное, тоже попробую, с вашего позволения. Но отдельно, знания С++ как равно и Qt мне не позволят вам помочь, потому попытаюсь реализовать на Ruby и SDL чуть другую версию, как вижу сам.
У вас, как я вижу, тоже запланировано поле из гексагонов. Если необходимо(чтобы два раза математику не делать), могу скинуть код класса Hex(правда на руби, но переписать не проблема) позволяющий полностью вычислять всё, связанное с шестиугольниками: вершины, центр гекса с определенным индексом, какой индекс у гекса содержащего определенную точку, расстояние между шестиугольниками, путь прокладывать(правда без учета препятствий)…
update: теперь и с учетом. реализовал алгоритм A*. Кораблики теперь уверенно облетают планеты и не врезаются друг в друга
Вот так прорисовал структуру из шести миров на плоскости. Хорошо подходит для влияния миров друг на друга и, как мне кажется, достаточно наглядна.
Центр — основа сиура, узел обмена между всеми участниками. От него же идет связка с другими сиурами.
Шесть огней вокруг — порты подключения миров. Цветовые линии — энергия, соединяющая все воедино, цвет обозначает собой тип развития цивилизации.
adm0r, а мне нравится! Если говорить о плоскостном отображении, то это более чем рациональная схема. Скажем так - основные условия, которые проговариваются в тексте, соблюдены в этой схеме от и до. Усложнять ее, добавляя еще какеи-то параметры, я для этой задачи считаю излишним.
Очень здорово!..
Спасибо, значит буду думать о механике влияния планет друг на друга. Какие-то идеи есть по этому поводу?
Игра ведется за один из конклавов. Сначала у игрока есть одна планета с высоким уровнем развития. Он должен создать узел Сети и начать привязывать к нему другие планеты. Планеты влияют друг на друга в зависимости от мощности эгрегора. Эгрегор зависит от количества населения и уровня сплоченности. И т.д. Думать надо …
adm0r, я бы чуть иначе подошла к вопросы (если бы я хоть что-то понимала в играх).
Для начала надо определить параметры, которые РЕАЛЬНО можно использовать в игре. Их, по идее, не так много - для игрового пространства, не по реалу, конечно. И обозначить эти параметры так, чтобы было понятно, что чему противопоставляется.
Черт... последняя игра, в которую я играла, были какие-то "Герои меча и магии", причем это было больше 10 лет назад. Муж долго смеялся, когда узнал, что я даже пасьянсы, прошитые в винду, не умею раскладывать =/
Я умею играть только в Adobe Creative Suite, да и то моё железо уже не может угнаться - до пятой версии пока не дошла.
Научите меня, пожалуйста, играть хоть во что-нибудь другое...
Мир:
Характеризуется такими показателями
а) Сектор и Индекс. Позволяют однозначно идентифицировать мир.
б) Самоназвание
в) Количество населения
г) Тип развития, уровень развития
д) Гуманность
ж) Как результат вышеуказанных параметров изменяется мощность и тип эгрегора
Подробнее:
Тип развития:
1) Первый уровень развития:
1.1) Технологический
1.2) Биологический
1.3) Магический
Количество населения. Чем развитей мир, тем больше в нем людей. Соотношение уровень развития/количество населения влияет на уровень гуманности населения. Также, военные действия обозляют людей, тоесть, после завоевания планеты(необходимый перед зонированием этап) уровень гуманности на планете падает.
Мощность эгрегора планеты вычисляется как результат умножения гуманности на количество населения.
adm0r, надо как-то разграничить... ммм... н-да, пробелы в образовании влияют =(
Сижу и думаю, какой параметр сделать основным для перевода "мира" в индиго или в мадежнту? Может быть, как-то использовать тип развития?..
То есть начальный мир, теоретически, должен быть "белым" - игрок определяет, куда он его отправит - усилив какой-то параметр, и тем ослабив противоположный. И не могу понять, правомерно ли сразу давать сектор с индексом, или нет? То есть сектор-то понятно, но вот индекс...
Evita, я и вовсе не заморачивался по поводу маженты или индиго. Речь идет о игре за конклав, Контролирующих в игре нет. Цель — создать мощный конклав, стабилизировать развитие миров, и вывести их всех к уровню ухода в Сферы Творения.
Развитием миров игрок не управляет напрямую(тип игр — Indirect Control), оно меняется в зависимости от соседей по сиуру, что должно заставлять игрока тщательно выстраивать сиуры и миры так, чтобы они влияли друг на друга положительно.
Сектор и индекс это просто координаты, для удобства игрока.
adm0r, ну да, можно и так. А всё равно игрок получается контролирующим - потому что принципы, по которым идет развитие схемы, совпадают с теми, что использует контроль.
adm0r
Приветствую альтернативный проект! Особо радует то, что он также будет (я надеюсь!) кроссплатформенным. Также надеюсь на плодотворный обмен идеями между проектами. Буду благодарна за математику хекса, просьба скинуть на al-mitra гав! ru.
Evita писал(а):
Черт... последняя игра, в которую я играла, были какие-то "Герои меча и магии", причем это было больше 10 лет назад.
Сижу и думаю, какой параметр сделать основным для перевода "мира" в индиго или в мадежнту? Может быть, как-то использовать тип развития?..
Как мне кажется, алгоритм зонирования смежных хексов - это Индиго, несмежных - мажента. Я, по крайней мере, пока делаю так, если только Вы не скажете иначе.
Аль-Митра
Кросплатформенный это да, в один exe запаковать можно. Идеи — обязательно
С математикой сложнее, скидываю вам её на al-mitra<собака>mail.ru, правильно?
i, j - номер гекса. столбец и строка. Гексы строятся со сдвигом строки(каждая нечетная строка сдвинута относительно четной на половину ширины)
size, w - расстояние между центрами соседних гексов, оно же ширина гекса.
r - радиус вписанного круга.
s - радиус описанного круга.
h - полтора s (высота строки состоящей из гексов)
polygon - принимает индекс гекса, возвращает точки, являющиеся вершинами гекса.
index - принимает координаты точки, возвращает индекс гекса в котором эта точка находится
дальше по аналогии
adm0r
Ну у меня примерно то же самое, только вписанный и описанный круги не используются. Вместо этого используются какие-то загадочные константы, а что они значат - хз. Я их из Qt examples своровала. )))
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы