Sidebar

Что для вас есть игровой движок?

snake

New member
25.04.2006
728
36
Что для вас есть игровой движок?

Вот хочу провести небольшой опрос.
Как вы считаете что такое игровой движок?

Дайте понитию движок определние.
 

Nekromant

zNk
15.07.2005
733
0
0
Игровой движок - это программная система, которая позволяет создавать игры. В этой игровой стстемы обычно присутствуют exe и dll файлы. Движок отвечает за рендеринг игрового мира, взаимодействие игрока с этим игнровым миром и т.д.

Вот и определение мягко говоря :)
 

tzara

Administrator
Команда форума
Администратор
18.02.2006
11 667
23
Последнее редактирование:
VIP
12.08.2004
18 877
462
83
  • Бронзовая медаль 103
  • Деревянный домик Скааржа
  • Серебряная медаль 213
  • Золотая медаль 136
  • Бронзовая медаль 141
  • Серебряная медаль 125
  • Золотая медаль 221
  • Золотая медаль 213
  • Золотая медаль 232
  • Серебряная медаль 132
Когда я написал свою первую гаму, то для меня это было нечто, состоящее из целой кучи if... then, и ужатое в do... loop.
Причём, в простое система яростно нарезала круги do... loop, ожидая некоторых событий (нажатие кнопы или каких действий по достижения счётчиком определённого значения), затем переход на отдельный "модуль" соотв., этому событию и ретурн обратно.

Короче, для меня это боло зацикленная система с отработкой нажатий кнопок и просчётом столкновений с объектами.
А всё остальное - подключалось модульно (прорисовка анимации персонажа, уровень, динамические объекты уровня).

имею лишь смутные представления как устроены настоящие игровые движки.
 
VIP
12.08.2004
18 877
462
83
  • Бронзовая медаль 103
  • Деревянный домик Скааржа
  • Серебряная медаль 213
  • Золотая медаль 136
  • Бронзовая медаль 141
  • Серебряная медаль 125
  • Золотая медаль 221
  • Золотая медаль 213
  • Золотая медаль 232
  • Серебряная медаль 132
Уже показывал.

