Post Reply 
JPL Prime: An ASCII Space Game.
02-21-2019, 12:43 AM (This post was last modified: 02-27-2019 12:06 AM by TheLastMillennial.)
Post: #1
JPL Prime: An ASCII Space Game.
Since I'm new to the Prime Programming Language, for my first project I decided to port one of my own programs that I made for the TI 84 Plus CE, JPL. JPL game was actually the very first game I ever programmed on a calculator; it was a much simpler version though, not nearly as complex as the current version which placed third in the 2017 Cemetech Program of the Year!
Anyways, this game consists of a preset rocket sprite and the goal is to go through as many checkpoints as possible. The longer you survive, the more points you get.

It's an early version, but here's what I have so far (I apologize for the low GIF frame rate):
[Image: 4Pce1UM.gif]
P.S. What's the best way to take GIF captures? I saw a screen capture option but it only took stills.

Here's a Github repository!

Todo list:
Make background black
Make 'stars' to make it seem like you're traveling through space
Make checkpoints gradually speed up


Make better graphics
Add touchscreen support (possibly drag support)

Cemetech | YouTube
Visit this user's website Find all posts by this user
Quote this message in a reply
02-21-2019, 05:15 AM
Post: #2
RE: JPL Prime: An ASCII Space Game.
(02-21-2019 12:43 AM)TheLastMillennial Wrote:  P.S. What's the best way to take GIF captures? I saw a screen capture option but it only took stills.

https://www.screentogif.com/ is what I use.

Prime G2, 15C CE
Find all posts by this user
Quote this message in a reply
02-21-2019, 09:55 AM
Post: #3
RE: JPL Prime: An ASCII Space Game.
What's wrong with a video capture uploaded to YouTube and linked to here?
Find all posts by this user
Quote this message in a reply
02-21-2019, 11:17 AM
Post: #4
RE: JPL Prime: An ASCII Space Game.
Yes, youtube for everything. :-) It is not enough using youtube for audio uploading, I even saw uploaded text documents.

Sometimes less is more, and animated gif is perfectly suitable for simple task like short screen capture is.

Prime G2, 15C CE
Find all posts by this user
Quote this message in a reply
02-21-2019, 11:20 AM
Post: #5
RE: JPL Prime: An ASCII Space Game.
(02-21-2019 05:15 AM)chromos Wrote:  https://www.screentogif.com/ is what I use.

It is very good, it creates them in good quality and light :o

Viga C | TD | FB
Visit this user's website Find all posts by this user
Quote this message in a reply
02-23-2019, 02:01 AM (This post was last modified: 02-23-2019 05:03 AM by TheLastMillennial.)
Post: #6
RE: JPL Prime: An ASCII Space Game.
Thanks for that software, it's working very nicely!

I'm making good progress, I've added a scrolling background to emulate stars. (I haven't made them not clip through the rocket yet though). I also added a 'boost' that makes your rocket move twice as fast it uses a new entity called OMS which runs out pretty quick. The amount of OMS that's used during a boost session increases as your score increases. Here's a new GIF! (The emulator is running much faster than the calculator does, it's also overlapping the score and OMS which doesn't happen on-calc)
[Image: iOmZeNO.gif]
I've updated the Github repository with this new version.

Cemetech | YouTube
Visit this user's website Find all posts by this user
Quote this message in a reply
02-23-2019, 07:48 PM
Post: #7
RE: JPL Prime: An ASCII Space Game.
(02-23-2019 02:01 AM)TheLastMillennial Wrote:  (I haven't made them not clip through the rocket yet though)

I've found that doing good collision detection is hard because GETPIX is really slow, like 1.5ms on a standard Prime (3X faster on a G2, which is nice).

I suppose experienced game designers have techniques to do it better with less brute force pixel searching.

I wonder if the design team has any secret recipes for reading the pixels more quickly. It would probably involve a lot of arcane low level stuff.
Find all posts by this user
Quote this message in a reply
02-23-2019, 08:19 PM (This post was last modified: 02-23-2019 08:19 PM by pier4r.)
Post: #8
RE: JPL Prime: An ASCII Space Game.
Well done. I hope you will continue to contribute.

Did you do it with the prime keyboard or with the virtual calculator on the desktop?

Wikis are great, Contribute :)
Find all posts by this user
Quote this message in a reply
02-23-2019, 08:37 PM (This post was last modified: 02-24-2019 03:58 AM by TheLastMillennial.)
Post: #9
RE: JPL Prime: An ASCII Space Game.
antidote, instead of using getpix, I was thinking of checking the coordinates of each star, and if the star is going to be withing the coordinates of the rocket, then I won't draw the star. Although getpix might be useful for a future project I'm thinking of porting...

Thanks pier4r! So I've been using the HP Connect IDE (I haven't figured out how to get notepad++ working with PPL) then I've just been sending the file to my physical Prime and testing it on there. When I need to record something, I use the emulator.

EDIT: I've made some more progress! I've added star-rocket clip detection
so the stars wont clip through the rocket. I've added gradual checkpoint speed up code so it gets faster over time. I've replaced my Wait 10 command with TICK time detection (thanks to Luxen for the suggestion) so hopefully that will help future proof my game if I decide to add more intensive stuff. I've also refined the rocket hit block so it's more accurate to the actual bounds.
Here's a GIF! (This emulator is sooo wonky, the speed is weird (how do I slow it down?) and it's randomly moving the rocket to the far left)
[Image: LxACVp8.gif]

