Log In  

Cart #xenith-4 | 2023-07-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
30


(warning: contains some flashing lights)
(Fake08 support added)

SUMMARY

Survive 50 micro bullet-hell levels set over more than a dozen environments to face the final boss.

CONTROLS

Player 1: Arrow keys to move, hold Z,X,C,V,N, or M to slow your ship down for maximum control
Player 2: ESDF to move and Q,TAB,SHIFT, or A to slow.

Pressing Q/TAB/SHIFT/A at any time will enable player 2 to join at the start of the next level.

GAME MODES

Standard: Survive each of the 50 ten-second levels. If anything hits your cockpit you'll need to restart.
Invincible: Experience the game without having to restart. See how few times you can get hit.

Pressing Right on the main menu will take you to a level select screen. Every level is unlocked from the start to make it easier to resume a game, or skip past any difficult levels.

Pressing Down on the level select screen will change game modes.

Pressing Left on any menu screen will turn off background music.

If you complete the game playing all the levels in order then your total number of restarts will be recorded on the cartridge as a high score (single/two player and each game mode count as separate high scores). High scores can be reset in the cart menu.

STORY


Aliens have invaded the solar system. A giant ship has been discovered beyond Mars, that is utilizing a mini black hole to convert matter into energy to fuel their attack. You must stop them by any means necessary. You have the fastest ship in the fleet equipped with a revolutionary boost drive. You've got no offensive or defensive capabilities, but a path has been determined that will avoid the most enemies. It will take you through Earth's atmosphere, past the Moon, and deep into caves on Mars.
When you're boosting, you'll be invincible, but your drive only operates for a short time and will need 10 seconds to recharge. Just stay alive while you're recharging. I don't know what you can do when you get to your target... you'll need to improvise. But don't fail, you're our only hope.

THANKS

Huge thanks to Krystman from Lazy Devs Academy for his excellent tutorial series that were instrumental in getting me through this game.

Also big thanks to: SlainteES, Heracleum, SmellyFishstiks, FReDs72, Thelxinoe5, and everyone on the Pico-8 Help Discord.

And thanks to my son Matthew for his invaluable playtesting and encouragement.

DESIGN NOTES


Gameplay
I really enjoy the dodging part of bullet-hell games, but have actually no interest in the shooting part. Stripping shooting out just gets rid of a lot of clutter and distractions on what you should be doing. I also dont like having to restart large sections of gameplay, so kept each level to a 10 seconds limit. With quick restarts I felt this got rid of all the frustration points a game like this could have.

None of the enemy behaviour is randomly generated. Every shot either happens exactly the same each time, or is aimed at the player. That way levels can be 'learned' and mastered.

Having two player support was important, actually I was tempted to make it 8 players, but would have found testing difficult. In invincible mode the game doesn't track which player is hit more often because I wanted to emphasis cooperation over competitiveness.

Graphics
As a 3D artist trying to come up with pixel art was really difficult. It was fun creating 8x8 sprites, but after a while I experimented with using 3D models to generate the sprites. The title screen, asteroids, and craters were all 3D models that I rendered out at the tiny resolution, then used photoshop to set it to the pico8's indexed colours, then saved as png files and dragged into pico8's sprite sheet. I found converting them in photoshop before dragging them in looked a tiny bit better.
I found this method to be a nice simple approach for me, but the results aren't anywhere near what a good pixel artist can do.

Environments and Music
I tend to lose interest in things quite quickly if they become too repetitive, but with limited gameplay variations and enemy types in this game I wanted to keep things interesting by packing in as many environments and different music ques as possible. The environment features are randomly generated to save Map space. Music is never the same for two levels in a row, though there are themes tied to the different environments.

Accessibility
Invincible mode was added as an accessibility feature. The standard game is quite hard in places and it felt a shame to restrict the game only to people with the physical ability to be able to deal with it. Similarly I wanted to have the full level select from the start, so as not to limit how people could play the game. I feel more games should have accessibility options.