Код:
start:
SCREEN 13: CLS
GOTO a
p1:
LINE (6 + x, 9 + y)-(17 + x, 22 + y), c, BF
LINE (10 + x, 10 + y)-(13 + x, 10 + y)
IF k = 0 THEN LINE (10 + x, 11 + y)-(10 + x, 12 + y) ELSE LINE (13 + x, 11 + y)-(13 + x, 12 + y)
LINE (10 + x, 13 + y)-(13 + x, 17 + y), , BF
LINE (10 + x, 19 + y)-(13 + x, 19 + y)
LINE (10 + x, 22 + y)-(13 + x, 22 + y)
RETURN
p2:
LINE (6 + x, 9 + y)-(17 + x, 22 + y), c, BF
LINE (10 + x, 11 + y)-(13 + x, 11 + y)
IF k = 0 THEN LINE (10 + x, 12 + y)-(10 + x, 13 + y) ELSE LINE (13 + x, 12 + y)-(13 + x, 13 + y)
LINE (10 + x, 14 + y)-(13 + x, 18 + y), , BF
LINE (11 + x, 20 + y)-(14 + x, 20 + y)
LINE (9 + x, 22 + y)-(12 + x, 22 + y)
RETURN
p3:
LINE (6 + x, 9 + y)-(17 + x, 22 + y), c, BF
LINE (10 + x, 12 + y)-(13 + x, 12 + y)
IF k = 0 THEN LINE (10 + x, 13 + y)-(10 + x, 14 + y) ELSE LINE (13 + x, 13 + y)-(13 + x, 14 + y)
LINE (10 + x, 15 + y)-(13 + x, 19 + y), , BF
LINE (12 + x, 21 + y)-(15 + x, 21 + y)
LINE (8 + x, 22 + y)-(11 + x, 22 + y)
RETURN
p4:
LINE (6 + x, 9 + y)-(17 + x, 22 + y), c, BF
LINE (10 + x, 13 + y)-(13 + x, 13 + y)
IF k = 0 THEN LINE (10 + x, 14 + y)-(10 + x, 15 + y) ELSE LINE (13 + x, 14 + y)-(13 + x, 15 + y)
LINE (10 + x, 16 + y)-(13 + x, 20 + y), , BF
LINE (13 + x, 22 + y)-(16 + x, 22 + y)
LINE (7 + x, 22 + y)-(10 + x, 22 + y)
RETURN
p5:
LINE (6 + x, 9 + y)-(17 + x, 22 + y), c, BF
LINE (10 + x, 12 + y)-(13 + x, 12 + y)
IF k = 0 THEN LINE (10 + x, 13 + y)-(10 + x, 14 + y) ELSE LINE (13 + x, 13 + y)-(13 + x, 14 + y)
LINE (10 + x, 15 + y)-(13 + x, 19 + y), , BF
LINE (8 + x, 21 + y)-(11 + x, 21 + y)
LINE (12 + x, 22 + y)-(15 + x, 22 + y)
RETURN
p6:
LINE (6 + x, 9 + y)-(17 + x, 22 + y), c, BF
LINE (10 + x, 11 + y)-(13 + x, 11 + y)
IF k = 0 THEN LINE (10 + x, 12 + y)-(10 + x, 13 + y) ELSE LINE (13 + x, 12 + y)-(13 + x, 13 + y)
LINE (10 + x, 14 + y)-(13 + x, 18 + y), , BF
LINE (9 + x, 20 + y)-(12 + x, 20 + y)
LINE (11 + x, 22 + y)-(14 + x, 22 + y)
RETURN
a:
GOSUB la1
x = 100
u$ = "pl1"
o = 1
y = 165: c = 0
amy = 90: amx = 90
freg = 250
DO
k$ = INKEY$
IF POINT(x + 6, y + 23) = 0 AND POINT(x + 17, y + 23) = 0 THEN t = 1: y = y + 1 ELSE t = 0
IF t = 0 AND (PEEK(10333) = 75 OR k$ = "z") AND POINT(x + 5, y + 9) = 0 AND POINT(x + 5, y + 22) = 0 THEN t = 0: x = x - 1: k = 1: o = o + 1
IF t = 0 AND (PEEK(10333) = 77 OR k$ = "c") AND POINT(x + 18, y + 9) = 0 AND POINT(x + 18, y + 22) = 0 THEN t = 0: x = x + 1: k = 0: o = o + 1
IF a = 0 AND t = 0 AND (PEEK(10333) = 80 OR k$ = "x") AND POINT(x + 6, y + 23) = 4 AND POINT(x + 17, y + 23) = 4 THEN a = 1
IF a = 0 AND t = 0 AND (PEEK(10333) = 80 OR k$ = "x") AND POINT(x + 6, y + 23) = 14 AND POINT(x + 17, y + 23) = 14 THEN a1 = 1
IF PEEK(10333) = 1 OR k$ = "q" THEN END
IF o = 7 THEN o = 1
IF o = 1 AND k = 0 THEN GOSUB p1 ELSE IF o = 1 AND k = 1 THEN GOSUB p6
IF o = 2 AND k = 0 THEN GOSUB p2 ELSE IF o = 2 AND k = 1 THEN GOSUB p5
IF o = 3 AND k = 0 THEN GOSUB p3 ELSE IF o = 3 AND k = 1 THEN GOSUB p4
IF o = 4 AND k = 0 THEN GOSUB p4 ELSE IF o = 4 AND k = 1 THEN GOSUB p3
IF o = 5 AND k = 0 THEN GOSUB p5 ELSE IF o = 5 AND k = 1 THEN GOSUB p2
IF o = 6 AND k = 0 THEN GOSUB p6 ELSE IF o = 6 AND k = 1 THEN GOSUB p1
IF l = 1 THEN GOSUB l1
IF l = 2 THEN GOSUB l2
IF freg > 1 AND (PEEK(10333) = 2 OR k$ = "[") THEN freg = freg - 10: LOCATE 1, 1: PRINT freg * 100; "    "
IF freg < 1000 AND (PEEK(10333) = 3 OR k$ = "]") THEN freg = freg + 10: LOCATE 1, 1: PRINT freg * 100; "    "
FOR n = 0 TO 100 * freg: NEXT
IF fg1 = 0 THEN IF l = 1 THEN LINE (100, 100)-(gf + 75, 170), 0

