Civilization и Total War

 

Имя
Пароль  
Забыли пароль?
Регистрация


CIVru.com / "Совет по концепции" - "Мозговой штурм" / Архив обсуждения минимальной модели мира
<< . 1 .  .   Версия для печати . Вверх
Автор Сообщение
Aku_Aku
Участник



Репутация: 636(???)
# Дата: 4 Фев 2010 20:12:02 Цитата

Вот. Что я могу понять, если анализировать то что написано (в псевдокоде) буквально.

Deimon:
class Unit implements Transfarable{

List<Transfarable> getInternalObjects();

}


Что у нас есть класс Юнит, который реализует интерфейс Транспортируемый.
И выдает список каких-то объектов приведенных к типу Транспортируемый, почему-то говоря что они внутренние.
Не густо.

Что из этого можно узнать?
Прежде всего для меня, как для программиста приплюснутого Улыбка, отнюдь не очевидно что возвращаемый List<Transfarable> -- это именно то что у нея внутри. Не говоря уже о том, что это не совсем правильный подход -- вот так походя отдавать наружу свое внутреннее состояние... инкапсуляция и все такое. Подмигивание


Дальше.
Мы знаем, что наш Транспортируемый -- это ничего более как объект представляющий просто груз не способный сам двигатся. (ИМХО для такого даже стыдно класс городить, достаточно максимум переопределить флоат)

[code]interface Transportable {

float getWeight();

}


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

Маловато будет.


Да, мы знаем что у нас еще есть какой-то Транспортер... но каким боком он к Юниту, совершенно не понятно.

interface Transporter extends Transportable, ActivableConsumer{

void setCurrentWayType(WayType wayType);

float getMaxSpeed();

float getMaxPayload();

}



Что же до оставшегося псевдокода.
Это конечно радует что у нас уже есть Потребитель,
но о нем мы знаем сейчас только то: с какой скоростью он способен потреблять (предполагая что флоат указывает вес в еденицу времени),
и что-то типа того сколько еще ему доступно для потребления... правда почему-то в виде неясной переменной типа GameObject Огорчение

interface Consumer{

GameObject getConsumableFood();

float getFoodUsageRate();

}



Кроме того что есть потенциальный Потреблятор, у нас еще есть активный потреблятор, которого можно явно заставить начать потреблять... но что, почему и зачем -- опять же не понятно. Не понятно как они связаеы с нашим Юнитом.

interface ActivableConsumer extends Consumer{

boolean isActive();

void setActive(boolean active);

int getMinUserCount();

GameObject getConsumableGood();

float getGoodUsageRate();

}



ЗЫ Вот так вот оно. Если не отвелекатся на высокие материи и оценивать голую прозу, а не высокий штиль. Подмигивание

Deimon
Кибердемон



Репутация: 1288(600)
# Дата: 4 Фев 2010 20:25:54 Цитата

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

И еще - хочешь обсуждать код написанный на псевдокоде аля Ява - ознакомся с ней. Твоя трактовка понятия "интерфейс" в корне не верна.

Aku_Aku
Участник



Репутация: 636(???)
# Дата: 4 Фев 2010 20:36:11 Цитата

Deimon:Еще раз - юнит - это набор объектов, передвигающихся как единое целое. Все. Никакой другой структуры у него нет.

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

Deimon:Aku_Aku:В каком виде хранится?
Неважно - это детали реализации.


Я и не прошу раскрывать эти детали.
А только дать осмысленное описание -- как себя будет вести объект, при разделении, слиянии, перемещении или создании наконец.

Кто и как создает юнит?

Только не говори мне что этот вопросы не входит в модель мира. Иначе тогда не понятно -- а что же входит? Из нетриваиального и интересного.


Deimon:Aku_Aku:Каким образом это будет видно игроку наконец?
Это вопрос представления, тут рассматривается только модель.


Это отговорки.
Я не прошу здесь рассказать какими спрайтами оно будет отрисовано,
а только то -- какие базовые манипуляции с юнитом будут доступны игроку, какими правилами он будет ограничен?
ИМХО резонный вопрос.

Aku_Aku
Участник



