Star Juggler Origins

I made a Devlog during the Jam but I'll go into more detail here.
Good thing I saved a version for most of the iterations as it allows me to record new gifs of what was done.

===> Day 01 (31/07/2017): The Idea

Before the Jam started I sketched an idea, which gave me a direction and motivation.
Note: You might recognize some details and yes, the "ship juggling stars" idea was there from the start.

I instantly wanted to use Javascript and PhaserJS since I had good experiences with making small-screen (scaled) games with them.
Since I'd go on vacations I had around 14,5 days so the 64x64px size was beneficial for making sprites fast.
As usual, I wanted to do everything by myself (Programming + Graphics + Sounds) for the learning experience. Crazy isn't it?

===> Day 02 (01-02/08/2017): Setup

Quickly made a (Gitlab) Project and a (NPM) Package and I made this mockup while I was installing the dependencies:

I then started preparing the game but, when I checked Phasers website... Surprise! Phaser had a new version (2.8.3).
Being a masochist person who likes challenges, I decided I might as well use it, thus spending the remaining hours figuring out how to set it up the way I wanted. Didn't like needing separate libraries instead of the classic all-in-one Phaser but I got it working.
Thankfully the code was the same so I quickly had a screen showing the mockup.

Since I only had 1-2 hour per day until the 5th I learned "If it works, don't touch it."
A good example is not wasting time making several attempts at getting the linter (source-code checker) to ignore some warnings.

===> Day 03 (03/08/2017): Player

I split the mockup into several Sprites, loading them as Assets and showing the Players' ship on screen.
These look blurry since it was missing an option to round values, so 0.5 would make those half-transparent pixels appear.
We can see the mouse movement working as expected, with a speedup when I held the mouse button.

===> Day 04 (04/08/2017): Enemies and Pickups

Added a Pickup and Enemie and made a little game where touching Enemies hides the Player and touching Pickups makes them jump to another location. I also gave Enemies some basic AI.
I enabled Phasers body debugger to see each Sprites body (the green squares).
Learned how to round the pixels art with Phaser, removing those half-transparent pixels.

You might notice the pixels are now rounded, removing the half-transparent borders.
So far it had crisp graphics and decent functionality, albeit the collisions worked best if the ship didn't move.

===> Day 05 (05/08/2017): Health

Placed a Gauge with a Shield and an Energy bar on the bottom.
The Player had up to 10 shield and 3 energy, which were drained by touching Enemies/Pickups

You might notice that the Shield bar was animated in a different way.

===> Day 06 to 08 (06-08/08/2017): New Sprites

Made several new Sprites. This took a few days as I kept thinking of better ways to order the master sprite-sheet.
Got the idea of ordering enemies (and enemy projectiles) from level 1 to 3 (as seen on the left-most iteration). Later adding bigger/smaller Pickups.
While the Gauges were made in separate, I added them for reference in this demonstration of the evolution of the sprite-sheet:

I then made a test that used the new Pickups and regenerated Shield/Energy.

There is a test for Day 7 but it is pretty much the same, save for the falling Enemies and using the latest Gauge.

===> Day 09 (09/08/2017):

I added weapons to Enemies and loaded the sprites from a sprite-sheet; We can see from their collision bodies that they had a big (10x10px) hit-area since it was the size of each cell.
Players got points for touching Pickups and shooting Enemies but it didn't use a bitmap font yet.

===> Day 10 (10/08/2017):

Expanded the Enemy sprite-sheet and made one for the pickups and another for bullets.
There were now 6 pickups, +2, +4 and +6 Shield/Energy.
Created and used a custom Bitmap Font for the score.

Adjusted some sprites and made the missing ones, there were now 6 types of enemies with 3 levels each. Of course, the Asteroids didn't fire bullets.

===> Day 12 (12/08/2017):

Re-ordered the sprite-sheet with everything in separate to ease visualization. As you can see the Gauge sprites weren't here.

Migrated several assets to XML Texture Atlas (for proper collision bodies).
The Gauge now showed a red background when the Shield is low.
Made a Group that is always on top for the UI and made the Score Counter translucent.
Added a Menu with a simple animation.

===> Day 13-14 (13-14/08/2017):

Finish migrating all the sprites to XML Atlas.
Modified the Menu to include an Expand option that cycles between Original (64x64px) and Scaled (multiple of 64x64) modes.
Added the Star (player weapon) which can be charged, circles in front of where it was shot and can be caught to recover its energy. This was done with an entirely new class. Stars could also absorb bullets (leading to that bug where bullets stop early).
The Star and Enemies now had a health value, meaning a Star would disappear if the Enemy had more health.
Fixed several issues with the Enemies, with the game now properly sending growing waves against the player. Also added "boss" enemies.
Added the death explosion animation.
Made Pickups "phase" in and out.
The Player glows when at maximum Charge.
Added a Game Over screen.
Some enemies now had multiple Weapons (mostly boss enemies), with configurable (straight, targeted) directions.


Time was truly of the essence here, I couldn't believe how many unexpected life-events kept popping up.
It was fun watching a charged-Star obliterate everything.

===> Day 14 to 15 (14-15/08/2017):

I listed Day 14 twice since it was 13-Morning 14 then Afternoon 14-Morning 15, it was crazy.
Modified the Enemy Wave loop. (the next wave will only come after destroying all enemies, and they might not be destroyed after leaving the screen due to a bug)
Balanced Enemies and Stars. When a Star cancels a bullet it also lost energy now. I came to regret this as the Star was hard enough to catch.
Colored the sprites, keeping it simple and random. While I envisioned shots the same color as the ships, some enemies share the same bullets.
Expand now cycled through Original, Scaled and Fullscreen Scaled.

After 14.5 days of work, despite its many flaws, I made a working demo. Of course there are tons of things I would like to do, and now that the Jam is over, only time will tell what happens.

The lack of Sound is devastating when looking at the array of explosions that a Star can do but, I really couldn't dedicate more time to the Jam.


Star Juggler v0.1.2 (LOWREZJAM 2017 Submission) (663 kB)
36 days ago

Get Star Juggler

Download NowName your own price

Leave a comment

Log in with your account to leave a comment.