Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Стратегия на Delphi, Зацените мысль 
:(
    Опции темы
-Vadim-
  Дата 29.8.2003, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 10.8.2003

Репутация: нет
Всего: нет




Я вроде не нарушаю правила форума своей темой, т.к. застал разговор кого с кем уж не помню, но точно помню, кого-то высокопоставленного. И этот некто гласил: не обязательно задавать в форуме вопросы и давать ответы. Можно также засылать туда кучи полезной инфы, коей, я думаю, и является мое дальнейшее изложение предназначенное в первую очередь любителем создания игр на Delphi.

Ну, так вот, сейчаз буду речь вести об алгоритме небольшой игровой стратегии. Самого кода вероятно не будет или он будет в небольшом кол-ве (все это сделано специально, для пущщей наглядности и прозрачности).

1. Краткое описание:
Игрок играет на игровом поле, при помощи игровых фишек (юнитов). Поле представляет собой поделенную на некие квадраты карту, которую, что бы вы думали, игрок должен отвоевывать. (Кстате, вставление неких строк “от автора” в монолог, сделано автором умышленно – для создания некого диалога). Против игрока направлена вся мощь искуственного интелекта, распологающего похожими по характеристикам игрока, юнитами.

2. Принцыпы исполнения:

Во первых: форма делается полноэкранной (убираем бордюр, делаем ее поверх всех, максимилизируем).

Во вторых: на форму кладется карта из *.bmp. Координаты квадратов (квадраты для простоты) представляться в виде массивов ( чтобы была возможность отслеживать перемещения юнитов и закрашивать поля в случае захвата территории).

В третьих: создаются юниты заложенные в ImageList.




Продолжение следует (просто кончается мое время). Оставляйте свои комментарии. Это подтолкнет меня к продолжению статьи. Если эта статья останется незаметной, я (автор), не обязуюсь ее продолжить.


PM MAIL   Вверх
p0s0l
Дата 29.8.2003, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: нет
Всего: 112



Ну, графический аспект вряд ли кого-то заинтересует, это - последнее дело, а ты начал с него. Может еще и про звуки вначале расскажешь ?
Меня, например, больше интересует программирование AI. Или ты освещаешь техническую сторону стратегоигроделания ?
И потом большая разница между RTS и TBS (пошаговые стратегии). Ты похоже собираешься рассказывать про пошаговую ?
И лучше будет, если ты будешь рассказывать на каком-нибудь простом примере, а то придумать AI для абстрактной стратегии любой сможет ("Анализируешь текущее положение своих войск относительно войск противника", "Перебираешь все варианты на глубину 3 хода", "Выбираешь лучший и ходишь")...



--------------------
С уважением, г-н Посол.
PM   Вверх
Akella
Дата 29.8.2003, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 2
Всего: 329



а почему именно на три хода, а если на 5, то искусственный интелект, может быть умнее?
PM MAIL   Вверх
p0s0l
Дата 29.8.2003, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: нет
Всего: 112



Цитата(dsergey @ 29.8.2003, 16:44)
а почему именно на три хода, а если на 5, то искусственный интелект, может быть умнее?

dsergey - будет умнее, если на 10 - еще умнее! smile.gif



--------------------
С уважением, г-н Посол.
PM   Вверх
Unregistered
Дата 30.8.2003, 04:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
Ну, графический аспект вряд ли кого-то заинтересует, это - последнее дело, а ты начал с него. Может еще и про звуки вначале расскажешь ?

Ответ: Во всем должна быть последовательность. Дом как известно с крыши не стоиться. Просто потом будет понятнее, что откуда и куда (пример: я делаю игровое поле из 10x10 клеток (что б проще было) их индексирую, ну и если ты не читаешь мысли, не чего не разберешь т.к. в коде длинных пояснений ни кто (наверное) не вставляет). А вот прыгать со строчки (это я про все тот же дом) на строчку не самый лучший вариант кодинга на мой взгляд. И потом, как мне кажеться лучьше программы (если они не крохи) вначале разобрать (продумать) к примеру на бумаге, а уже потом кодировать, но не наобарот.
Цитата
Ты похоже собираешься рассказывать про пошаговую ?

Ответ: Yes.
Цитата
будет умнее, если на 10 - еще умнее!

Ответ: Да хоть на 100, умнее от этого не какой интелект не будет. Его надо сделать самообучаемым, а вернее: заставь его хотеть жить и он начнет анализировать. Но к сожалению мне не известны удачные примеры такого подхода.
  Вверх
beif
Дата 30.8.2003, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.8.2003
Где: Россия, Кемерово

Репутация: нет
Всего: 1



Кстати, а почему на Delphi??? Я тут пока что ни одной строчки кода Дельфийского не увидел smile.gif Тут идет разговор по поводу алгоритма и вообще в общих чертах smile.gif А вообще мысль хорошая, меня уже год мучает, только правильно сказано выше - надо сначало алгорим AI сделать, а уж потом думать про максимизацию, бордюр, звуки и все такое...

Надо 0:
Придумать смысл! (Не писать же Героев заново smile.gif они уже есть...)

Надо 1:
Придумать как этот смысл (придуманный в п. 0) будет делаться и что к чему...

Надо 2:
Придувать алгоритм реализации "делопроизводства смысла (из п. 1)" (AI и все такое...)

Надо 3:
Разработать и сделать управление для юзера

Надо 4, 5, 6, 7....:
Графика, звук и прочие причиндалы...

Вот так-то, я думаю smile.gif

PM MAIL WWW ICQ   Вверх
&-ray
Дата 30.8.2003, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 15.4.2003
Где: Казахстан, г Аста на

Репутация: нет
Всего: нет



Главное - алгоритм AI
а что касается остальных причиндалов (в особенности графика), то уже давно разработаны алгоритмы реализации для таких игрушек (советую посетить http://delphigfx.mastak.ru)

Это сообщение отредактировал(а) &-ray - 30.8.2003, 16:49


--------------------
"Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б.

--------------------
И снова мышь беру я в руки
Куда иду? - Конечно в сруки!
PM MAIL WWW   Вверх
-Vadim-
Дата 31.8.2003, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 10.8.2003

Репутация: нет
Всего: нет



O’key! Раз люди откликнулись. Значит звезды горят потому, что это кому ни будь надо. Так вот. Если нужен Al, то будет вам Al. Честно признаться у меня его пока в коде нет, но проблем я здесь не вижу. Так что, буду выкладывать его по мере готовности. (Но в данный момент, я немного занят, так что идти это будет не слишком быстрыми темпами).

Однако!!! Хочу предложить вам выкладывать сюда, свои варианты развития этого вопроса. Так как, коллективная работа, она таки продуктивнее одиночной. И потом разные подходы это всегда интересно.

Отвечаю на высказывания:

Цитата
Кстати, а почему на Delphi???
Все просто. Это та среда от которой я без ума. Хотя я конечно допускаю, не самая удачная для разработки игр.

Цитата
Придумать смысл!
Цель статьи не написание коммерческой, конкурентно-способной версии, а познание. Хотя в идеале, было бы конечно не плохо.



PM MAIL   Вверх
maxim1000
Дата 31.8.2003, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



не знаю как смысл, но без правил не обойтись (если, конечно, здесь не будет предложен способ создавать искусственный интеллект для произвольных правил smile.gif)


--------------------
qqq
PM WWW   Вверх
beif
Дата 31.8.2003, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.8.2003
Где: Россия, Кемерово

Репутация: нет
Всего: 1



ЛЮДИ! Давайте сначала ИДЕЮ (aka СМЫСЛ aka ПРАВИЛА) придумаем. А потом начнем реализовыватьconfused.gif Лично мне эта идея (написать игру) нравится... просто попробовать свои силы, узнать новое и т.п. Тока не охора Героев или AOE заново писать, давайте хоать что-нить хоть как-нить отличное от них придумаем... и НАПИШЕМ smile.gif
PM MAIL WWW ICQ   Вверх
&-ray
Дата 31.8.2003, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 15.4.2003
Где: Казахстан, г Аста на

Репутация: нет
Всего: нет



Сколько не думал, все Герои выходят smile.gif
ЗЫ Надо сделать гибрид из разных игрушек, вот и будет новая игра.


--------------------
"Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б.

--------------------
И снова мышь беру я в руки
Куда иду? - Конечно в сруки!
PM MAIL WWW   Вверх
&-ray
Дата 1.9.2003, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 15.4.2003
Где: Казахстан, г Аста на

Репутация: нет
Всего: нет



Ну короче говоря, была у меня такая мысль по поводу игрушки (даже начинал ее реализовывать):
Пошаговая стратегия.
Смысл игры - развить свое государство и захватить весь мир (ничего сверхестественного smile.gif ).
Игровое поле - мир, поделенный на отдельные ячейки, чтобы передвинуться на одну ячейку необходимо потратить один ход (один ход - один месяц).
Игровое поле имеет ландшафт и высота над уровнем моря влияет на урожайность в этом районе.
Юниты одинакового "ранга" (крестьяне или солдаты или спецназ и т.д.) могут объединяться в одной ячейке игрового поля.
В самом начале каждому игроку дается 50 крестьян и 2000 единиц зерна. Они строят деревню (звучит громко, на самом деле на строительство деревни теряется всего один ход), причем построить деревню может только группа из 30 крестьян (не меньше).
После постройки деревни крестьяне начинаю сеять пшеницу (причем надо распределить, какое количество пшеницы будет засеяно, а сколько останется на пропитание для населения (один человек за один месяц (ход) съедает одну единицу зерна)). Сбор урожая происходит через 6 месяцев после посева (причем посевная и уборочная кампания происходит строго в определенные месяцы).
Каждый год (через 12 ходов) происходит прирост населения (прирост равен половине количества крестьян, находящихся в деревне в момент прироста (надеюсь понятно smile.gif ))
Группа из 60 крестьян может построить гарнизон (строительство его занимает 2 хода). В гарнизоне могут оставаться крестьяне и обучаться военному делу (обучение занимает 4 хода), после чего эти крестьяне превращаются в солдат (они отличаются более высокими показателями выносливости и силы), за один ход они могут передвинуться на две ячейки.
Далее 30 солдат могут построить лагерь наемников и обучаться там до "ранга" спецназ и т.д.
После формирования приличной армии можно нападать на соседа и заваевывать его земли.

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

Лично мне эта идея нравится, осталось все это дело реализовать wink.gif



--------------------
"Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б.

--------------------
И снова мышь беру я в руки
Куда иду? - Конечно в сруки!
PM MAIL WWW   Вверх
-Vadim-
Дата 1.9.2003, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 10.8.2003

Репутация: нет
Всего: нет



&-ray, а по какому принципу у тебя строиться игровое поле, гексагонально или как-то иначе?

Цитата
даже начинал ее реализовывать
На чем запнулся?
PM MAIL   Вверх
p0s0l
Дата 1.9.2003, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: нет
Всего: 112



Получается какой-то менеджмент, а я то думал тут собираются писать пошаговую стратегию... И уж больно избита зерно-крестьянская тема. Если уж кто-то собирается придумывать что-то оригинальное, то и на самом деле нужно что-то оригинальное, особенное, а не переделка старых правил или склеивание нескольких...
Просто я думаю так: распределение - это дело для калькулятора, а не для мозгов, тут над AI и думать-то не придется, он все время будет действовать по одному и тому же простому правилу... Например, если взять игру "точки"(тоже своеобразная пошаговая стратегия): я сам знаю как играть, но AI придумать не могу. Взять твою идею: я пойму как тут выгоднее распределять ресурсы в зависимости от обстоятельств, так я без особых проблем и запрограммирую AI.
Ты ничего не рассказал про бой, или будет так: вижу я врага - сидит в вражеской деревне 100 крестьян, у меня 30 солдат, указываю им на деревню, тут выскакивает окошечко: "Победа! убито 90 крестьян, 10 взято в плен, потери 15 солдат". Так ? Если так, то ...

Если уж собрались тут из-за стратегии, то и придумывайте стратегию, а то такую игру писать - только время терять, тут никакого опыта не получишь, все дело упрется в рутинную работу над интерфейсом, графикой и звуком.
По играбельности по моей оценке до King's bounty не дотягивает (помните такую ? - предшественник героев...).

И вообще, -Vadim- не сказал, что примерно должно быть, можеть быть он имел в виду игру типа героев - два режима: походный (+сюда же можно засунуть менеджмент) и боевой (для каждого режима свой AI, своя графика, правила и т.д.)... Или же какой-то один бой на большой карте, или даже маленькой (в качестве примера на ум пришел LaserSquad) ? Или вообще что-то другое ?

Извиняюсь, особенно перед &-ray, что все тут раскритиковал, ведь сам-то я ничего не предложил...



--------------------
С уважением, г-н Посол.
PM   Вверх
-Vadim-
Дата 1.9.2003, 02:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 10.8.2003

Репутация: нет
Всего: нет



Важно: прошу вас выразить по этой теме ваше мнение!!!!!!!!!!!!!!!


Искусственный интеллект (AL) Искусственный интеллект

Теория:
Существует 2 государства. На игровом (гексагональном) поле которое поделено на двое. Имеют изначально одинаковое кол-во денег. Получают за период (ход) одинаковое количество денег. Al развивается так. Если человек (в дальнейшем ‘Я’ или другое местоимение) преодолел юитом границу Al, то Al проверяет количество моего войска (состав не указан специально, чтоб не усложнять, к стати надо заметить что не на своей территории, Al не в состоянии видеть кол-во противника, до тех пор пока не приобретет шпионов), далее проверят свои деньги, и закупает войско которое по численности не уступает моему, а если деньги позволяют то и на 5% превосходят их (Это вообще реакция на нападение с вашей стороны).
Если этого не происходит и Al спокойно набирает к примеру 200 ед. то он покупает шпионов, это происходит в том случае если ваши войска не шаряться поблизости границы Al. в противном случае он покупает некоторое войско к примеру на 30% от денег имеющихся у него. И посылает их (горнизонить) к вашей границе (не переходя ее, для того чтоб задержать в случае чего).
Купив шпионов, Al знает кол-во ваших денег, кол-во войска. Из этого он делает такие выводы.

Финансы
Проверяется кол-во ваших денег и если оно больше определенной суммы (к примеру 300, но вообще то в идеале это так: кол-во игрового времени прошедшее с начала игры умноженное на кол-во ед. денег получаемых за период и минус кол-во денег у меня, тогда Al получает мои приблизительные распределения доходов) Al проверяет кол-во войска у меня оно превышает кол-во Al войска, то он проверяет расположение если 70% моего войска близко к его границе, то он начинает закупать войско как при нападении. И укреплять свои границы. Если мои войска стоят не у границе, но превышают его, то он закупает войска на несколько порядков ниже чем при нападении и подводит к границе. Если ниже, то он закупает несколько ниже чем при нападении, но выше чем при втором случае, и подводит к границе (войско при этом группируется) но уже для последующего нападения.

(Потом, после ‘Финансов’ идет второй вариант алгоритма выяснения ‘Войско’, если не удовлетворен первый, и еще один если не удовлетворено условие того что компьютер не может построить шпионов, и как следствие, может только оборонять. И вот чтоб этого не было нужен третий алгоритм, который вместе со вторым, будет рассмотрен позднее).

Практика:
Вообще уже и так вроде все ясно алгоритм основан на простейших математических операциях и операциях сравнения. Ну да ладно, завтра или чуть попозже приведу немного кода, ну или вы тоже можете это сделать. Сейчас голова не соображает, спать охота. Но это будет так: есть две записи где находиться деньги, кол-во воинов каждой из сторон. Есть два массива где расположены координаты клеток на которых находятся юниты каждой из сторон. Да вообщем то, это наверное и все что надо.

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Тестирование программ"
mr.Anderson

Правила должны соблюдаться всеми без исключения.

  • Темы, в которых будут обнаружены нарушения, будут закрыты или удалены.
  • К пользователям, многократно нарушившим правила, будут применены отдельные санкции.

Для тех, кто создаёт темы:

В данном разделе запрещается размещать программы, которые в той или иной степени могут принести вред потенциальному тестеру программы (например, трояны, вирусы и т.д.)

  • Публикуя ссылку на программу, обязательно проверьте её работоспособность.
  • ОБЯЗАТЕЛЬНО: напишите название программы, а главное - её описание и приведите хотя бы один скриншот. Скриншот по размерам не более 500х500 пикселов, для скриншотов большего размера приводите ссылки на них.
  • Программа, которую Вы даёте на тестирование, должна быть откомпилирована, так как не каждый является программистом, да и мало кто будет ради тестирования устанавливать соответствующий софт.

Для тех, кто тестирует:

Описывая результаты тестирования программы, указывайте тип и версию ОС, а также характеристики компьютера и прочую информацию, которая может повлиять на работоспособность.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.Anderson.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разное тестирование | Следующая тема »


 




[ Время генерации скрипта: 0.0577 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.