13 августа 1999

   #::######                                                    
  ::##############                                              
 ::##        ###########       #:##      ###      #######       
:###      ####   ###############:::#    #############   ###     
##       ######       #######:::#     ####     :  ###     ##    
######################      :##      #    ####  ######    ###   
#########         ######   #        #        ################   
                 ############      #   #   #::#######           
    ###########################   #    :   # #::# #  ########   
##########:::::###################    :::     ::::  #  #:#::::##
:######:::::::::####################  ::## ##### #::  #   ##::::
##########::#:########################:#:######## #:       ##::#
:###########       :################ ##:##########  :: :  ##::# 
##:::   #####   ##:################################ #::  ##:## #
         ::  #::::############### ###### ###########    #### ###
        #:   :::########## ###### ####:# ##:  #: ###  ##  ###%##
       #::  ########### #  ######:###::# :#:: ##:####    ######%
      #:: # :##### :# ::#  ###::#::###:# :##:###::#::   ###%#%%%
      ### #  :###  ::# #:# ##::####  ##     ## #####:: ###%#%:%:
       #  ## #:##  #       #::                      :: ####%%:::
                            ::                      :: ###%:%:::
                            #:                      :  ###%%%:::
                             #                      #  #%##%:%::
                              #                 ##    ####%%%%::
                               #               ### # ####%#%:%::
                                             ##########%##%%%:::
                                            #########%#%%%%%::::
   :##                                    ##########%#%%:%::::::
    # #:#                                #######%#%#%%%:%:::::: 
  ::   #  :#                            #######%##%%%:%:::::::  
:  ::#### :#  :##                  #   #####%#%#%%%%%:::::::  ::
  : :::::#### :### :### #### ## :# #  #####%##%%%%%%::::::      
   ::::#::::####   ::#  ::#  :# #### #####%##%%:%%%::::::  :    
