Toys - Nomad: interview with the author of the scrolling shooter Nomad (Hippiman).

Info Guide #12
Nomad
Alone Coder> 
   Last year I showed the game Nomad
on DiHalt. Unfortunately, we were not allocated
the best time, and I was not at my best
form - stuck on the 2nd level and could not
show the entire blockbuster.

Hippiman> 
   In fact, for DiHalt it was necessary
make a lighter version with more powerful 
weapons or fewer enemies. 
The game turned out to be really difficult, and 
To pass it you need training or 
good skill in this genre. 

Alone Coder> 
   Tell us how the idea of Nomad was born?
After all, make a nice scrolling in color on
point - it’s very difficult... And why does he
Nomad? (I remember a childhood game called 
N.O.M.A.D :)) 

Hippiman> 
   I originally planned to insert it into the game
the plot is post-apocalyptic, fantastic─ 
in a world destroyed by war. Where are the leftovers? 
humanity is struggling to survive, 
and the remains of robotic combat vehicles methodically 
it is humanity that is being exterminated by carrying out pos─ 
the latest program embedded in them. 
   And the main character is a tramp like crazy
Max played by Mel Gibson. He's driving around 
on his bike around the world in search of food and 
fuel and one day the radio picks up a signal about 
help. He finds out that far in the east 
there is a valley where survivors gather, but 
she was attacked by an army of robots. The hero decidesgo to the rescue. 
   Something like this. Writer from me nickname─
Coy, and I figured that I could not tritely─ 
dragging out this whole thing is to describe beautifully and 
draw in the screensaver. And the plot is shmup 
not particularly needed at five levels, and I re─ 
I wanted to leave everything to the player's imagination. 
I only made the intro and ending (I 
due to the size, even in separate modules for─ 
shoved). 

Alone Coder> 
   Can all enemies be avoided? Or by─
Is energy loss inevitable?

Hippiman> 
   All enemies can be avoided. I'm a specialist─
but I did it so that the game could be completed 
without loss. But in some places this layer─ 
it's good. At the end of the first level, right before 
the boss is very difficult to avoid the enemy bullet─ 
but, you need to make a very precise jump. 
Sometimes you just need to know where it will come from 
enemy  Some levels are preferable 
pass with a certain weapon. 
   However, when I tested the game,
passed it onNormalwithout loss of lives and 
without any problems. Now you need to rub─ 
roam, lost the skill. 
   The most difficult place in the game is level 2─
Ven. The basic pistol is too weak for 
most enemies, but it’s hard to yell with a magnum─ 
due to the low rate of fire. 
   It is best to pass this level with
Ultrasound orbleed.This requires a little bit
practice level 1 and try 
score as many points as possible on it. 
   It's actually not difficult. If this
do, then the 2nd level will seem to us─ 
much simpler. 

Alone Coder> 
   How are the enemies scripted? How are they scripted?
levels?

Hippiman> 
   This is an interesting question :). In Nomad I'm on─
stepped cunningly. 
   Each level is not a beautiful parting─
enemies placed on a grid, but essentially a script - 
sequence of commands of the most varied nature 
correctness. 
   All commands are carried out strictly according to the rules─
in order and in time. Those. another team 
will not be executed until the global counter 
time will not reach a certain point─ 
nia. 
   There are a variety of teams:
 -create a monster
 -change scroll speed
 -make a checkpoint
 -release the boss
 -go back a few commands from
by rewinding time (this is how cycles are made)
 And with their help patterns are made.Using patterns - a certain set
commands that are repeated several times, 
made my life a lot easier during the crisis─ 
level boots. Instead of creating─ 
kill each enemy individually, I could 
create one and then specify how many 
times it needs to be repeated. 

   Monsters are not scripted in any way. They don't have
AI as such. Behavior of each monster 
set 2 parameters: type of movement and type 
shooting. 
   All types of movement and shooting are strictly for─
are given in the game code and are also available for all purposes─ 
teas of life: 
 -move in a zigzag, straight at the player, along
straight, jump out from under the floor, fly
straight, and then explode, etc.
 -shoot in some direction, at ig─
rock, shoot another monster, don't shoot
in general, etc.
By combining different types of movement, str─
ideas and patterns, I achieved different interests─ 
sny effects. 
   For example, a hovercraft made of
2nd level, which floats in the background - this is 
mob with very thick armor and very small─ 
kim hitbox that shoots upward withat a certain frequency. Following co─ 
This mob's spawn cycle goes through a cycle that─ 
ry spawns energy balls at the top of the screen─ 
wound. Energy balls are also mobs. And this cycle 
synchronized with the movement of the vessel so that 
so that it seems that these balls are his 
shells. 
   This is a simple example. In fact, when
using patterns, cycles and different types 
movement can do a lot of interesting things. 

Alone Coder> 
   Approximately how long does it take to complete the floor?