LOOP
la1:
LINE (0, 190)-(320, 200), 2, BF
LINE (30, 150)-(35, 189), 6, BF
LINE (280, 150)-(285, 189), 6, BF
CIRCLE (32, 150), 18, 2: PAINT (32, 145), 2
CIRCLE (282, 150), 18, 2: PAINT (282, 145), 2
LINE (199, 190)-(221, 200), 0, BF
l = 1: py = 0
FOR qweer = 0 TO 100: PSET (RND * 320, RND * 120): NEXT
CIRCLE (100, 50), 20, 7: PAINT (100, 50), 7
CIRCLE (135, 50), 40, 0: PAINT (120, 50), 0
CIRCLE (100, 90), 40, 1, , , .2:  PAINT (100, 90), 1
df = 41
RETURN
l1:
IF fg1 = 1 THEN df = df - 1: IF INT(df) = 0 THEN fg1 = 2
IF fg1 = 1 THEN CIRCLE (100, 90), df, 0, , , .2
IF fg1 = 0 THEN fg = fg + 1: IF fg = 100 THEN fg1 = 1
IF fg1 = 0 THEN gf = gf + 5: IF INT(gf) > 50 THEN gf = 0
IF fg1 = 0 THEN LINE (100, 100)-(gf + 75, 170), RND * 15
IF a = 1 THEN py = py + .5: LINE (200, 189 + py)-(220, 189 + py), 0
LINE (200, 190 + py)-(220, 193 + py), 4, BF
IF INT(py) = 10 THEN a = 0: l = 2: GOSUB la2
RETURN
la2:
CLS
LINE (0, 0)-(320, 10), 3, BF
LINE (199, 0)-(221, 10), 0, BF
LINE (100, 40)-(320, 50), 3, BF
LINE (199, 40)-(221, 43), 0, BF
LINE (0, 10)-(10, 200), 3, BF
LINE (310, 10)-(320, 150), 3, BF
LINE (250, 40)-(270, 41), 14, BF
LINE (115, 9)-(120, 41), 5, BF
LINE (0, 190)-(320, 200), 3, BF
LINE (0, 80)-(270, 120), 3, BF
LINE (100, 80)-(250, 110), 0, BF
LINE (100, 90)-(250, 110), 10, BF
LINE (126, 80)-(149, 91), 6, BF
LINE (151, 80)-(199, 91), 6, BF
LINE (201, 80)-(249, 91), 6, BF
LINE (260, 42)-(260, 45), 4
LINE (118, 45)-(260, 45), 4
LINE (118, 42)-(118, 45), 4
LINE (80, 140)-(310, 150), 3, BF
qww = 1: py = -5
y = -20: re = 1
rew = 0
RETURN
l2:
IF qww = 1 THEN py = py + .5: LINE (200, 9 + py)-(220, 9 + py), 0
IF qww = 1 THEN LINE (200, 10 + py)-(220, 13 + py), 4, BF
IF INT(py) = 30 THEN qww = 0
IF re1 = 1 THEN a1 = 0
IF a1 = 1 AND (re = 1 OR re = 2) AND re1 = 0 THEN re1 = 1: a1 = 0
IF re = 1 AND re1 = 1 THEN rew = rew + .5: LINE (115, 26 - rew)-(120, 26 - rew), 0: LINE (115, 25 + rew)-(120, 25 + rew), 0: IF INT(rew) = 15 THEN re1 = 0: re = 2: a1 = 0: RETURN
IF re = 2 AND re1 = 1 THEN rew = rew - .5: LINE (115, 25 - rew)-(120, 25 - rew), 5: LINE (115, 26 + rew)-(120, 26 + rew), 5: IF INT(rew) = -1 THEN re1 = 0: re = 1: a1 = 0
IF pus = 5 THEN GOTO sl2
IF pus <> 2 AND POINT(71 + jx, 74 + jy) = 15 THEN jx = jx + 1: pus = 1
LINE (76 + jx, 68 + jy)-(99 + jx, 79 + jy), 6, BF: IF pus = 1 THEN LINE (75 + jx, 68 + ly)-(75 + jx, 79 + jy), 0
IF POINT(75 + jx, 80 + jy) <> 3 THEN jy = jy + 1: pus = 2
IF POINT(75 + jx, 77 + jy) = 10 THEN pus = 5
IF pus = 2 THEN LINE (76 + jx, 67 + jy)-(99 + jx, 67 + jy), 0, BF
sl2:
IF POINT(x + 10, y + 23) = 10 THEN CLS : LOCATE 12, 14: PRINT "GAME OVER": SLEEP: GOTO start

