Geometry Dash

Geometry Dash

Not enough ratings
Разбор строки уровня GD
By KoLeS
Подробный разбор строки кода уровня в Geometry Dash. Данное руководство создано для Geometry Dash 1.0 - 2.113.
© Права защищены лично мной.
   
Award
Favorite
Favorited
Unfavorite
0. Колбек
Для того, чтобы получить приведённую декодированную строку уровня, посмотрите предыдущее руководство, где всё подробно объясняется.

Ссыль

1. Начало
Строка уровня строится примерно таким образом: "{level_start};{object_string};", где level_start - начальные значения для уровня (номер музыки, цвета background, ground), а object_string - информация о каждом объекте в этом уровне предел количества объектов - 2^31-1.

Сайт для помощи[//] Уже не работает)
2.1 level_start (1.0 - 1.811)
level_start содержит переменные kS[i] и kA[i], где [i] - натуральное число.
В версиях 1.0 - 1.811 level_start будет выглядеть примерно так:


  • kS1 - kS3 - RGB цвет background
  • kS4 - kS6 - RGB цвет ground
  • kS7 - kS9 - RGB цвет линии (line color)
  • kS10 - kS12 - RGB цвет объекта (object player color)
  • kS13 - kS15 - Obj-2 Player Color
  • kS16 - kS20 - технические переменные, которые брали цвет игрока принимает значение 0 - 2, см. таблицу ниже
    Значение
    Цвет
    0
    Ничего
    1
    Player color 1
    2
    Player color 2
  • kA1 - Номер музыки (0 - 34) от Stereo Madness до Monster Dance Off
  • kA2 - Стартовый режим игры за персонажа куб, корабль и т.д.
  • kA3 - Режим уменьшенного персонажа mini mode
  • kA4 - Стартовая скорость
  • kA6 - Текстура background
  • kA7 - Текстура ground
  • kA8 - Режим дуала dual mode
  • kA9 - Если в уровне есть Start Pos, то аргумент этого параметра будет 1
  • kA10 - 2-Player Mode
  • kA11 - Гравитация при старте Если 1, то гравитация перевёрнутая
2.2 level_start (1.9 - 1.93)
В версиях 1.9 - 1.93 level_start в декодированном виде будет выглядеть примерно так:

На скриншоте изображён Theory of Everything 2



Новые параметры:
  • kA13 - Оффсет музыки
  • kA14 - Guidelines Кастомные полоски в редакторе, чтобы помочь синхронизировать геймплей с музыкой
  • kA15 - Плавное включение музыки
  • kA16 - Плавное выключение музыки сразу после прохождения уровня

Изменённые параметры:

  • kS29 - BG Color
  • kS30 - Ground Color
  • kS31 - Line Color
  • kS32 - Object Color
  • kS33 - Color 1
  • kS34 - Color 2
  • kS35 - Color 3
  • kS36 - Color 4
  • kS37 - 3DL Color

С версии 1.9 изменена система цветов скриншот и объяснение ниже:



Теперь для цветов используются параметры kS29 - kS37.
Алгоритм для параметра цвета следующий: 1_arg1_2_arg1_3_arg1_4_arg2_5_arg3
  • arg1 - Целые числа от 0 до 255 rgb цвета
  • arg2 - Вещественное число от 0 до 1 альфа-компонент
  • arg3 - 0 или 1 Blending (Смешивание)
2.3 level_start (2.0 - 2.113)
C версии 2.0 до наших дней level_start в декодированном виде будет выглядеть примерно так:

На скриншоте изображён The Challenge



Новые параметры:

  • kA17 - Ground Line ID линии, которая используется в уровне
  • kA18 - ID шрифта в уровне
  • kA22 - Platformer Mode значения от 0 до 1, доступно в GDM, GDSZ и GDW
  • kS38 - Colors Новая система цветов, таблица ниже
  • kS39 - Color Page страница, которая была отображена последней в окне отображения цветового канала

Все предыдущие kS параметры более не используются!

Значение
Имя
1 - 999
Custom colors
1000
BG
1001
G1
1002
Line
1003
3DL
1004
Obj
1005
P1
1006
P2
1007
LBG
1009
G2
1010
Black

Теперь цвета находятся в параметре kS38 и работают следующим образом: "{color}|{color}|...", т.е. цвета разделяются прямой чертой |.

Параметры для цветов:

Значение
Имя
1
FromColorRed
2
FromColorGreen
3
FromColorBlue
4
PlayerColor
5
Blending
6
ColourChannelIndex
7
FromOpacity
8
ToggleOpacity
9
InheritedColorChannelIndex
10
HSV
11
ToColorRed
12
ToColorGreen
13
ToColorBlue
14
DeltaTime
15
ToOpacity
16
Duration
17
CopyOpacity
18
?
3. object_string
object_string - строка, в которой находится каждый объект из уровня. Объекты разделяются точкой с запятой ; и к версии 2.113 имеют кучу параметров. Таблица ниже.

Немного инфы тут.

Важное замечание! Большинство параметров привязаны к определённым объектам, например параметр, который внутри себя содержит текст 31 параметр, привязан к объекту с текстом, поэтому данный параметр, скорее всего, не будет работать на обычном блоке.

Значение
Имя
1
Object ID
2
X Position
3
Y Position
4
Flipped Horizontally
5
Flipped Vertically
6
Rotation
7
Red
8
Green
9
Blue
10
Duration
11
Touch Triggered
12
Secret Coin ID
13
Special Object Checked
14
Tint Ground
15
Player Color 1
16
Player Color 2
17
Blending
19
1.9 Color Channel ID
20
Editor Layer 1
21
Main Color Channel ID
22
Secondary Color Channel ID
23
Target Color ID
24
Z Layer
25
Z Order
28
Offset X
29
Offset Y
30
Easing
31
Text
32
Scaling
33
Single Group ID
34
Group Parent
35
Opacity
36
?
41
Main Color HSV Enabled
42
Secondary Color HSV Enabled
43
Main Color HSV
44
Secondary Color HSV
45
Fade In
46
Hold
47
Fade Out
48
Pulse Mode
49
Copied Color HSV
50
Copied Color ID
51
Target Group ID
52
Pulse Target Type
54
Yellow Teleportation Portal Y Offset
55
Teleport Portal Ease
56
Activate Group
57
Group IDs
58
Lock To Player X
59
Lock To Player Y
60
Copy Opacity
61
Editor Layer 2
62
Spawn Triggered
63
Spawn Delay
64
Don't Fade
65
Main Only
66
Detail Only
67
Don't Enter
68
Degrees
69
Times 360
70
Lock Object Rotation
71
Secondary Group ID
72
X Mod
73
Y Mod
74
?
75
Strength
76
Animation ID
77
Count
78
Subtract Count
79
Pickup Mode
80
Item/Block ID
81
Hold Mode
82
Toggle Mode
84
Interval
85
Easing Rate
86
Exclusive
87
Multi-Trigger
88
Comparison
89
Dual Mode
90
Speed
91
Follow Delay
92
Y Offset
93
Trigger On Exit
94
Dynamic Block
95
Block B ID
96
Disable Glow
97
Custom Rotation Speed
98
Disable Rotation
99
Multi Activate (Orbs)
100
Enable Use Target
101
Target Pos Coordinates
102
Editor Disable
103
High Detail
104
Multi Activate (Triggers)
105
Max Speed
106
Randomize Start
107
Animation Speed
108
Linked Group ID

Более подробная инфа о каждом параметре тут[//].
4. Благодарность
Спасибо за просмотр данного руководства. Теперь вы сертифицированный игрок в шахматы строитель уровня вслепую!
Btw, работал над этой статьёй полгода с 11 апреля + запарился делать таблицы через Steam.
Если вы найдёте где-то орфографическую, грамматическую, пунктуационную или иную ошибку, то не бойтесь написать об этом в комментах)
Немало инфы взял с этого[//] ныне нерабочего сайта. За что и соответствующая благодарность.

А теперь, домашнее задание: построить уровень через блокнот. Пользоваться можно только конспектами с предыдущих лекций руководств. Если сделаете уровень, а потом и пройдёте, получите автомат по информатике)

На данный момент это последнее руководство. В будущем, если будет немало просмотров, я сделаю разбор запросов и ответов к серверу игры, и без питона или curl тут не обойтись))

3 Comments
kuzheren 3 Nov, 2024 @ 8:22am 
теперь мне не нужен конченный сломанный gd.py для парса лвлов!
kuzheren 3 Nov, 2024 @ 8:20am 
боже, это ахуенно
Wegas 19 Oct, 2024 @ 10:20am 
какого...