Info Guide
#06
03 декабря 2004 |
|
Gamedev - Игровой цикл - цикл, внутри которого вызываются все подпрограммы игры.
Игровой цикл. Вот пример краткого сообщения (заметки) для Info Guide. Такую коротенькую статью написать ничего не стоит, в ней вы можете зафиксировать для себя и остальных какую- либо информацию, которая иначе бы забылась и была бы открыта снова,гораздо позже,кем- нибудь другим. Время людей,сами понимаете, нужно беречь. Под игровым циклом понимают либо насто- ящий цикл, внутри которого вызываются все крупные подпрограммы игры (от опроса кла- виш до построения экрана),либо время испо- лнения определённой регулярной последова- тельности действий, например, относящейся к логике врагов. Чтобы игра бегала с одинаковой скорос- тью вне зависимости от скорости процессо- ра,время игрового цикла следует зафиксиро- вать с помощью прерываний. Если с прерыва- ниями не синхронизироваться,то в турбо-ре- жиме персонажи будут носиться как бешеные. Хочется же,чтобы они ходили с обычной ско- ростью,но экран перестраивался почаще. Что из этого следует? То,что построение экрана следует оторвать от обсчёта логики. Логика либо 1) висит на прерывании, либо 2) вызывается off-int с определённой частотой, зависящей от флажков/счётчиков, которые должен формировать обработчик, ли- бо 3) вызывается однократно в цикле пост- роения экрана, но с учётом того, сколько прерываний прошло от прошлого раза - ска- жем, менять шаг движения персонажей. Третий вариант опасен,поскольку при ме- дленном построении экрана (много фреймов) персонажи рискуют своими большими шагами (накопились за много фреймов) начать сре- зать углы. В любом случае,их траектории на быстром и медленном компьютере будут раз- личаться, что не даст, например,записывать ролики в demo-режиме. Третий вариант был забракован в нашем Wolf где-то в 2002 го- ду. Ещё раньше синхронизации вообще не бы- ло.К сожалению,демо-режим сделать не успе- ли. Одна процедура логики персонажей (пре- вращение раненого в труп) осталась снаружи прерывания,и времени это исправить до кон- курса уже не было. На играбельность это не влияет и вообще игроку не заметно,но нару- шалась предсказуемость ролика при проигры- вании даже на том компьютере, где он был записан. A. Coder
Другие статьи номера:
Похожие статьи:
В этот день... 11 октября