Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Игры Разума - открытый проект. (http://www.flasher.ru/forum/showthread.php?t=41739)

Nox Noctis 10.01.2003 18:56

2ндглюк
по-моему ничего лучше системы фаллаута не придумали...
есть очки действия (AP) и их можно расходовать на перемещение, использование/смену/перезарядку оружия, и т п...
после твоего хода действуют противники.

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

второй вариант интереснее, но его реализовать конечно тяжелее: линейная последовательность действий по крайней мере не рискует повесить скрипт... =)

TTS 10.01.2003 19:01

Nox Noctis
 
Особенно второй вариант

alber 10.01.2003 22:21

Идея офигигительная. Убьём Mech Warrior и всех остальных !!!(множественное число не означает примазку к пректы, просто словесный оборот). Да, пошаговость сейчас самый, по-моему, вариант. Даже это будет много весить. Потом, может быть можно и аркаду, но вы прикиньте: мощный код, всё пучком, а у юзера P233 или ещё меньше. К счастью сейчас такие достаточно редки. Про on-line, дык это вообще... У меня, например сейчас 21,5 Кбит/с. Ну и куда с таким коннектом?

Pietrovich 10.01.2003 23:38

кульная идея!

есть вопрос (почти по теме), нельзя ли флешкой прослушивать порты?

Zipi 11.01.2003 00:16

А вот типа в Фалоут это типа ещё героев помойму. А
вариант Макса похож на игру по инету бателмайл.
мне больше нравиться второй вариант.

Nox Noctis 11.01.2003 00:30

не, в Героях все по-другому: там есть отдельно "мировая карта", и есть "локации битв",
причем в битвах просто походовой алгоритм - никаких AP.

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

Max N Chubin_ 11.01.2003 00:42

ребята, предлагаю перейти к обсуждению конкретных задач!
ИТак...
сценарий...
ждем!
;)

Nox Noctis 11.01.2003 01:41

о !... а знаете, мне тут подмалось:
мы в далеком детстве (на уроках географии в основном :))) )
играли в одну офигенную игру... называется "лабиринт" =)

по-моему по той же схеме можно завернуть и в нашем случае...
эта игра в чистом виде пошаговая: но ведь все в наших руках =)
никто не мешает изобрести ее модификацию...

— рассказываю как это игралось:

УСЛОВИЯ: [list=1][*]есть один ведущий и произвольное количество игроков.[*]есть поле в клеточку, на котором неизвестно что находится.[*]на поле есть следующий набор клеток: пустая, клетка с рекой, клетка с устьем реки (река течет в сторону устья), клетка с ямой (телепорт), клетка со стеной (стены бывают разрушимые и монолитные), клетка с арсеналом, клетка с медпунктом.[*]у каждого игрока есть сколько-то хитов, сколько-то пуль, и сколько-то гранат. пулями убивают противников, гранатами рушат стены (если они не монолитные)[*]в лабиринте есть один выход (клетка, где разомкнута внешняя стена) и два клада - один настоящий, другой ложный.[*]задача либо всех убить, либо вынести из лабиринта настоящий клад.[*]иногда еще в лабиринте есть храм (если тебя убили, то через сколько-то ходов можно воскреснуть) - тогда вариант окончания игры всего один. [/list=1]

СОБСТВЕННО ПРОЦЕСС ИГРЫ: [list=1] [*]ведущему каждый из игроков сообщает в какой клетке лабиринта он появится. и ведущий ставит фишки игроков на поле.[*]игроки изначально не знают НИЧЕГО о конфигурации поля, и о метоположении других игроков... =) это основополагающая весчь. =)[*]когда все игроки установлены на поле ведущий всообщает игрокам на какой клетке кто находится. если на этой же клетке стоит другой (другие) игроки - то ведущий сообщает: "ты видишь глазки". но ведущий не говорит с какой стороны ты видишь противника - так что надо либо угадать по предыдущим ходам и выстрелить, либо просто сматываться пока не пристрелили тебя =)[*]при каждом ходе игрок получает от ведущего сообщение где он стоит - и может сделать одно из действий: выстрелить-и-сделать-шаг, сделать шаг на одну клетку, кинуть гранату в стену и т п.[*]если игрок втечение хода находится в реке - его сносит течением на одну клетку. рек может быть несколько.[*]если игрок падает в яму (телепорт) то его переносит в другую клетку лабиринта. ямы объединены в цикл телепортов (пронумерованы). циклов может быть несколько. после переноса в телепорте игрок НЕ получает сведений о том, на какой клетке лабиритна он находится.[*]раненый игрок не может нести клад.[*]в арсенале восполняются боеприпасы, в медпункте хиты.[/list=1]

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


