Introduction
I suppose it all started at one random
Absence of Mind gathering back in Haugesund around 25 years ago. Between
checking the latest floppies received in the post, some gaming,
checking out new demos, copying, bottle after bottle of Coca Cola and
bowls of crisp, possibly (read: most likely) very late at night (early
morning hours). Can’t really recall who came up with the idea, but
somehow we had a big laugh and discussion about what would happen if you
mixed the two games Delta and Miami Vice. How would “Miami Vice in
Space” — aka Space Vice — look like? Of course, our first attempt
(possible the best one, in the end) was just freezing Delta once started
and change out the Delta player with an animated Miami Vice car. Job
done :) Still have a copy of the hack on one of my trusty old
floppies :)
Personally, I have had quite a few
(failed) attempts in making this game happen up through the years.
Dating back to the original Shot ‘em Up Construction Kit on C64, same
program years later on the PC (C64 emulator) and finally, last year, on
GameSalad. Since this is just for fun, and I have no plans to pay for
the recent update to GameSalad’s business model, I had to look for other
options.
I was a bit reluctant to go for Construct
2 (although I have tested it in the past, and it is fairly straight
forward to use) as it’s a Windows only program. But since Construct 3
for Mac is years away, I had to bite the bullet in the end and install
Windows 10 in a Virtual Environment on my MacBook Air. Yuck…
So, off we go — again…
Preparations
Seeing as I did a lot of graphics and
“programming” on GameSalad already, I didn’t really had to spend a lot
of time on preparations. The files were securely left in one of my
(many) GameSalad subfolders.
First thing I had to tackle was how
Construct 2 would cope with the different aspects of a Horizontal
Scrolling Shoot ‘em Up game. So I read — and read. Luckily working
offshore, on a diving ship in the North Sea, gives you plenty of time at
night to solve all sorts of challenges.
After a week or so, I didn’t really have much to show for, bar plenty of experience in Construct 2.
First things first
I opted to go for a parallax effect for
the background of my game. You have 4 layers to work with on the free
version of Construct 2, so two star field layers and an action layer
(plus one left for other graphics to differentiate each level) looked
like the way to go. Half an hour later I had a quick working “level”
with the player on screen (movable with the arrow keys), and a parallax
scrolling background. Everything working nicely with Construct 2’s Delta
Time (dt) expression.
Oh, and I also had a Game Logo + Sprite
Font (made manually, of course) ready after trying to do some pixel art
in Photoshop. Worked out surprisingly well.
Brainstorming
And that was more or less the status of
game for the next week to come. I wanted to try and have as much of the
game’s design and functionality planned ahead before I started to add
more and more events and code in Construct 2. During earlier trials in
GameSalad I’ve found I’m designed the game as I go along, but in the end
it all turns out to a great big mess. This time was going to be
different.
After many mails, lots of feedback from
my old Absence of Mind buddy and hours of post-it designing, I more or
less had the design in place.
Boss Fight
So, time to start making some action in
Construct 2. First thing I wanted to try, as I already had the enemy
waves more or less figured out, was the boss fight at the end of each
level. Luckily, I had a boss ready from my previous attempt in
GameSalad. Added a few movement behaviours (horizontal and vertical
sine) and there it was. Just like I imagined, and planned it. Added a
bunch of image points for its bullets to be spawned from. A couple of
different bullet types (one standard — horizontal moving and one bigger
one with a few sine movements, always moving at an angle towards the
player), the necessary object collision events added, and I had a
working Boss Fight!
I tied everything together with a startup
screen. Ie. press space to start, press y to restart level if player is
shot and return to startup screen if boss enemy is killed.
Worked like a charm.
Back to Brainstorming — again
Seemed I got a bit ahead of myself when I
considered myself done with brainstorming. I had most of the gameplay
ready, but I also had to design the top/bottom menu. Turned out to be
one of the hardest part of the brainstorming, actually. There’s just too
many ways to do a menu — and twice that if you have top *and* bottom
menu in your game.
I really wanted to keep it as simple as
possible, but also have all the info available. Like Current Level,
Score, High Score, Players Life, all the different bonus objects
available and different ways/places on screen to display these.
I ended up with 4 options, quickly
eliminating the upper left from the list. The 3 remaining is slightly
different variations of the same menus, so I guess trial and error will
have to decide the outcome. The different menu items are easily
relocated once you have the different objects ready, and the
corresponding Global/Instance Variables and events set up in your game.
Just a matter of moving them around on the layout screen.
Bored at work
As “luck” had it, just as I completed the
menu draft, our communication system on board the vessel crapped out.
Meaning no phones, no mail, no internet, no “work”. It turned out to be a
painfully slow day, so in my despair, I found a piece (and two) of
paper and drew some ideas for different levels. Half an hour later — job
complete. The game will consist of 7 levels + startup screen (and maybe
one or two more — we’ll see)
Level 1
More or less a copy of Miami Vice on C64. Few issues regarding player control and length of level. Should the car fly over the city, or drive through the city? Both options are easily done in Construct 2. If it drives through the city, I’ll probably end up with a very short level, otherwise it’ll be “standard” length. Think I’ll opt for the first option as it’s more in line with the original game and less graphics to draw. Drive around a few blocks, shoot at some cars, maybe pick up a bonus or two, and continue to… space… Maybe a nice transition would be to fade out the city underneath while zooming the car, and then continue the next level with the car “flying” in on the screen — small at first — to its original size.Level 2
Total Darkness. Starfield(s), enemy waves
(blue on drawing), bonus objects (vertical line on drawing) and a boss
enemy to defeat at the end.
Level 3
Uridium inspired level. You get my drift.
Same gameplay as the other levels, enemies, bonus objects and boss
enemy. I’m in hard talk with myself whether to have enemy waves or
“fixed” guns (*on* the space ship) on this level. The drawing suggests
enemy waves, my head says fixed guns.
Level 4
The Rocks of Doom. Asteroid Belt level.
Lot of rocks and a few obstacles to manoeuvre through on your way to the
end. The Rocks kills you, of course!
Level 5
The Spikes of Death. Same gameplay
Level 6
Bubble Trouble :) Considering having the
car being able to take a few hits (from colliding with bubbles) before
you die… Big bubble Boss in the end.
Level 7
The Gate of Destiny
Arriving at Planet xxx (final
destination). Star fields and the planet slowly appearing during the
level. The end will consist of possible 4 medium bosses (UFO’s?) before
the Wall of Destiny. The entire right side is a wall firing all sorts of
ammo at you. Once you defeat it, the gate to destiny opens and, passing
through it, you have arrived safely at your final destination.
The End…
Side note:
I wish I was a musician, that my name was
Rob Hubbard, and I could make a sound/music pack to this project. Right
now, I have a few Delta tunes playing on the different screens, just
for inspiration. Working magic, I tell you!!
Getting down to the nitty gritty
I realized I had to sit down and work my brain through what variables the game needed. Both Global Variables for the game and Instance Variables for each object in the game. Again, I followed my “write-down-whatever-pops into- your-mind-and-see-where-it-takes-you” principle. I’m sure I’ve overlooked something, and I’m sure I’ve put some of the variables down as global instead of instance, but at least I have a draft to work from. Trial and error will sort out the rest. Don’t know why I used a red pen on this one, but I think that was the pen closest to me at the current time…Getting your head around the nitty gritty
Writing everything down on (squared) paper is a good way to figure out how to save events in Construct 2 — I hope. I use a Global “GameStatus” to control the “screen flow” in Space Vice (see previous picture) and I use a Global “CurrentLevel” Variable to control the graphical elements in the game. Maybe I can work out an event that only uses one of these Variables to control everything :) Might save me a few events in the long run. Also tried to lay out all the different Sprite Objects — and their respective animations — I need in the Game. Note, the red pen was closest today, as well…
I think I have a game plan ready now, and
the next few days will probably be used to draw all the graphics
required in the game. Pixel by Pixel takes a bit longer than new fashion
drawing methods, don’t hold your breath for the next update…
I also need to look into how best to make
Level 1 fit into my events/level control. Level 1 will require
different movement control, different enemy behavior and what not. I’ll
make the level quite short, just as a tribute to the Miami Vice aspect
of this project. I’ll not let this Level be a showstopper for Space
Vice, so if need be, I’ll even opt for “the other” solution.
Game Graphics Galore
That’s a week or so spent on graphics (in
addition to working, eating and sleeping offshore). By far finished
with the graphics yet, but it’s a good start to visualize all the
different levels. More or less happy with everything except level 2 and 7
(The “Space Ship” and the “Planet” level.) They need to be completely
re-done. Also need to add some more roof-top graphics on the “Miami
Vice” level. Other than that, I’m pretty happy so far…
Game play
Started adding some game play last night.
I desperately needed some implement some enemy waves. I’ve broken all
rules on programming and just got them on the screen. One way o the
other. The result actually looks very good, but the events in Construct 2
is another story. Not to worry, it’s all being “re-done” soon :) Right
now I’m in a testing stage, and using keyboard controls to change the
graphics/object on every level. As soon as I go to Global Variables
mode, and starting a more permanent solution, everything will look nice
and dandy… Hopefully ;)
Inspiration
By chance, I stumbled over a post on a
“retro” Facebook Group about a blog by Steve Turner. A diary of a new
game he has started after retiring. That’s cool enough, but when I
realized he was sitting in the same office as Andrew Braybrook back in
the Hewson days and A. B. also did a Diary of both Paradroid and
Morpheus, I just had to find it again. Google is your friend, so didn’t
take too long, to be honest. Started reading and just got sucked into
the Diary. Man, I’d give my leg and my arm to be working in such an
environment 25–30 years ago :)
Anyway, needless to say, I’m pretty much
all inspired right now, so tonight starts the “beginning of the end”, so
to speak. I’m done with the testing stage, now lets get those global
variables in use and finish this thing. I mean, don’t hold your breath,
or something, as there is still a long way to go before any release can
be considered, but it’s sort of a turning point from now. I’m more or
less happy with the game play, most of the graphics and design, so lets
get cracking on getting this thing finished, why don’t we.
To be continued…
Update 24.08.2016 - A few other
projects has been started in the mean time, so the Space Vice project is
at a standstill at the moment.