|
|
|
Канал Игры Мечты: «Игра мечты-4» |
|
|
Akela
|
|
Пилоты!
Насколько я понял, основных идей при разработке гигантского мультиплеера (см. "Игра мечты-3") у Вас 2: большая вселенная и развивающаяся вселенная. Идея безусловно просто замечательная, но... Для реализации этого проекта необходим мощный сервер (может быть не один) и постоянный доступ в Интернет. По крайней мере в России таких условий не будет ещё несколько лет, поэтому я предлагаю сначала реализовать сингл, а потом думать о мультиплеере. Я предлагаю сделать игру, которую можно будет обновлять по Интернет (как AVP). Надоело играть - скачал дополнение и вот тебе новые корабли, оружие, товары, расы, планеты (предположим, их исследовали и теперь известны их координаты в гиперпространстве) и т.д. В таком случае, написание игры сводиться к написанию геймплея и графического ядра. Кстати о графике. Многие предлагают делать её на DirectX. Почему? OpenGL реботает быстрее (переключите Half-Life на DX на слабом компе - сразу заметите) и проще. Отрисовку всего и вся можно (и нужно) вынести в соответсвующие модули и тогда графику можно будет совершенствовать не внося принципиальных изменений в ядро. Кроме того в ядре можно реализовать скриптовый язык и описывать поведение кораблей на нем. Это значит Модернизировать можно будет не только графику, но и Al. Улучшение игры также сводиться к улучшению геймплея, интерфейса и поддержки скриптов. Если такая идея будет реализована, то это будет новое слово в истории Элитных игр! Ну что скажете? Слабо?
-------------------------------------------
Путь в тысячу ли начинается с первого шага.
[ 08-11-2001: Сообщение отредактировано: Akela ]
|
|
|
TimID
|
|
2 Akela , друг мой, в рассуждениях о том чего Мы хотим вы отстали (слегка) от жизни. Обратите внимание на наш сайт разработчиков "Живой Вселенной".
И... можете присоединиться
Не делом, так хоть советом.
С уважением, один из "богов Живой Вселенной", Железный
|
|
|
TimID
|
|
QuakeC - некая помесь СИ и непойми чего, в общем язык для описания действий ботов.
|
|
|
Komleff
125 EGP
  Репутация: 3 Сообщения: 56 Откуда: Novosibirsk Зарегистрирован: 09.10.2001
 |
|
хм... вот что получается:
1) QuakeC ~ C [+ ?]
2) Colobot ~ C [или помесь С++ & Java ]
3) Robocode - pure Java
4) Vampire - The Masquerade
quote
Цитата: |
This game uses Java as its scripting engine (i.e. control code)...
|
если кто что знает - добавляйте!
[ 13-11-2001: Сообщение отредактировано: Komleff ]
|
|
|
Komleff
125 EGP
  Репутация: 3 Сообщения: 56 Откуда: Novosibirsk Зарегистрирован: 09.10.2001
 |
|
quote: Отправил: Akela:
Кроме того в ядре можно реализовать скриптовый язык и описывать поведение кораблей на нем. Это значит Модернизировать можно будет не только графику, но и Al
Для того, чтобы в последсвии можно было развивать AI, необходимо заранее продумать API управляемых объектов и набор обрабатываемых событий. Среди известных мне примеров хотел бы отметить игры Colobot и Robocode. Честно говоря не знаком кваковским языком .
Akela , а у тебя какие идеи есть?
|
|
|
<Akela>
|
|
Честно говоря, идея с gamescript.hotbox.ru мне не совсем понятна. У меня немного другая мысль. Каждый корабль получает данные с каких-то приборов (радар, энергия и т.д.) и, обрабатывая эту информацию, вырабатывает линию дальнейшего поведения (атака, бегство и т.д.). Конечно, можно предусмотреть и события, посылаемые кораблю.
|
|
|
WildWind
|
|
Там, вроде, API и предложен, а как (и стоит ли) его юзать - второй вопрос...
Сейчас нет времени разбираться: своей работы валом, чтобы еще и там голову ломать
Может, как-нить на досуге, темными зимними вечерами...
|
|
|
Komleff
125 EGP
  Репутация: 3 Сообщения: 56 Откуда: Novosibirsk Зарегистрирован: 09.10.2001
 |