короче - это только схема... но по-моему от нее можно отталкиваться.

Смольный (Smolniy) 11.01.2003 01:58

TTS
Чтоб высунуться из-за угла, надо это запрограммировать, знать карту и знать где враг. А мы можем условиться, что всю карту бот не видит. Кроме того, можно считать вероятность попадания и сделать ее ресурсом, а не флажком, т.е. - "ваше попадание в упор снесло врагу 64% брони", а его попадание на пределе дальности - только 5%.
Далее. Про localConnection и вообще организацию этой штуки. Я вижу следующие задачи:
-обеспечить Интерфейс для
=боя в онлайне (коннект с БД, выкачивание или случайных конкретных Ботов, обеспечение нового боя между ними или отображение списка боев и демонстрацию конкретного боя)
=для боя в оффлайне (выкачивание в виде архива или еще как-то набора Ботов - swf, файла с данными прошедших боев).
=для отладочных целей (возможность видеть внутреннее поведение своего бота, возможность стравить своего бота со своим ботом и своего с чужим, т.е. помесь с вариантом для оффлайна)

-обеспечить хранение всего хода законченных боев на сервере (ну, это просто)

-рейтинговая система для определения фаворитов (тобе просто)

-Интерфейс должен обеспечивать безопасность (вот тут возможно придется использовать localConnection).

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

А вообще, идея непростая, и довольно много усилий пойдет на этапе организации, зато потом это можно будет использовать многократно и вообще, идея имеет потенцию стать весьма популярной - среди специалистов, конечно :):)

gOloVasTicK '~ 11.01.2003 16:09

Команду нада делать =) Смысл есть при использовании следующей схемы:
Перед боем игрокам всегда предлагается:
1000 условных единиц ;) (то бишь общая емкость команды не может превышать 1000уе)
Далее игрок вешает на ботов или одного бота единицы по своему усмотрению.
Естественно характеристики имеют лимит.
Положим по 100 очков.
Пример характеристик:
- Скорость
- Меткость
- Мощность выстрела
- Дальность выстрела
- Обзор
- Здоровье
Можно ввести ограничение на каждого бота в отдельности, пусть 350.
Итого минимум в команде 3 бота.
Командность придаст больший интерес игре т.к. тогда появится необходимость взаимодействия ботов в команде. Хотя поначалу ее скорей всего не будет =))
Карта генерится рандомом с учетом класса. Для начала хватит одного класса - земля.
Воды: 10% (непреодолимое препятствие через которое можно стрелять)
Стен: 30% (непреодолимое препятствие через которое нельзя стрелять)
Остальное земля.
Характеристики пляшут от максимума и съедания очков. Пусть один шаг вперед или назад съедает 10 единиц, поворот на 90 градусов 5 единиц. Таким образом самый быстрый бот может совершит за раунд 10 шагов вперед или назад. Обзор предлагаю сделать круговым вне зависимости от направления взгляда бота, для упрощения. А вот выстрел имеет смысл сделать только в диапазоне 90 градусов в направлении взгляда бота. Таким образом бой будет зависеть исключительно от правильного набора команды, согласовоности ботов и действий каждого бота в отдельности. Что есть весьма интересная задачка для программера =)
Опять же для начала можно ограничить кол-во ботов в команде одним. Для простоты логики. Если дело пойдет там можно и увеличить.
Очки меет смысл начислять следующим образом:
1000 очков рейтинга дается при регистрации. Играть можно только с членами своей группы. Группы разбиты по кол-ву очков:
0-10.000
10.000-100.000
100.000-1000.000
и т.д.
При выигрыше, выигравшая команда получает 50% от очков противника с противника эти очки снимаются. Разрешается играть с командой из низшей группы только в случае отстуствия игроков в твоей группе и при количестве очков не превышающих на 50% лимит группы (например для одиночки из третьей группы очки должны быть меньше 150.000). Для боя необходимо зайти на сайт боев и указать противника. Присутсвие подтверждения со стороны противника не обязательно. Бой оканчивается ничьей если победа не достигнута в течении 100 раундов. Все бои спокой можно сохранять на сервере.

А теперь самая большая во всем этом проблема:
Защита рейтинга =)
Флеш технология клиентская и подделать в ней можно все =) Поэтому написав простейший скрипт можно выиграть у любых ботов находящихся на твоей машине, можно подсмотреть чужой код при помощи декомпиляторов и т.д. =) Эту проблему вам вряд-ли удастся решить. Программы должны быть серверными.


Часовой пояс GMT +4, время: 00:16.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.