Log In  

Cart #pvader-2 | 2023-02-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

(v02 02-22-23)
TO LOAD THIS PICO-8 CART, in immediate mode, type: load #pvader



  • The player now appears in the middle after you lose a tank, just like when you start the game.

  • Because of the incredibly high scores, I have tweaked the speed of the invader slightly to be faster over time.

  • Also because of the high scores I am seeing, I am setting it so the flying saucer makes one pass. Once it goes off the edge of the screen to the left, it will not reappear until you make another +100 score. So now it's vital you shoot it when it appears. If you somehow miss it, it will appear again once you get your score +100 again.

  • I added a new fire-element, filled oval which you can see when you shoot the flying saucer. So the elements are now:
  (Add Fire Element)  
  function addfireelem(Element,x1,y1,(x2/Radius),y2)

  0 = Dot       (x1,y1)
  1 = Line      (x1,y1,x2,y2)
  2 = Rectangle (x1,y1,x2,y2)
  3 = Circle    (x1,y1,Radius)
  4 = Oval      (x1,y1,x2,y2)

  Call function fireball() when ready.
  • There is about a second or so delay when the game ends so you do not suddenly return to the menu without having had a chance to see your final score.


It was believed a cart I wrote years ago to turn every pixel on the screen into a flammable point could not be used to develop a game. To see that original cart, go HERE:


The Arcade Stars comes from HERE:


Well, that is what this is. I started to write this on 02-16-23 and finished 02-22-23. Proof that a game can in fact be developed using my method which scrolls stars on the screen, independently controls and draws sprites, and ignites every marked pixel on the screen. To do so I am taking advantage of extended memory and page-swapping really 3-pages altogether.

The first layer is the stars. The next is the game screen where the sprites are drawn. And the third is the screen where marked pixels combust - all operating independently of each other.

This code is proof that all 3 can be combined. It is also highly documented throughout as you can see above.

The original game is based upon an old Intellivision cartridge called "K-Vader" and the premise is the same except I don't think it uses the same scoring methods. I wanted to write my own and try to make it more challenging besides.

okay so the scoring method I chose is the following:

First off there are =2= different targets, the space invader and the flying saucer.


The saucer will not appear except once every 100 points. so when the saucer appears it will appear so long as your score is at or over 100 points.

Every time you shoot the flying saucer you get a free tank but NO CHANGE to your score. This is not so easy to do on more difficult levels as you may be overrun by the invader while attempting to shoot the slow-moving saucer, and it never changes in speed which can be an advantage to begin with and a challenge to hit it later on.

Once you shoot it though, the next score target is 100+ that so it would be 200-points, and so on.

The invader itself starts out moving slowly enough you can peg it with your laser cannon, however every time you shoot it, a new one appears at the top and travels even faster.

The scoring is simple. shoot the invader and get 10 points plus your current level. Once your score is added, then the level increases by one - also increasing the speed of the invader.

For every time the invader descends, you =lose= 1 point.

The invader level starts out as zero and goes up one point each time you successfully shoot and destroy the invader.

You start with one tank and two spare ones. A total of three.

And yes this is the only attack the invader has, is to overrun your tank.

If you are overrun, however, you will lose one of your tanks in stock and the invader will be stepped down 2-levels of speed to compensate.

Seizure warning: Be aware there is .5 seconds of flashing red when you lost a tank.

If you do lose all your stock of tanks including the one you are navigating, it is game over.
Press πŸ…ΎοΈ to restart the game which will recall your high-score.

Your score is recorded using the cartdata() method so even if you shut this game down and come back to it later, it will always remember your best score listed as hi-score.

To erase your hi-score, at the main menu hold down the ❎ key until the red-line crosses entirely from the left to the right. then your hi-score will have been reset to zero.

UPDATED: 02-24-23