RETURN
Запускать желательно под DOSBox или чистый ДОС.
"Z" - Влево
"X" - Вправо
"C" - Юзать

Подумав, добавил:

Аха! "[" и "]" - меняет время задержки.
 

Вложения

  • 33.2 КБ Просмотров: 202
Последнее редактирование:

Gnom

Добрая Фея :)
17.06.2005
548
43
Игровой движок- это совокупность процедур логики игровых процессов (игровые классы, управление, интерфейс, правила и т.п. +процедуры вывода графики) и инструментов создания игрового наполнения (редакторы, утилиты выгрузки ресурсов и т.п.).
При чем, главное в игровом движке- это тулзы.
Игру можно писать на разных языках, используя 2д или 3д, но без возможности достаточно быстро и организованно создавать и отлаживать геймплей, это будет лишь бесполезный макет, который никогда не станет игрой.
Хороший пример- Unreal Engine- полноценный инструмент создания чего-угодно игрового.
ЗЫ
Сам я пользуюсь блокнотом- одним из самых великих игровых редакторов в мире!%)
http://www.gameteam.com/free-online-games/pirates/play.html
 

OneManArmy

lolwut?
15.07.2007
1 429
34
0
0
2 Gnom: Вот в ХЛ2 и КСС двжики одинаковые,а правила игр разные. Так что двжиок не задает геймплей.Игровой движок - совокупность взаимно совместимых графического ,физического и других движков,которая делает возможным отображение игры на мониторе,в аудио устройствах и принимать контроль извне.
 

Maxwel

Software Engineer
07.12.2006
1 436
34
2
38
Syberia
Игровой движок - это программа, которая позволяет играть в какую нить игру...
А игра может быть самой разнообразной... Вот например хл1... Вроде и старое двигло, а на нём зделали "Параною"... При этом правила игры не входят в двиг, а записаны в hl.dll
Оффтоп
 

Gnom

Добрая Фея :)
17.06.2005
548
43
2 OneManArmy:
Я не говорил, что движок задает гейм-плей, я сказал, что игровой движок позволяет создавать гейм-плей на потоке.
Как ты сам сказал, HL и CSS разные игры, хотя они используют общую игровую логику, методы разбора BSP-файлов, и рендереры.

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

-HunteR-

New member
06.08.2006
3 061
33
3
0
ХМАО
Движок - основа игры, которая упрощает работу с моделями уровнями спрайтами....
 

Lord_Akella

Буддист ^_^
08.10.2006
19
32
0
1
за годы, которые я решался стать маппером, я получил очень туманное и чисто ассоциативное понятие игрового движка, как системы, состоящей из неких true & false, собственно говоря, осуществляющих движение тела ни тела игрока, ну, передвижение в пространстве... в то же время это пространство тоже входит в понятие движка; например, в hl мы имеем пустое условно бесконечное пространство, в котором можно строить брашики и т.д., а в UT, наоборот, дается браш, в котором вырезается пространство...
о_О
вообщем, поправьте меня, если шо не так, а то уже стало интересно, я совсем нуб или нет =)
 

Gnom

Добрая Фея :)
17.06.2005
548
43
2 Lord_Akella:
есть еще игровые движки, на которых делают пазлы, скролл-шутеры и тетрисы...
 

Game Server

Доноры Красавчики

Пользователи онлайн