Отправляет email-рассылки с помощью сервиса Sendsay

За 2013-09-29

[prg] Re: для разработки игры.

Здравствуйте, Максим. Создать игру, не так уж сложно. Просто изучите игровой
скрипт BGT, и создавайте новые игры.
Цитата:
поясню. когда запускаем игру, как правила jaws молчит, но управление
производится,
что это за тип окна.
Ответ:
Это окно игрового процесса. Когда вы, на пример, создали игру на скрипте
BGT, то у вас будит именно такой тип окна.

   2013-09-29 17:53:03 (#2835207)

[prg] Re[2]: создание игры.

Приветствую всех.

> Просто если писать совсем с нуля, то придётся брать библиотеки работы со
> звуком и может даже самому рассчитывать тот же эффект Доплера, а потом
> отдавать рассчитанные координаты источников звука библиотекам.

Вряд ли человек собирается стартовать с такого нуля (разрабатывать собственную
математику для пространственного звука или физических эффектов -это, скорее,
уровень subzero).
Все популярные API для эмуляции 3D-звука реализуют подобные расчеты самостоятельно.
"Популярные API" -- это, конечно, DirectX (компонент DirectSound3D) и OpenAL
(реализация одноименной спецификации от Creative).

> Если же
> использовать адаптированные среды, то это уже зашито в чёрный ящик и мы
> работаем на более высоком уровне.

Это верно, но обычно ограничивается только уровнем абстракции -- функции для
доступа к различным компонентам имеют "единообразный" дизайн, а код игры менее
сцепле с конкретными компонентами и библиотеками.
В концептуальном смысле, как правило, мы остаёмся на том же уровне, что и, например,
API DirectSound (то есть по-прежнему управляем положением каждого источника или
группой источников, задавая их координаты, скорость для расчета эффекта Доплера,
направленность и еще ряд характеристик).

> Ну а вообще просто создаёте пустое окно, в глобальном цикле пишите
> обработчик нажатий клавиш, а потом на это вешаете всю бизнес логику.

В графических играх основной задачей игрового цикла является обновление сцены
(т.е. опрос клавиатуры, скорее, второстепенное действие). Для звуковых игр, соответственно,
игровой цикл должен обновлять звуковую картину. Указанные выше API, как правило,
реализуют модель накапливаемых изменений: система принимает новые координаты
источников, но не меняет звуковой картины, пока не будет вызван специальный update-метод,
в результате чего вся звуковая картина будет пересчитанна с учётом накопленных
изменений.
Расчёт координат обычно возлагают на физические движки.
Обработка ввода (в т.ч. клавиатурного) может быть и "внутри" игрового цикла (т.е.
в основном потоке) или выполняться в отдельном потоке (со всеми вытекающими достоинствами
и недостатками).
В теоретическом смысле любая игра сводится к схеме с конечным автоматом: поток
событий на входе и конечный набор состояний -- переход из одного состояния в
другое зависит от входного события и текущего состояния.
Причем каждый игровой объект -- это конечный автомат и само ядро игры тоже реализует
концепцию конечного автомата...

В DirectX за ввод отвечает DirectInput. Но можно использовать и функции WinAPI.
Чтобы JAWS не перехватывал нажатия клавиш, в настройках JAWS для вашего приложения
нужно установить "спящий" режим.

Успехов. Анатолий.

   "i_chay" 2013-09-29 16:33:33 (#2835183)

[prg] Re: создание игры.

Здравствуйте, Спиридонов Максим.
> нет, готовые движки не пойдут.
> зачистую, при начале разработки давольно емкого проекта, не всегда знаешь
> как
> к нему подступиться, с чего начать, его структуру.
Ну здесь речь шла скорей не о движках, а об адаптированных средах
разработки. То есть с их помощью реализовывать можно какую угодно игровую
логику, они лишь просто предоставляют более простой и удобный интерфейс
взаимодействия с рядом технологий, например, позиционируемым 3D звуком.
Просто если писать совсем с нуля, то придётся брать библиотеки работы со
звуком и может даже самому рассчитывать тот же эффект Доплера, а потом
отдавать рассчитанные координаты источников звука библиотекам. Если же
использовать адаптированные среды, то это уже зашито в чёрный ящик и мы
работаем на более высоком уровне.
Ну а вообще просто создаёте пустое окно, в глобальном цикле пишите
обработчик нажатий клавиш, а потом на это вешаете всю бизнес логику.
Успехов. Никита.

   2013-09-29 13:31:23 (#2835103)

[prg] создание игры.

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

С уважением: Максим Calculator.
calculator.***@m*****.ru
http://www.twitter.com/calculatorspb/

   2013-09-29 06:45:44 (#2834969)

[prg] Re[3]: для разработки игры.

Здравствуйте, Алексей Лонгард.
> Лично я советую погуглить на тему Blitz3d и Blitzmax.
Ну если уж обсуждать различные решения, специально заточенные под игры, то
можно ещё назвать DarkBASIC.
В одной, правда не самой новой версии, он даже существует в полностью
русифицированном виде, в т.ч. с русской документацией.
Успехов. Никита.

   2013-09-29 00:16:02 (#2834909)