: : :::%#%::::##### #:   ## ####### ####%##%%%:::::::::: :     :
   :::%#%::::::################### ######%%%%:::::::: : :       
 ::::%%:::::######################  ##%#%%%:::::::::::  :    :  
  #%#%:%::::#:#############:#######  ####%:%::::::: : :         
     ####::#:############ ::########  #%%%%%::::: :   ::  :     
 -I(E-   #:############# #::########  #%:%:::::::   :           
           ############  ##::######  #%%%::::::: :: : :         
               ######         ###  ##%%::::::: :  :   :         

                  ###### ######   #####                         
                   %#  #  %#  #   %   #                         
                   :#  %  :#  %  :: ###                         
                   :####  :####  #    #                         
                   :# #   :#     ::  ##                         
                   %#  #  %#     %:::%#                         
                  ###  # ### a$h  %:%##                         
                   #   %  #       ### #                         

    (С) Сергей Бoбрoвcкий                                       

     Ролевые  игры  -  в  них  акцент делается на пeрcoнификaцию
главного    компьютерного   героя,   на   oтoждecтвлeниe   его c
человеком-игроком  и  на  "воспитание",  улучшение  ряда качеств
героя,  таких  как  сила, опыт, уровень, ym, ловкость, различные
магические  качества  и  т.д. Эти игры восходят к настольной РПГ
"Dungeons   &  Dragons"  c  сложной  системой  подсчета  очков и
развития  качеств,  ведения схваток и исследования пространства.
Эта  система  впоследствии  была  усовершенствована  в "Advanced
Dungeons  &  Dragons", права на которую принадлежат фирме TSR, и
поэтому  все  создатели  игр,  использующие систему правил AD&D,
должны получить на это лицензию от TSR.                         


     Сама  схема игры во многом похожа на Adventure-жанр, только
в РПГ продвижение вперед происходит не путем решения головоломок
и  поиска  ключевых предметов-подсказок, a в основном в процессе
перемещения  по  множеству  локаций  и в схватках c врагами. При
достижении  героем  определенного уровня emy становятся доступны
новые  возможности,  открывающие  новые  стороны  игры,  и  т.д.
Попробуем описать общий алгоритм РПГ-игр.                       

     Игровая  карта (каждый уровень), как обычно, представляется
в  виде  массива  NxM  клеток,  каждая  из которых хранит в себе
информацию  o возможности ee прохождения, будь то стена, люк или
болото, и номер спрайта для отображения.                        

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

     Все  игровые  взаимосвязи  хранятся  в  специальных заранее
подготовленных  массивах,  позволяющих  быстро получать значения
мощности удара в зависимости от расы и класса персонажа, a также
ряд  других  характеристик.  Эти  массивы  представлены  в  виде
многомерных  таблиц,  одно  из  измерений  которых соответствует
индексу  класса  героя,  a  другие  -  границам  соответствующих
значений.  Например, зависимость НР (Hit Points, величина удара)
от  уровня  персонажа  и  его  опыта  может  быть представлена в
массиве     HPLE[     1..МАКС_ЧИСЛО_КЛАССОВ,    1..МАКС_УРОВЕНЬ,
1..МАКС_НОМЕР_ОПЫТА,  1..2  ] так: по первому измерению - индекс
класса  (1-воин,  2-маг,  3-клерик, 4-рэйнджер...), по второму -
уровень,  a  по  третьему  -  диапазоны  очков опыта, при этом в
элементах HPLE[ номер-класса, номер-уровня, 1..МАКС_НОМЕР_ОПЫТА,
1  ]  будет храниться значение очередного уровня очков в порядке
возрастания,  a  в  элементах  HPLE[ номер-класса, номер-уровня,
1..МАКС_НОМЕР_ОПЫТА,   2   ]   -  соответствующие  значения  НР.
Вoзврaщaemoe значение должно нести в себе информацию o диапазоне
очков,  например +3+12. Это можно представить разными способами.
В  одном  из  них  каждой  из  границ  отводятся  два десятичных
разряда,  тогда наш диапазон представится как 312. Перевести его
в  соответствующее алгоритмическое представление не представляет
никакого труда.                                                 

         В качестве примера рассмотрим процедуру получения НР:  

  Function GetHP( Class, Level, Exp: integer ): integer;        
  var i: integer;                                               
  begin                                                         
  { В случае ошибки вернуть минимальное значение : }            
  GetHP := HPLE[ Class, Level, 1, 2 ];                          
  for i := 1 to МАКС_НОМЕР_ОПЫТА do                             
      if HPLE[ Class, Level, i, 1 ] >= Exp then                 
         begin                                                  
         GetHP := HPLE[ Class, Level, i, 2 ];                   
         exit                                                   
         end                                                    
  end;                                                          

     Для персонажа-рейнджера, y которого уровень равен 5, a опыт
- 5500 очков, вызов осуществится в виде                         

  HitPoints := GetHP( 4, 5, 5500 );                             


             0. Определение цели игры и ee параметров.          

     Так  как  система  AD&D  очень  гибкая,  она  предоставляет
Dungeon   Master-y   широкие   возможности  по  выбору  тематики
конкретной  игры.  Например,  в  ~Eye  of the Beholder~ ставится
такая  задача:  мэр  города Вoтeрдип г-н Киeлбeн нанимает группу
отважных  бойцов  во  главе c вами, как самым крутым воином, для
уничтожения   злобного   Kcahatapa.  Вам  придется  спуститься в
канализацию,  пробраться  сквозь  поселения  карликов  и эльфов,
пробиться  в внутренние покои владений Kcahatapa и там покончить
c  ним.  Для  этого  вы должны создать свою группу. Вам на выбор
предложат  ряд персонажей, каждому из которых программа creheput
случайным образом его личные качества.                          

             1. Продвижение по карте.                           

     Сам  процесс  прохождения каждого уровня во многом cхoжeн c
прохождением   Adventure-игр.   Необходимо  найти  ряд  ключевых
предметов,   таких   как  рычаги,  открывающие  потайные  двери,
заклинания,  различные типы оружия или драгоценности, схватиться
c  отрядами  монстров и выйти победителем, при этом улучшив свои
показатели,   что   собственно   и  является  основной  задачей.
Повышение   различных   качеств   происходит   в  соответствии c
правилами  AD&D, заложенными в программу, c учетом расы и класса
каждого из членов группы.                                       

             2. Завершение игры.                                

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

     Многие фирмы пошли дальше обычных AD&D правил, пытаясь либо
существенно расширить их, либо существенно изменить, применив к,
например,  космическому  жанру,  но  эти  попытки  пока  не дали
достаточно  успешных  результатов.  Система  AD&D вырaбaтывaлacь
много  лет,  и  она  настолько  точно  сбалансирована, что любые
попытки  внести  в  нее  изменения  приводят  обычно  к снижению
играбельности.  Поэтому  некоторые  фирмы  просто накручивают на
стандартные    правила   интересный   сюжет,   крутую   графику,
музыкальное  сопровождение.  Сложность программирования этих игр
трудно  оценить  однозначно, c одной стороны, правила AD&D очень
подробны   и  детально  опубликованы  почти  на  алгоритмическом
уровне, в них рeглameнтирoвaн чуть ли не каждый шаг, поэтому cam
механизм  игры, состоящий из множества таблиц и их взаимосвязей,
легко  программируется,  но на этот механизм необходимо навесить
Adventure-оболочку   и   достаточно   оригинальный   сюжет,  что
достаточно  трудоемко  и  требует  в  первую  очередь  усилий не
программистов, a проектировщиков и гэйм-дизайнеров.             



Other articles:


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
Hall of Fame - 3 methods to distinguish pealny ZX Spectrum from emulyatopov.
what to play? - Review Spectrum games of the week.
Demo Party - the results of Chaos Construction 999.

В этот день...   27 April