Репутация: 636(???)
# Дата: 4 Фев 2010 20:39:55 Цитата

Deimon:Аку-Аку, ты путаешь реальный код и псевдокод, который тут лежит просто как иллюстрация мыслей.

Я не путаю.
Просто я могу говорить только о том, что вижу. А вижу я пока только то, что здесь написано -- не больше.

Иожет быть когда-то придумаю интерфейсы к центральной нервной системе, и тогда можно будет просто выгрузить/загрузить весь набор мыслей друг другу.
Но пока же, приходистя пользоватся таким несовершенныцм способом как переписка.

Deimon:Твоя трактовка понятия "интерфейс" в корне не верна.

Да какая там проблема с интерфейсом?

Deimon
Кибердемон



Репутация: 1288(600)
# Дата: 4 Фев 2010 20:40:50 Цитата

Aku_Aku:Прежде всего для меня, как для программиста приплюснутого Улыбка, отнюдь не очевидно что возвращаемый List<Transfarable> -- это именно то что у нея внутри. Не говоря уже о том, что это не совсем правильный подход -- вот так походя отдавать наружу свое внутреннее состояние... инкапсуляция и все такое. Подмигивание

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

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

Вот ты пишешь:Aku_Aku:Мы знаем, что наш Транспортируемый -- это ничего более как объект представляющий просто груз не способный сам двигатся.
Нет такого. Все, что говорит интерфейс Транспортабельный - что у такого объекта обязательно есть вес. Все. Может он двигаться сам, не может - не известно. Может он поедать человеков с земляничным вареньем или не может - неизвестно. Ничего больше не известно.

Короче говоря, расстроил ты меня.

Deimon
Кибердемон



Репутация: 1288(600)
# Дата: 4 Фев 2010 20:52:44 Цитата

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

Еще раз - псевдокод неполный. Если будешь его пытаться трактовать как полный - будешь писать бессмысленные посты.

Aku_Aku:В каком виде хранится?
Неважно - это детали реализации.

Я и не прошу раскрывать эти детали.
А только дать осмысленное описание -- как себя будет вести объект, при разделении, слиянии, перемещении или создании наконец.

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

Aku_Aku:Я не прошу здесь рассказать какими спрайтами оно будет отрисовано,
а только то -- какие базовые манипуляции с юнитом будут доступны игроку, какими правилами он будет ограничен?

Игрок вообще не манипулирует юнитами. Игрок манипулирует исключительно Целями ИИ и Глобальными настройками государства. Юнитами манипулирует ИИ. ИИ потенциально может выполнить любую операцию, которую ему позволит совершить Модель мира, которая тут собственно и обкатывается.

Aku_Aku
Участник



Репутация: 636(???)
# Дата: 4 Фев 2010 20:56:16 Цитата

Deimon:Ты меня просто расстраиваешь. Ну где тут внутреннее состояние? Мы же не говорим о том, чтобы дать прямой доступ к внутренней переменной. Мы просто спрашиваем у Юнита из чего он состоит и он честно рассказывает, подготовив нам список. Что, он должен скрывать эту информацию во Имя Инкапсуляции?

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

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


Deimon:У объекта может еще быть сто тыщ мильенов других методов, и он может реализовать еще 100 интерфейсов.

Да. Но доступ к ним ты получеш только путем динамического приведения типов.
Какой смысл тогда огород городить? Почему сразу не отдать имено ту информацию которая нужна?
Тем более, что в большинстве случаев нам будет нужна не поэлементная информация, а просуммированая, не так ли?
Тот же общий вес, чтобы высчитать возможную скорость и/или нагрузку на дорогу.


Deimon:Короче говоря, расстроил ты меня.

Вот видиш.
Просто ты пользуешся широко распространеным правилом -- если оппонента забыл упомянуть о чем-то, то значит он этого не знает, и вообще дурак каких мало. %)

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

Deimon
Кибердемон



Репутация: 1288(600)
# Дата: 4 Фев 2010 21:02:30 Цитата

