Ad Astra by ate bit [web]

---------/\--------------------------------------------------- - - --
        /  \ __/\____    __/\_____   ________  __/\_ __          
       /    \)      (___/   /    ( _/  _    (_/     / (____      
      /      \         /    ) /  /_)   )     /_  __/      /\       
     /       /\       /__  /   _/ /    _____/  \/_/      /__       
    /       /  \ \___/ _/  \  / _/   _    _/     )  \  _/ _/\      
   /       /    \      )    \/  )    )    )     /    \/   ) /       
  /       /      \____/________/_________/_____/_________/ /ne7   
-/       /        \___\ _______\_________\_____\_________\/------ - -
/_______/__________\--------------------------------  -- - ---- -- -
-------------------- a t e  b i t  p r e s e n t s -------------- - -

Ad Astra

A demo by Ate Bit for the Pico-8 virtual console. ( http://www.lexaloffle.com/pico-8.php )

Release date : 12/08/2016

Code & music : 4mat  
Graphics : ilkke  
Ascii logo (above): ne7

To run in realtime:

You have at least 4 options:

1) Run ad_astra.html in your browser. Should run in Firefox, Chrome etc.

2) Go to http://www.lexaloffle.com/pico-8.php and buy Pico-8 , then you can run the included cart version. (the ad_astra.p8.png file)

3) Go to my cart page on the pico-8 bbs http://www.lexaloffle.com/bbs/?uid=13891&mode=carts and run the on-line version in your browser.

4) Buy a PocketCHIP https://getchip.com/pages/pocketchip and you can watch it on a real hardware console.

And obviously anything else that runs Pico-8 can run this, please tell us if it can't.


A video of this is probably still on my youtube page:



Leave audio enabled, demo uses the STAT variables to maintain timing and scenes won't continue otherwise.

Due to the way I merged some _update and _draw code together the demo may go out of sync if you don't have the window focused.  This may 
only affect watching it in pico-8 rather than the web version however.

Dev notes:

The demo is script based, using an externally made compiler to build the new .p8 file and launch pico-8 each time.  Was good for fast iteration, 
but I soon realised it's not paticularly memory friendly on the target machine the way I've done it.  While the demo engine started out pretty 
generic (all fx can be used in scenes and are z-sorted by which order they've been added to a scene) towards the end I did start hardcoding 
things to squeeze it into memory.  These are all things I can avoid next time.

Amusingly this is the first software filled vector routine I've ever done, so it was fun looking up old rasterization tutorials from the '90s
and seeing how to do it.  Thanks to whoever left their old DOS tutorials up.  Yes it's a bit inaccurate (down to a last minute kludge for painting 
the polys) but eh.  In hindsight generalising the vector routine so everything is drawn off the same Z sort order would make more interesting 
scenes, maybe next time.

I ended up writing a few tools for this, probably the most useful is a PNG > MAP + GFX converter that meant ilkke could give me all the screens
in one .png each time and we'd have a full set of maps and gfx tiles that could be cut/pasted into the source file.  (I'm so glad the source files 
are text based)  Other tools I wrote were mostly mesh converters like a .OBJ mesh > vector array (using materials to set Pico-8 colours) and a 
MagicaVoxel > Vectorbob array one that didn't get used in the end.


Check us out online: http://atebit.org
Check ilkke's other work out online: https://ilkke.itch.io/
Check 4mat's music out online: http://4mat.bandcamp.com

-------------------------------------------------------------- - - --