A few questions:
Is there a better way to send .hpprgm files to the emulator other than editing the source code and copy/pasting it into the emulator program editor? EDIT: I just figured out that the HP Connectivity software recognizes the emulator as a physical calculator! Never in my wildest dreams did I expect that, kudos to whoever made that possible!
Also, is there a way to run programs by tapping on them rather than needing to scroll down with the d-pad and tapping 'run'? Or is there a way I can immediately run the program I just sent to the calculator?

Cemetech | YouTube
Visit this user's website Find all posts by this user
Quote this message in a reply
02-24-2019, 06:44 AM
Post: #10
RE: JPL Prime: An ASCII Space Game.
Two thoughts come to mind.

1. You might want to replace your ship with a grapical object. That way it can have transparency directly around the edges, with black in the middle. No work to clip.

2. You can change it to an app about now if interested. That let's you have files like png directly. Also though, make an "empty" app, give it a Plot( ) function and then you can run it by just hitting the plot button.

TW

Although I work for HP, the views and opinions I post here are my own.
Find all posts by this user
Quote this message in a reply
02-26-2019, 11:55 PM
Post: #11
RE: JPL Prime: An ASCII Space Game.
Thanks for the suggestions! I think I'll work on replacing the ship soon. How do I go about making my program an app? I'm not sure I will do that (I don't want to clutter up my apps screen too much) but it'd be nice to know. Smile

I made some more progress, I changed the speed increase (It's not too noticeable on-calc, but the emulator goes crazy) so the checkpoints accelerate the more score you rack up. I also added a cool explosion when you fail!
[Image: TFZQ5Ao.gif]

Cemetech | YouTube
Visit this user's website Find all posts by this user
Quote this message in a reply
02-27-2019, 03:44 AM
Post: #12
RE: JPL Prime: An ASCII Space Game.
Quote:How do I go about making my program an app?

APPS key -- < Pick any App > -- [Save]
- Enter a name for your app
- Make sure to choose "None" as your base app

Now open Connectivity Kit, expand the Application Library and locate your app. Double-click will open the contents of your app. Under the program tab is your code, with a number of handy key assignment helpers already pre-inserted (just need to un-comment).

Now to get your program converted over, here is a quite simple example that you'll probably get the hang of pretty quick:
Code:
#pragma mode( separator(.,;) integer(h32) )

// list names of sub-routines at the top
RunMyApp();
MySubRoutine();

// declare global variables
MyGlobalVar:=1,OtherVar;

// what happens when the APP Start button is pressed
START()
BEGIN
  MySubRoutine(99);
END;

// define the Symb key
Symb()
BEGIN
  RunMyApp();
END;

// your program code
RunMyApp()
BEGIN
  OtherVar:=MyGlobalVar+1;
  MySubRoutine(OtherVar);
END;

MySubRoutine(mynum)
BEGIN
  RECT_P();
  TEXTOUT_P("Number is "+STRING(mynum),G0,5,5);
  TEXTOUT_P("Any key to continue ...",G0,5,25);
  WAIT(-1);
END;
Visit this user's website Find all posts by this user
Quote this message in a reply
02-27-2019, 07:15 AM
Post: #13
RE: JPL Prime: An ASCII Space Game.
(02-27-2019 03:44 AM)Jacob Wall Wrote:  
Quote:How do I go about making my program an app?

APPS key -- < Pick any App > -- [Save]
- Enter a name for your app
- Make sure to choose "None" as your base app

Now open Connectivity Kit, expand the Application Library and locate your app. Double-click will open the contents of your app. Under the program tab is your code, with a number of handy key assignment helpers already pre-inserted (just need to un-comment).

Now to get your program converted over, here is a quite simple example that you'll probably get the hang of pretty quick:
Code:
#pragma mode( separator(.,;) integer(h32) )

// list names of sub-routines at the top
RunMyApp();
MySubRoutine();

// declare global variables
MyGlobalVar:=1,OtherVar;

// what happens when the APP Start button is pressed
START()
BEGIN
  MySubRoutine(99);
END;

// define the Symb key
Symb()
BEGIN
  RunMyApp();
END;

// your program code
RunMyApp()
BEGIN
  OtherVar:=MyGlobalVar+1;
  MySubRoutine(OtherVar);
END;

MySubRoutine(mynum)
BEGIN
  RECT_P();
  TEXTOUT_P("Number is "+STRING(mynum),G0,5,5);
  TEXTOUT_P("Any key to continue ...",G0,5,25);
  WAIT(-1);
END;

Is there a way to save these kind of advices somewhere in this forum as documents?
Find all posts by this user
Quote this message in a reply
02-27-2019, 01:41 PM
Post: #14
RE: JPL Prime: An ASCII Space Game.
(02-27-2019 07:15 AM)CyberAngel Wrote:  Is there a way to save these kind of advices somewhere in this forum as documents?

Well, this is right near the top of the page. Smile

It would be nice to see this description expanded into a mini-article for the aid of less experienced users.
Find all posts by this user
Quote this message in a reply
02-27-2019, 07:10 PM
Post: #15
RE: JPL Prime: An ASCII Space Game.
(02-27-2019 01:41 PM)John Keith Wrote:  
(02-27-2019 07:15 AM)CyberAngel Wrote:  Is there a way to save these kind of advices somewhere in this forum as documents?

Well, this is right near the top of the page. Smile

It would be nice to see this description expanded into a mini-article for the aid of less experienced users.

That's what I meant. Now zzzzz.....
Find all posts by this user
Quote this message in a reply
02-27-2019, 07:22 PM
Post: #16
RE: JPL Prime: An ASCII Space Game.
(02-27-2019 01:41 PM)John Keith Wrote:  It would be nice to see this description expanded into a mini-article for the aid of less experienced users.

See the Tutorial #12 in the HP Prime Programming Tutorial by Edward Shore.
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 2 Guest(s)