new walkthrough? How did you debug it?

Hippiman> 
   First level to the boss, if you don't lose it
lives, is completed in approximately1.5minutes. 
2nd - for about 3 and kopecks. I'll follow─ 
- I don’t remember exactly, but on average from4to 
5 and a half minutes per level.
 It turns out that with bosses and loss of life─
This game can be completed in an average of minutes 
30-40.
More 5minutes per level - it’s already difficult
for the player. You simply get physically tired from 
constant concentration and you start making mistakes─ 
fight. 
   And I debugged it quite simply.
   I did part of the level: one or two waves.
Usually it was a segment from one checkpoint 
to another. And I passed it many times, 
as long asdidn't line up all the teams correctly 
in time, I didn’t arrange the monsters like that, 
so that it is interesting, but not too complicated─ 
It’s important to be able to get through without getting damaged─ 
ny. Then he moved on to the next one, etc. 
When the level was finished, I repeatedly 
replayed the entire level and finished polishing─ 
Valid what I had overlooked earlier. Adjusted 
parts to each other. 
   I also tried to take into account different styles of pro─
walking. Someone can quickly kill everyone 
beat, and he will have to wait for the next wave, 
and someone, on the contrary, gets stuck, and the next 
the wave will completely crush him. 
   We had to look for a middle ground.

   Each level was originally intended
to pass a certain level with a weapon─ 
mind and with a certain set of abilities. 
That is, for example, at the 3rd level with basic 
there is nothing to do with a pistol, but on the 4th and 5th - 
no double jump. Accordingly, ig─ 
there must be a certain amount of rock 
money to buy it + should remain 
for new lives and increased energy. 
   Approximate amount of money after passing─
I determined the expectations of the level by my passers-by─ 
deniyam. Played several times with different ora─ 
live, then calculated the arithmetic mean 
earned at the level of points and reduced by 
third. 
   Although scoring is a very
extensible, and the reason for this is the multiplicity system─ 
lei. If you screw up regularly, you will score 
very few points. 
   Ifplay clean and don't hit
under bullets, then with every enemy you shoot down you will 
increase the score multiplier and, accordingly, 
Surely, greatly increase the final points. 
If you get into the rhythm, then already at the first level 
you can quite score points for the purchase 
"Kalasha" (assault rifle, also known as AKSU),
and even for an extra life─ 
tsya. And you can spend all your lives there, and 
the points won are not enough even formagnum.

Alone Coder> 
   The game is very different from other games
for ATM Turbo. It uses some
assembly routines beyond regular Evo
SDK? 

Hippiman> 
   Yes, except for working with the disk and your functions─
tions of working with extended memory, in fact, 
and nothing. Everything was done in C. 
   I used several quick functions
mathematics, but they were also written in C. 
In deep use of assembler it is simple 
there was no need. 

Alone Coder> 
   Is it possible to do it on such an engine?
something like Midnight Resistance? :)

Hippiman> 
   Midnight Resistance - no, of course :)
This engine is not designed for this. 
   In general, this engine can be characterized by─
in one word - saving. For the sake of speed 
I had to save on everything. Since 
There is no hardware scrolling, but software 
move the screen area horizontally from 
behind the strangeorganization of memory and large 
its volumes are very long, even14 MHznot enough─ 
appeared on frame scrolling, I had to 
get out. 
   Even simply copying an image to
the screen takes a long time, i.e. I don't care at all 
I couldn’t scroll the entire game volume─ 
lusty. 
   I acted more cunningly. All level graphics
I drew in such a way that there would be no for─ 
It is noticeable that the entire playing area is divided into 
small stripes. 
   The road along which the player is moving, sis─
It consists of two stripes, each8pxhigh. 
These two stripes are redrawn almost every 
last frame. And I made the background from three stripes: 
two in8pxand one in1bpx.And then I’ll be killed─ 
cool parallax effect. 
   I calculated the movement intervals of these
los so that you never need to move─ 
throw them all at once. Redraws at a time 
only one lane. 
   Thus it turned out that in maxi─
low load I needed to re─ 
draw1bpxroads and1bpxbottom layer 
parallax. Which is already quite a bit, and all that remains is─ 
there was still a lot of CPU time left for 
movements of a large number of sprites. Although 
income to me in particularly tense moments─ 
it was necessary to stop traffic altogether in order to 
save money on it too. 
   (Later, using ASMA, I made a couple
vertical scrolling functions, about this 
read in a separate article. This is already noticeable 
faster and smoother. But for normal speed─ 
growth would still need to be done ani─ 
stripes. Flash_zx very skillfully at─ 
changed these functions in my Battle demo─ 
toads ZX_Evo .) 
   But if you want to remake the engine for
standard shmups like R-Type, Zybex, etc. 
quite possible! 

Share your thoughts about the article