There are many methods to racking up a high score in this game.
If you wait for the invader to drop down to the level of your tank, while in early missions it is not so difficult to shoot your target, in later it is. And you are penalized 1-point of your score every time you allow the invader to descend a row, and that might make it difficult for you to get the saucer which only appears when your score has reached 100, 200, 300, etc. points.
Try to get in the habit of shooting the first run of invaders before they can descend at all. And if they do, develop a pattern for catching them on the next row. Nothing is more frustrating than firing and missing every time. Practice practice makes perfect.
One method is to get on the far left or right side and then you have more time to shoot the invader as you will have twice the chance to hit it as it crosses from the left into your sights and then the right - and vice-versa.
As for the flying saucer, once it appears it is vital you shoot it. Give it top priority. But also be careful. Look around at your position. Are you going to be overrun in the next second ? Then ignore it and focus on shooting down the invader.
Only shoot the flying saucer when you know you have plenty of time - because it takes time for your shot to leave your tank and travel all the way to the top, and if you miss, you wasted that much time and you could lose the bonus tank by not hitting the saucer.
However if you have no tanks in spare and you are about to be overrun, you have to make a critical decision, can you shoot the saucer in time to gain a bonus tank or should you ignore it and try to hit the fast-moving invader instead ?
It's up to you to develop your own techniques as for getting a high score - and then challenge yourself to beat that !

My best score is 523. Can you top that ?

Good luck !

As always if you like what I did here, you found a bug, have some suggestions to make the game more challenging, or have any questions about the two primary functions I provided here to use in your own code, please let me know !

If you post your score, please post a video showing how you got this. To do so, load the game in purchased Pico-8 to execute in offline mode. Run it. Press F8 to start to record video. Play the game. When your score is high enough, press F9 to end the recording of the video. Post your score and video here for all to see. Upload video (*.gif) as picture in your post, and there you have it. :)


P#126167 2023-02-22 20:14 ( Edited 2023-02-24 19:06)


I got 2334 with some good luck and burning through extra lives πŸ˜… Gold star'd!

P#126182 2023-02-22 21:42

2334 !?

Wholly smokes, @Verb ! Here I thought I had a great score with 400 where it's impossible for me to track the invader and yet you ...

I would LOVE you to record and post that video here with F8 and F9 starting at the 1st level ! Just how fast is that invader going at that point level ??

Incredible ! Well, you get my star right here and now in your post for such an almighty score.

Very well done !

Thanks too for the cart star. I'm thinking maybe I made this post too technical as well, so I may separate it into two different posts.

One to detail the code itself and how to make use of the 2 functions I wrote for others.

And two just for the game itself to list tips and techniques and to see who can beat what score.

Again. Nicely done !

P#126183 2023-02-22 21:52 ( Edited 2023-02-23 01:03)

i think this is high??

P#126223 2023-02-24 04:12

OK you kids are out of control, @mar21001. :D

Not tonight, tomorrow maybe I'll post an updated version. If you lose a life, you do not reappear where you left your tank, but the middle as your first player appears to start.

Let's see if that doesn't curb some of the incredible scoring I've been seeing. Wow.

You must all have the skills of a hawk is all I can say ...

Well done !

I still would like to see someone post a proof video from the beginning with a zero score with F8 and F9.

P#126227 2023-02-24 06:00

Great game @dw817 - another example of a simple concept making an entertaining game.

I can't even get to 400 let alone these insane scores in the thousands.

However I am glad that the "crab" invader always wins in the end...

P#126230 2023-02-24 09:26

Hi Phil:

Thank you ! I'm glad you like the game.

And you certainly made my day. I knew I wasn't the only one that was having difficulty getting a high-score for this game. And I wrote the fool thing. :)

Yes, there is no winning level ... I'm wondering if there should be. For these hot-shots it could be reaching a score of 5000 or so.

I will have to give it some thought. In any case today I will post my update to it - very minor changes, some of them, but I think will help overall and add to make it more challenging.

P#126241 2023-02-24 16:45 ( Edited 2023-02-24 17:52)

[Please log in to post a comment]