|
имхо, можно выделить несколько независимых частей:
1) события, приводящие к активизации "автопилота". например, появление/исчезновение на радаре каких-то объектов, измения состояния самого корабля, таймер и т.д.
2) получение "автопилотом" данных о текущем состоянии мира. например, после появления нового объекта на радаре, запросить информацию как об этом объекте, так и общем числе подобных объектов вокруг.
3) принятие решения
4) выполнение действий, доступных для "автопилота". например, подать команду "открыть огонь", "ретироваться", "игнорировать".
по поводу п.1: нужно задать стандартный набор событий, при этом, его можно относительно безболезненно впоследсвии расширять. "автопилот" будет подписываться на интересующие его типы событий.
по поводу п.2: досточно очевидно обеспечить доступ к получению свойств (текущего состояния) окружающей среды, если все будет построено на OOP.
по поводу п.3: pure logic - имея набор необходимых входящих данных и набор исходящих событий, можно построить алгоритм принятия решения.
по поводу п.4: тут мне кажется очень важным заранее предусмотреть API возможных всех действий "автопилота", так как расширить его будет сложнее, чем события (п.1). хотя здесь тоже можно применить сходный механизм Event-EventListener. то есть автопилот будет "генерить" событие типа "я принял такое то решение". а соответсвующий обработчик будет принимать и обрабатывать данное событие (одним словом разорвать связь между принятием решения автопилотом и непосредственно его исполнением.
перечитал написанное, мда...
получилось более ускоспециализированная заметка - на тему программирования поведения автопилотов. не слишком нудно получилось, а?
ЗЫ, WildWind, за ссылку спасибо
|
|
|
WildWind
|
|
2Komleff:
перечитал написанное, мда...
получилось более ускоспециализированная заметка - на тему программирования поведения автопилотов. не слишком нудно получилось, а?
нормальные заметки программиста AI...
ЗЫ, WildWind, за ссылку спасибо
Чем могу...
Наткнулся как обычно: искал одно, нашел еще кучу интересного...
|
|
|
<Akela>
|
|
Komleff, спасибо за схему работы АИ. В принципе у меня схожие мысли.
|
|
|
WildWind
|
|
Недавно натолкнулся: http://www.gamescript.hotbox.ru/
Все на русском...
Подробно не смотрел.
|
|
|
TimID
|
|
Была такая компьютерная игра-симуляция "Бой в памяти".
Смысл прост:
Создается "виртуальный компьютер" и в нем запускается по копии программы на некотором языке, придуманном разработчиками.
И в процессе работы они должны "выжить конкурентов".
Может разработчикам АИ следует уделить ей время?
|
|
|
WildWind
|
|
quote: Отправил: Железный:
Была такая компьютерная игра-симуляция "Бой в памяти".
Смысл прост:
Создается "виртуальный компьютер" и в нем запускается по копии программы на некотором языке, придуманном разработчиками.
И в процессе работы они должны "выжить конкурентов".
Может разработчикам АИ следует уделить ей время? 
Да. Забава была классная. Линк навскидку дашь? Все ж не самому искать...
|
|
|
Lex
|
|
quote: Отправил: WildWind:
Да. Забава была классная. Линк навскидку дашь? Все ж не самому искать...[/QB]
Смотри в дистрибутивах Linux'ов. По крайней мере недавно я ее обнаружил в комплекте Mandrake 7.2
|
|
|
Lex
|
|
quote: Отправил: Akela:
Пилоты!
Кстати о графике. Многие предлагают делать её на DirectX. Почему? OpenGL реботает быстрее (переключите Half-Life на DX на слабом компе - сразу заметите) и проще.
Позволь с тобой не согласиться, что на OpenGL проще и быстрее чем на DX. DX изначально придумывался как библиотека для игр, а OpenGL заточен для профессиональных графических программ. На голом OpenGL (без extensions) ты сможешь использовать только около 10% возможностей современных карт, а extensions каждый пишет как ему вздумается, отсуда будут проблеммы с совместимостью и прочее. В DX API один. Half-Life на OpenGL работает быстрее, потому что интеловская библиотека заточена под OpenGL. OpenGL хорошо использовать, если собираешься портировать игру под Linux или еще подо что-нить.
|
|
|
WildWind
|
|
quote: Отправил: Lex:
Смотри в дистрибутивах Linux'ов. По крайней мере недавно я ее обнаружил в комплекте Mandrake 7.2
Ой! Ну конечно! Мог бы и сам догадаться... игруле-то 100 лет в обед
Спасибо.
|
|
|
Lex
|
|
quote: Отправил: WildWind:
Ой! Ну конечно! Мог бы и сам догадаться... игруле-то 100 лет в обед
Спасибо.[/QB]
А еще есть сайт http://www.corewars.org
|
|
|
Komleff
125 EGP
  Репутация: 3 Сообщения: 56 Откуда: Novosibirsk Зарегистрирован: 09.10.2001
 |
|
честно говоря, не могу претендовать на звание "разработчик AI" - "я не волшебник, я только учусь"
я пока мечтаю разобрать IBM's Robocode, а затем собрать заново, добавив новых фич.
план следующий (по этапам):
1) заменить images танки на кораблики
2) расширить список доступных автопилоту свойств "состояния мира"
3) расширить набор событий
4) расширить набор действий
5) переделать actions на ActionEvents (см. мой предыдущий пост)
6) перевести поле битвы в трехмерное пространство
7) нарировать все в 3D (Java3D)
8) посмотреть на мир глазами своего "автопилота"
10) перенести всю игру на клиент-серверную архитектуру. все действия обсчитываются на сервере (в том числе автопилот), а визуализируются на клиенте
11) сделать "мультиплеер", чтобы несколько человек могли наблюдать за битвой своих автопилотов
кстати, Железный, чем не битва в "памяти" - только более наглядная
пока это даже не план, а прожект, но, имхо, первые шаги будет сделать несложно - каждый этап самодостаточен.
|
|
|
Akela
|
|
Lex, может подкинешь линки на ресурсы по DirectX? Учебники, примеры... Лучше в Delphi.
|
|
|
WildWind
|
|
quote: Отправил: Lex:
А еще есть сайт http://www.corewars.org 
Спасибо.
2Akela
Навскидку: http://Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./. Отсюда по линкам.
|
|
|
|
|
|
Канал Игры Мечты: «Игра мечты-4» |
|