Log In  


Cart #timepilot-0 | 2022-12-26 | Code ▽ | Embed ▽ | No License
36

Time Pilot Demake

I demaked the classic arcade game Time Pilot(1982 Konami).
Worked hard on the original game to work well on PICO-8.
But... Stage 4, 5 were made different from the original due to lack of tokens.

Game Play

If you want to play in CRT mode?

https://seimon.github.io/time-pilot/

36


1

Can I say you have the scrolling of the sky and the rotation of it absolutely perfect with the original game, @mooon. I used to binge play this game every day at the arcade.

Very nicely done ! Gold star to hang with your other flying medals. :)


@dw817 Thank you for your great compliment! >_<


1

Very well done! Nice transitions effects.

May need to tune a bit difficulty as the original screen size makes the encounters more predictable (but fine with difficult games!).

Note: you have many tokens you can reclaim if you wish to extend the game:

  • remove debug functions (log...)
  • clamp already exists (called "mid" on pico)
  • value initialization could be factored using something like:
function reset(obj,params)
 for i=1,params,2 do
  obj[params[i]]=params[i+1]
 end
end
-- example use:
reset(self,split"x,0,y,0")

There is a also a (minor) hidden bug in score calculation:
score+=300/10000 is not going to produce an exact number.

Pico has a tostr(x,2) function that will treat the value as a 32bits number, exactly made for that use case.

You could change add_score to that variant:

function add_score(num)
    -- shift num to use all 32bits
    -- can remove the 10000 limit (or put a much bigger 32bits limit if needed)
    gg.score+=num>>16
    -- bonus
    if gg.bonus_earned<=0 then
        -- > 10000?
        if gg.score>=0x0.03e8 then
            gg.bonus_earned=1
            gg.planes+=1
            add(_space_f.particles,{type="bonus",is_first=true,age=1,age_max=120})
        end
    elseif gg.score\0x0.c350+1>gg.bonus_earned then
        -- 0x0.c350 is 50000>>16
        gg.bonus_earned=gg.score\0x0.c350+1
        gg.planes+=1
        add(_space_f.particles,{type="bonus",age=1,age_max=120})
    end
end
...
function print_score(num,len,x,y)
 -- use full 32 bits value
 -- ex: 0x0.e7d6 will produce "59350"
 local t=tostr(num,2)
 ...
end

@freds72 WOW! Thank you for your detailed advice!
I will apply the contents you told me.


1

This is a wonderful little game; it moves a bit too fast for me personally, but I suspect it feels just like the original arcade game. The special effects, graphics, and sound are all exactly like I imagine they should be! Well done.


@binarycrusader Thank you for recognizing the part that I worked hard on!


There are not over the top Arcade converions on RP8, but this one i one of them, a real Blast ! Thank you very much, you managed to capture and improve the soul of the original game. Hopefully someday you will also port Time Pilot 84, which is as good as its prequel :)


Awesome. The music and sounds are awesome. The dying animation is amazing. Lots of great little details. A little hard to control with arrow keys. Seems like a joystick is necessary.


@nounours Thank you for the compliment! Time Pilot 84 also looks good for porting. (The structure of the game looks almost the same)


@UnitVector I tried to lower difficulty, but it wasn't enough... But thank you for enjoying!


@mooon, how did you figure out how the game is structured ? I guess you do not have access to the source code of the game which in anyway might only be in assembly. How did you figure out how the ennemy behaves and so on ? Still super impressive stuff :)


1

@nounours I repeatedly watched YouTube videos to make them look similar. So the enemy's behavior is not exactly the same as the original. ^^;;


1

Really good demake of the original, quite difficult and the controls feel wonky but its hard to replicate joystick movement in Pico8, all in all really enjoyable.



[Please log in to post a comment]