New game – a small Rick Henderson Spin-off
While Rick Henderson is happily being ported for Xbox, Playstation and Switch, i decided to make a small spin-off game that will be free for all existing and new Rick Henderson owners.
It will be available to buy separately and i have yet to decide on pricing, but it will be somewhere between $0.25 and $0.50. What, am i nuts?
Consider it a small experiment, i want to see how much traction and sales can a small and cheap game get while also exploring the potential of getting one small game for free when buying the more expensive one and the potential of the gamer getting interested in Rick Henderson when playing Rick Henderson: The Eternal Arena (working title).
What is the game all about
So, in a nutshell, the premise is quite simple, think of it as a mixture of Rick Henderson, Bit Blaster and Asteroids. The game is one screen, the view is top down, the waves are smartly randomized (separated into invisible levels of progression by score) and the ammo is limited, but ammo pickups are flowing into the screen at all times, while you also get some more when killing enemies. But you need to be a good shot, not just trigger happy, otherwise you’ll run out of ammo.
I am drawn to add more and more stuff to expand the idea, but i’m afraid i will get into the scope creep and that the development will take too long so i’m taking it simple, working on the core loop and i will add features as i go and see fit.
Assets and systems
One of the perks in having a game behind you is all that sweet, valuable assets that are already polished and selected. I will be reusing the backgrounds (which are roughly 50% of the cost of the original game), enemy ships (i am simply mirroring the appropriate ones by horizontal axis, retouching them a bit and placing them into the game), weapons, sounds, translations and most important – systems. Reusing already polished systems save a ton of time and that’s what will make the game possible to finish in about month or two. But this time i’m doing it even smarter, modifying stuff to be 100% modular so i can just copy/paste stuff and tweak parameters via inspector.
Basic Mechanics
We start with the movement. Here is where i hit the first wall. It was quite easy to make a typical BitBlaster movement system: ship always goes forward, you rotate it to alter the movement direction and press back or forward for boost or slowdown. Boost also affects ship rotation speed (you turn faster) while slowing down does not. However, i found that this system of movement is not satisfying (a bit boring tbh) and i will go with the typical asteroids feel (space drifting) using physics and adding the relative force with a slowdown when releasing the move forward button. This type of controls adds a higher skill needed threshold to the game (which might or might not be good), makes mastery of it important (which is good since improving you control skills make you better) and allows for some more fun mechanics to be explored. Also, stuff like drag allows for more differentiation between playable ships. Plus, it’s ~300% more fun as opposed to the movement system i explored first.
However, hitting the game bounds is quite easy when space drifting and it can be quite frustrating to die this way, though it can be mitigated by bouncing off the wall and losing a hit point instead of dying. Also, making controls tight and responsive using physics can be really tough, and when playing with drifting in a tight place, controls also need to be tight!
Big issue is that the game will need a lot of refactoring from OnCollision2D which i’m using for all sorts of collision in no physics movement method as mto OnTrigger2D since i need to use the dynamic rigidbody for the player for physics space drifting movement.
However, i found that using the physics (unless you are making a physics based game) is a bad idea since it’s a constant battle with the physics system, so i will be simulating the force and drag instead of using it ouf ot the box. I’ve yet to see how will i accomplish it since there is a remarkably low amout of info on this matter on the internet and my math and physics skill are not top notch, to say the least. So, for the time being, BitBlaster style movement will be in place.
Enemies
Since i don’t plan for games to last too long (few minutes tops, i’m aiming for “Ok, let’s play one more. And maybe one more.” not too many enemies will be included in the game. For now i have a small asteroid, a basic floating rock that dies to one hit of a basic weapon, big asteroid that is a bit tougher amd breaks into four small asteroids, Ripper (homing enemy from Rick Henderson, a huge rotating saw slowly following you), Hunter Seeker (a huge bomb with an engine that stops when you enter its range, stops and then charges towards player’s last position and then explodes), Enforcer (big guy that is a bit tougher to kill and shoots targeted bullets), Katori which shoots non-targeted 8-way shots, Helios, which shoots in a linear double spiral amd Stinger, ship that shoots targeted shots. I will probably be adding some more enemies, also from Rick Henderson.
Weapons
To motivate players to switch weapons and help them not die when they run out of ammo, picking up new weapon will also get you more ammo. Weapons are also mostly recycled from Rick Henderson, both functionality and visuals and it seems to be fun for now!
Pickups
Not much to say here, besides ammo, there are boost/brake refillers, shields, bombs, double damage, radiation and magnet.
Different ships and special abilities
Haven’t done anything yet regarding this, but it would be nice for the player to choose between multiple ships. Like in Rick Henderson, i think three should suffice, light and fast, slow and heavy and balanced in terms of speed, acceleration, drag and lives. Also, special abilities for each one would be cool and add distinct character to each one od them (see more in Feature Creep).
Scoring System and Progression
I am kind of reusing the system from Rick Henderson on this one – enemy health == enemy score. Level progression is kind of an ease out curve to compensate for the steady rise of enemy health increasing through the game (as more powerful enemies are appearing). After a first few small asteroids and hitting a score of 100, large asteroid spawners are being activated and spawn times for small asteroids are being recalculated to avoid swamping the screen with enemies. When hitting the next score threshold, next enemy spawners are being activated with previous levels spawners spawn times being recalculated again. This way we can fine tune the number (not too many, not to few) and power of enemies on screen (not too powerful, not too weak).
Issues
One of the main issues i have is readability. BitBlaster sports a simple look with no background and readable colors. Rick Henderson – not so much. While the original game is relatively good in that regard, the new game looks a bit messy with colorful backgrounds, debris, bullets and pickup flying all around. But i will make it as i intended it to be and let the players be the judge od that. Just in case, i included the option to lower the backgrounds’ opacity for better readability.
Feature Creep
As usual, this always poses a threat as ideas appear during the tenure. The best way is to keep working on the core loop, fine tune everything and the add the next simplest idea you have to try it out.
Special abilities
This is a tough one. Rick Henderson featured a hologram for Rick’s ship that would do nicely here too and Ben’s ship had a microwarp jump which can be tricky since you can easily crash into game bounds in this game, but it is doable and maybe it would be good since it requires some skill to use. Thoraxx’s ship is a problem, it has a missile salvo which would be sort of a double feature since you already have bomb in the game, so it’s off and i don’t have any other ideas for it. Not to mention that a special ability would then include a third action button (fire, bomb, special ability) which is perhaps an overcomplication.
You will be able to read more about in the new Playmaker to C# section of the website.