superregistr:Как будет узнаваться информация от этого отрядом? Она буде приходить с задержкой? Кто ее будет доставлять информацию? Проблема задержки во времени.
Точно скажу, что информация будет передаваться мгновенно - с задеркой информации сильно усложняется картина мира как для ИИ (ему придется учитывать как запаздывание информации и соответсвенно запаздывание отправки приказов), так и для человека - аццки усложняется интерфейс. Идея была интересная, но в свое время мы ее пообсуждали и отказались по вышеуказанным причинам.



superregistr:Хороший вопрос. Как будет происходить доставка продовольствия/амуниции конкретному отряду? Кто будет доставлять? Допустим отряд ушел в далекую экспедицию по суше.
Я сейчас как раз решаю, что правильнее - оставить реализацию через "юниты-грузовики" или все же сделать обобщенную логистическую схему...

Aku_Aku
Участник



Репутация: 636(???)
# Дата: 4 Фев 2010 21:03:31 Цитата

Deimon:Еще раз - псевдокод неполный.

Я это отлично понимаю.
В каждом посте почти у меня оговорка, что сужу из того что есть, и жду большего.
А то что коментирую, так это не ради критики, а чтобы показать в каком направлении мне (думаю не только мне) хотелось бы расширеного описания. Чтобы тебе не приходилось распылятся на описание каждой мелочи, а суметь рассказать о самом важном.


Deimon:Игрок манипулирует исключительно Целями ИИ и Глобальными настройками государства. Юнитами манипулирует ИИ. ИИ потенциально может выполнить любую операцию, которую ему позволит совершить Модель мира, которая тут собственно и обкатывается.

Ок.
Теперь стало понятнее.

Но все равно, как по-твоему? Игроку интересны правила по которым ИИ может оперировать с юнитами? То каких результатов он может добится?

Deimon
Кибердемон



Репутация: 1288(600)
# Дата: 4 Фев 2010 21:11:35 Поправил: Администратор Цитата

Аку-Аку, наш разговор не несет полезной нагрузки - мы опять уходим в ненужные детали реализации. Если псевдокод не понятен - не комментируй его, комментируй словесное описание. Все.

Aku_Aku:Игроку интересны правила по которым ИИ может оперировать с юнитами? То каких результатов он может добится?
Оффтоп.

Aku_Aku
Участник



Репутация: 636(???)
# Дата: 4 Фев 2010 21:21:51 Цитата

Deimon:Если псевдокод не понятен - не комментируй его, комментируй словесное

Как скажеш... конечно.
Но ведь за псевдокод я взялся не просто так, а именно потому, что увидел в нем хоть на каплю, а больше, конкретики.
А словесных описания, такого смыслового наполнения, мы уже здесь видели, и не раз. С известным результатом.

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

Никто не требует от тебя "вынь да полож".

Deimon
Кибердемон



Репутация: 1288(600)
# Дата: 4 Фев 2010 21:33:38 Цитата

Aku_Aku:Так не стесняйся, скажи что еще не готов.
А мы подождем когда у тебя появится что-то более детальное и тогда уже обсудим.

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

Aku_Aku
Участник



Репутация: 636(???)
# Дата: 4 Фев 2010 22:07:49 Цитата

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

Как скажеш...

но

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

Чем шире пласт ты снимеш, тем больше работы себе задаш,
и тем меньше вероятность того, что хоть часть из того что понаописываеш, сможеш реально сделать.

А ведь тут штука какая -- судить будут не по широте замысла, а только по результату.