Coding
Half the game was written with a token count of 7000-8100, I hadn't anticipated how much of development would be refactoring and learning token optimisation tricks (if I couldn't write tables as split"1,2,3" this would never have been finished :) )
The _ENV feature was essential for keeping the token count down in the game. It seems confusing at first, but can be implemented very easily and saved having to write self. for every object variable.

I hadn't anticipated how tricky it could be to smoothly integrate music into a project. I spent a while unsure which part of the code should have ownership of the music controls. In the end I created one master function that controls what music is playing and when and put it straight in '_update' running beside my state engine.

P#130692 2023-06-08 23:32 ( Edited 2023-07-06 11:09)

1

interesting concept with the lack of shooting

P#130693 2023-06-08 23:59
1

A work where I can enjoy the fun of avoiding bullets.
Each level is attacked by a unique barrage.
Since it is a time system, I can advance to the next level by trying several times.
Nice game!!

P#130698 2023-06-09 03:21
1

Truly phenomenal. For a first game, this is certainly a great job. To me, more than a bullet hell game, it was a musical journey. This game is meant to be played with music, it elevates the experience.

P#130706 2023-06-09 06:21
1

Really good!

P#130707 2023-06-09 07:29
1

really fun! hard, but with a nice difficulty curve. the quick restarts were very nice, and the music had so much variety. great game!

P#130735 2023-06-09 23:20
1

Thanks for all the kind words everyone ❤️
And well done pancelor, I didn't think that would be possible.

P#130754 2023-06-10 10:00
1

Nice game -- you got me in frustraton mode but i fought through it and won .. woo ..

cool boss.

P#130781 2023-06-10 23:59
1

I've basically lost 1/3 of total at lvl 48 (I think) look at the bar going up offscreen 😅
A suggestion: the transition from fast moving to slow should be gradual or smoother (see 'lerp' functions).
I really loved the 'minimap strip' idea as visual progress at the bottom 👌

P#130782 2023-06-11 00:47 ( Edited 2023-06-11 00:48)
1

This was surprisingly fun, the patterns were unique and with the short levels weren't too overwhelming.
I loved the little story of traveling across Earth, the moon, and mars to a black hole. The music and background changes were great too.
And of course the death chart was cool to see:

P#130811 2023-06-11 17:18
1
P#130844 2023-06-12 12:06 ( Edited 2023-06-12 12:07)
1

This is such a great game - well done!

P#131676 2023-07-05 21:13

Thanks very much :)


On a side note: I've just updated the game so it has full Fake08 support.

P#131687 2023-07-06 11:08
1

I found it annoying how many of the levels just come down to going to the correct spot before any enemies arrived. I also didn't like how often shots came from enemies that were barely ever visible. Even a lot of the levels that I beat in one try felt less due to my skill at dodging or analysis and more due to me guessing a good spot to start from.

P#131692 2023-07-06 17:02

Thanks for the feedback. I did deliberately makes sure there were no random elements in the game, so that it would be consistent between tries, and if a level was too hard, it could just be the case of finding a correct path. Though as I went through the levels it was a struggle not making them too easy, so I added more and more targeted attacks from the enemies.
I am planning for a future game to go the other way and add more randomness and make it more skill based.

Also great score! I can't get that and I've done each level a million times :D

P#131718 2023-07-07 08:19 ( Edited 2023-07-07 08:19)
1

A great game, the idea of pre-positioning yourself for an advantage is both unique and works really well. Level 41 was the insurmountable roadblock to me, unfortunately, but I still enjoyed playing to that point.

P#131791 2023-07-09 22:45
1

This is so fun :) Love the short levels - having really hard challenges, but in 10 second bursts is a great flow! I got about half-way, will have to come back to it when I've got some time to really focus and smash my way through the rest

P#132219 2023-07-21 23:05
1

Tip: use p2 to run into ships to crash them

P#138046 2023-11-30 15:54

Nice! I was wondering if anyone would do that 😉

P#138048 2023-11-30 17:38

[Please log in to post a comment]