ЗЫ Я просто старался помочь чем могу. Если возможно, не допускать те ошибки, об которые сам обломал зубы (почти). Огорчение(

Yorick
Реал-цивер


Репутация: 997(???)
# Дата: 5 Фев 2010 00:44:18 Поправил: Модератор Цитата

Deimon:Остальные объекты делятся на используемые (Активированные)
Точнее наверное "активируемые", "активированные" - это УЖЕ приведенные в действие, а не способные быть приведенными.
Deimon:Точно скажу, что информация будет передаваться мгновенно - с задеркой информации сильно усложняется картина мира как для ИИ (ему придется учитывать как запаздывание информации и соответсвенно запаздывание отправки приказов), так и для человека - аццки усложняется интерфейс. Идея была интересная, но в свое время мы ее пообсуждали и отказались по вышеуказанным причинам.С одной стороны задержку инфы действительно непросто внедрить, с другой - это мы как и в Циве будем в самые ранние эпохи знать ВСЕ ОБО ВСЕХ самых дальних триремах? Очень жаль Огорчение
Deimon:Я сейчас как раз решаю, что правильнее - оставить реализацию через "юниты-грузовики" или все же сделать обобщенную логистическую схему...
Смотрел реализацию этого дела в "The Ages of Man"? А у Stepha с ИхФанатиков в "Steph Strategic Simulator" , вернее в их идеях, в самой ССС вроде до реализации не дошло.

И об асинхронности ходов: предполагается ли наличие системы условий - по сути той же упр. паузы, но работающей только в момент раздачи приказов - т.е. игрок предполагает, что его может не быть у компа в момент раздачи приказов, и оставляет приказ типа "если не случится то-то - напр. нападение на него - продолжать моделировать его зону по предыдущим приказам", для ускорения общей игры?

Да, и наверное стОит пост с описанием структуры юнитов передвинуть вверх и прилепить к общей концепции. А может, в самом первом посте описать
Deimon:Остальные объекты делятся на используемые (Активированные)
Точнее наверное "активируемые", "активированные" - это УЖЕ приведенные в действие, а не способные быть приведенными.
Deimon:Точно скажу, что информация будет передаваться мгновенно - с задеркой информации сильно усложняется картина мира как для ИИ (ему придется учитывать как запаздывание информации и соответсвенно запаздывание отправки приказов), так и для человека - аццки усложняется интерфейс. Идея была интересная, но в свое время мы ее пообсуждали и отказались по вышеуказанным причинам.С одной стороны задержку инфы действительно непросто внедрить, с другой - это мы как и в Циве будем в самые ранние эпохи знать ВСЕ ОБО ВСЕХ самых дальних триремах? Очень жаль Огорчение
Deimon:Я сейчас как раз решаю, что правильнее - оставить реализацию через "юниты-грузовики" или все же сделать обобщенную логистическую схему...
Смотрел реализацию этого дела в "The Ages of Man"? А у Stepha с ИхФанатиков в "Steph Strategic Simulator" , вернее в их идеях, в самой ССС вроде до реализации не дошло.

И об асинхронности ходов: предполагается ли наличие системы условий - по сути той же упр. паузы, но работающей только в момент раздачи приказов - т.е. игрок предполагает, что его может не быть, и оставляет приказ типа "если не случится то-то - напр. нападение на него - продолжать моделировать его зону по предыдущим приказам", для ускорения общей игры?

Да, и наверное стОит пост с описанием структуры юнитов передвинуть вверх и прилепить к общей концепции. А может, в самом первом посте описать и гейм-фокус - в 2х абзацах что будет за игра.

И как-то в чем-то приходится поддержать Аку - не совсем понятны фразы типа "Мир состоит из Суши и Моря, разделенных Побережьем." Мир - это что? шар, цилиндр, прямоугольник, "не важно"? Суша-море - клетки, узлы, вообще абстракция? и т.д.

superregistr
иностранный агент



Репутация: 607(???)
# Дата: 5 Фев 2010 11:14:35 Поправил: superregistr Цитата

Deimon:А что делать? Если прототип будет успешно работать с полной информацией, потом можно будет попробовать усугубить ситуацию. Но сразу закладывать неполноту инфы - это слишком. Правильно, нужно строить поэтапно,от простого к сложному.

Ктулху
Участник


Репутация: 888(???)
# Дата: 6 Фев 2010 00:12:17 Поправил: Ктулху Цитата

Deimon:Реализацию Ктулху перенес в отдельную тему - пока спойлер сделать не могу.
хм... я вижу, что мои усилия были потрачены в суе. очень жаль.

Deimon:Я придерживаюсь того, что города возникают во вполне определенных точках, наиболее выгодных для размещения города. И "немного левее" город ставить просто бессмысленно
т.е. подразумевается, что, тот, кто строит город имеет полную инфу об окрестности карты или ребру в твоей технологии.

Deimon
Кибердемон



Репутация: 1288(600)
# Дата: 6 Фев 2010 01:23:24 Цитата

Ктулху:хм... я вижу, что мои усилия были потрачены в суе. очень жаль.
Ты меня не понял. Я стремлюсь к тому, чтобы эта конкретная тема была максимально компактной и удобной для редактирования. Твой чересчур объемен, чтобы это оставить тут. Поэтому я создал отдельную тему, где можно будет обсудить твою реализацию, а не удалил его нафиг в архив. И ты не ответил на
Deimon:Что касается твоей реализации - интересно. Хотя учти что tick() не имеет смысла на непрерывном времени, должен быть tick(float elapsedTime)
Ктулху:т.е. подразумевается, что, тот, кто строит город имеет полную инфу об окрестности карты или ребру в твоей технологии.
по сути дела да, поскольку логика градостроительства идет от "о! здесь хорошее место для города", а не от "где бы построить город-то?"

Yorick
Реал-цивер


Репутация: 997(???)
# Дата: 6 Фев 2010 11:50:35 Цитата

Deimon, так ты думал - может подключить хоть к разговору akasoft'a, Solver'a с ИхФанатиков (он по-русски неплохо ботает), а еще бы Сигизмунда из "тумана войны" разыскать? Каждый из них делал реальные вещи для стратегии.

Aku_Aku
Участник



Репутация: 636(???)
# Дата: 6 Фев 2010 12:37:59 Цитата

Я что-то понять не могу
Когда мы говорили на счет мультиплеера, ты утверждал что против.
А тут, уже несколько постов подряд только о том и речь, что есть несколько игроков и нужно как-то между ними разруливать время.
ИМХО, это опять тот момент, когда было бы неплохо иметь документ со структурой диздока, в котором бы такие моменты четко указывались в начальных разделах,
а потому уже дальше шла детализация чего нужно.
ИМХО, от э того все равно не убежиш, если действительно хочеш что-то делать серьозно. Так почему бы не использовать такой подход с самого начала?

superregistr
иностранный агент



Репутация: 607(???)
# Дата: 8 Фев 2010 18:59:03 Цитата

Deimon:Он таки совсем непрерывный, поскольку местоположение Юнитов и других игровых объектов не ограниченно узлами графа, но они могут быть и на любой точке ребра. Это не клетки. Совсем не клетки. Непонятно как будет происходить поиск окрестности, например, юнит должен видеть соседний юнит. Но нет клеток. Значит каждый юнит будет перебирать расстояния до все других юнитов за ход. Или он будет очерчивать вокруг себя окружность и искать в нем соседних юнитов? И непонятно, юнит будет ходить как хочет или только по узлам?

Ктулху
Участник


Репутация: 888(???)
# Дата: 8 Фев 2010 19:19:27 Цитата

superregistr:И непонятно, юнит будет ходить как хочет или только по узлам?
да, непонятно.

Создатель еще не посвятил нас в эту тайну бытия. наверно мы пока не достигли достаточного уровня просветления.

остается только молится!

Ктулху
Участник


Репутация: 888(???)
# Дата: 8 Фев 2010 22:07:15 Цитата

Deimon:Важное замечание: поскольку все это может легко привести к тому, что каждому ИИ нужно будет иметь свою собственную версию мира, на которой будет указано состояние мира по последним разведданным, то скорее всего в первых версиях я полностью проигнорирую информационную модель - все ИИ будут знать все о мире, единственной тайной будут Цели других ИИ.
поэтому имеет смысл вывести код ИИ из кода сервера в отдельный(ые) процесс(ы).

Aku_Aku
Участник



Репутация: 636(???)
# Дата: 17 Фев 2010 12:18:44 Цитата

Буду краток. Улыбка

Йорик правильно заметил.
Это юнит можно представить точкой.
Город же, он лучше всего соответствует площади.

Так что может лучше всего сразу принять что населенный пункт -- это область ограниченная ребрами графа?

<< . 1 .  .   Версия для печати . Вверх
Эта тема закрыта. Ответы больше не принимаются.

Администрация форума: editors@civru.com
Rambler's Top100
XML [?]