This game was originally made for my CC20 entry, but I entered it too late to be accepted for the contest. However, it has since won the December POTM and placed third in the 2017 POTY!


About the game (V.3):
In short, JPL is a game where you build your own craft, then fly it through checkpoints. But it also has a few cool features such as the ability for this program to run natively every TI 84 and TI 83+. Like the craft you made? Another feature JPL has is save and load capabilities! Save up to 30 crafts and share them among all TI 84 and TI 83+ calculators!

Updates:
In version 3 I've completely redone my save system so instead of being limited to just 3 saves, you are limited by the amount of list elements on the calculator and you get custom names for your crafts! This will also eliminate over 15 lists! Very Happy
However, easy craft sharing compatibility is not implemented in the first release of version 3. (crafts will still be compatible, but you wont be able to pick an choose which craft to share)
I've also fix the bug _iPhoenix_ reported where the crafts hit-blocks weren't the correct size.
I may increase the speed of how quickly the checkpoints fall

Update progress: 100%
Finished! Very Happy

Download JPL3 For Color and Monochrome calculators!
Cool! Looks great so far! I have an idea, too! Smile
You should add a leveling system, and make it so the farther you go, the harder it gets. You could make it so when you level up. You unlock new parts and game modes! Last feature: Main Menu with Title,
Store, Options, Credits, and Exit. When you play the game, you could make it so you earn points to spend on parts and power-ups in the shop. When you're done, you could make it into an assembly program using ICE, then add a custom icon for Cesium. Graphing Calculator

P.S.
I know this is a lot, but I think I could help give some update ideas. I'd be glad to help test for bugs and such, too!
you could add little things you can't touch, and you have to shoot, and you could be able to buy new weapons.
john35588 wrote:
you could add little things you can't touch, and you have to shoot, and you could be able to buy new weapons.

Another good idea! Very Happy
Whoa, I wasn't expecting any post after this long! Laughing

NoaxPrime wrote:
You should add a leveling system, and make it so the farther you go, the harder it gets. You could make it so when you level up. You unlock new parts and game modes!
I was thinking about this, I like the idea and I'll try to add a version of this in JPL4! However I'm not sure what parts people would want to unlock since I'm only using ASCII characters. New game modes would be cool, what would you like to see?

NoaxPrime wrote:
Last feature: Main Menu with Title,
Store, Options, Credits, and Exit. When you play the game, you could make it so you earn points to spend on parts and power-ups in the shop.
Yeah, I need a better title screen. Rolling Eyes I'll see what I can whip i
john35588 wrote:
inking about , but like before, I'm just not sure what parts or power-ups I could use. The only 2 I can think of is: extra life, and slowing down the checkpoints.

[quote="john35588"]you could add little things you can't touch, and you have to shoot, and you could be able to buy new weapons.
I could make this happen in a different game mode. Smile

NoaxPrime wrote:
When you're done, you could make it into an assembly program using ICE,
Ehh, I'd actually have to learn ICE first Razz

NoaxPrime wrote:
then add a custom icon for Cesium.
Wait, don't I already have an icon for it? Confused

NoaxPrime wrote:
I'd be glad to help test for bugs and such, too!

I'm close to releasing a public Beta release soon! Very Happy

I like most of these ideas! I'll implement them the best I can! Smile
TheLastMillennial wrote:
NoaxPrime wrote:
You should add a leveling system, and make it so the farther you go, the harder it gets. You could make it so when you level up. You unlock new parts and game modes!
I was thinking about this, I like the idea and I'll try to add a version of this in JPL4! However I'm not sure what parts people would want to unlock since I'm only using ASCII characters. New game modes would be cool, what would you like to see?


For the Main Menu:
A training mode would be a good one, you could make the game a lot slower than before but keep the ship the same speed as Normal Mode.

For the "Play Game" Menu:
I think the first main one should be a Challenge Mode, where the game moves faster and more objects spawn. The second main one could be an Obstacle Mode, where it has extra objects like challenge mode but is not sped-up. The third main one could be a Sped-Up mode, where it's sped-up, but has no extra obstacles. The final main one for the update could be a Combat Mode, where you have to use either [2nd] or [enter] to shoot enemies using weapons that you put on the ship like
john35588 suggested, you decide! Very Happy
Some ideas for optimization: Use tokens instead of writing out the entire word: I don't think I saw that anywhere, also, replace "Quit" with "End" (the token)
To reduce size, make the comments uppercase, maybe to increase speed, do this:

Code:
While 0
"COMMENT 1
"COMMENT 2
End

Code 1
Code 2


**Boolean logic, 0=false, so the comments are skipped over

Also, when using SetUpEditor, do this:

Code:
SetUpEditor TEST,TEST1,TEST2 ...

instead of

Code:
SetUpEditor ʟTEST,ʟTEST1,ʟTEST2 ...

(leave off the "ʟ" symbol in front of the list names)
I know, that trick with the comment, but it's pointless since I remove all the comments with the final release Wink

Huh, I didn't know I could leave out the ʟ! Thanks Smile

TLM wrote:
I'm close to releasing a public Beta release soon!

Maybe I should clarify that by *soon* I mean "whenever I stop dying from school" :\
It's been way too long. I've been busy with other projects and kind of just put this to the side.
I'm not dying quite so much from school so I can work on this a little bit more. The problem is, I don't really remember what was wrong with my code. I remember something about possible save corruption and the monochrome game-play ship/ checkpoint collision detection was wrong. But to make sure I catch all the bugs and issues, I'm going to release that beta I promised... 5 months ago?

Anyways, here it is! https://1drv.ms/u/s!Al_ZukYl7XyykF2AX8C75TavDg9d the first beta for JPL v.3!

Please let me know of any bugs (random pause commands that display numbers that make no sense don't count Razz) or gold mines you discover. Suggestions are very much welcome as well!
Note: the game will be a little bit slower than the final release because I kept all the comments. (This was made before I started using SC)
Instead of UnArchive on lists, use SetUpEditor, it'll also UnArchive, and it's smaller bc you can do SetUpEditor L1,L2 instead of UnArchive L1:UnArchive L2
TheLastMillennial wrote:
It's been way too long.


Yeah, WAAAAAY to long. Razz

TheLastMillennial wrote:
I've been busy with other projects and kind of just put this to the side.


Well, I can understand that. Smile We are in the same grade, after all. You taking state tests yet?
Wahoo! JPL won the December POTM! Very Happy
I'm super happy that even though I wasn't able to enter it into the CC20 competition, all my effort wasn't all to waste. I don't believe I'll be winning the 2017 POTY, but if I even get one vote for it I'll be ecstatic. Smile

I'd love to get my update out as soon as I can but there's still a lot to fix before it's release ready.
Bugs:

  • Save corruption bug. (possibly occurs when I try to save a craft with the same name as an existing craft?) EDIT: hopefully fixed, it hasn't been bothering me since I fixed it. I wasn't clearing a list from when I had launched the craft, so it was adding the loaded craft to the end of the name list!
  • Detect crafts with the same name. For some reason inString(Str1,Str2) (where Str1 is entire craft name list and Str2 is the name of the craft being saved) is failing me. Perhaps I have the Str's backwards? Turns out the contents of Str2 were reversed. I dunno why, so I just implemented some code to reverse it. Needs more testing.
  • Load list side scrolling. Need to detect if there isn't another page, right now it's just giving a domain error. I thought I had code for this, I'll have to look at what's broken if it's there.Looks like I was using a = when I should've been using a < Laughing Needs more testing to be sure.
    With new fixes comes new bugs Sad
  • Delete feature not deleting crafts. I have the code, it's just not working for some reason... Sketchy code wasn't working. Replaced it with sketchier code. Seems to be working so far, stand by.


Lots to fix but I've been given a push to complete this now that it has won a POTM!
TheLastMillennial wrote:
Wahoo! JPL won the December POTM! Very Happy


Awesome! Very Happy Glad you won!
So everything was going perfectly, until it all fell apart. I found out it's impossible for SC to keep a \. I also found out that it's not going to be fixed anytime soon. Then SC broke my .8xp file so I can't open it in TI Connect. Since I can't do that, I can't change all my replacement characters to \ . So whenever I want to release an update I have to send the file to my CE and manually convert every character back to a \ !
Then guess what? I accidentally closed the wrong SC tab and lost all my code I wrote within the past week. Thank my good practice of backing up my code to another source every so often so I can recover when things like this happen. But wait there's more! NONE of my comments are there! I will never know again what some sections of my code do or how they work!
This is absolutely unacceptable all my comments and code got lost with two clicks. There needs to be a 'recently deleted' folder like tons of applications are implementing now. I know there are ways I could've prevent this like copy and pasting my SC code into a text document so all my comments were there, but this not ideal.
I'm obviously quite upset right now, if I somehow blatantly overlooked something or made someone feel bad I'm sorry. I'll be taking a break until I cool down. Crying
OK so I had my tantrum and things aren't as awful as I thought. All my recent comments are gone but I can get old ones from the time I was using TI Connect to program this and used strings for my comments. I'll be working on any last bugs and releasing it probably tomorrow or the day after. Smile

Right now my hold up is my delete feature. It keeps deleting the craft directly after the one you selected. It's also not overwriting ships when you save them with the same name. It keeps saving both...

Apparently that sketchier code didn't quite work Razz

EDIT: Made minimal progress on this today. Not even worth making a new post about it. Turns out my backup wasn't as updated as I thought it was. You can imagine my relief when I found a very recent version on my physical CE. Very Happy
So today I made the process for me manually inputting the \ on calc easier. I stored the most used strings that needed it up at the top into Str vars I wasn't using.
I'll be working on that delete bug. I've changed the release date to before the end of the week to give me time to work on it. If I can't get it fixed for whatever reason by that time I'll just disable deleting and release the program. It's all ready except for that delete code routine...
I made a little bit of progress today. I fixed my deletion code, I made a typo and had just put down a 2 when it should've been a 1. Rolling Eyes
I also found some strange, unnecessary code in my save and load routines. I commented it out and now saving and loading is almost 1000x faster! I dunno what that code was originally there for (since all my comments were lost) but things seem to be working without it.

My holdup now is just my overwrite code for when you try to save a craft with the same name as an existing one. I may end up getting rid of it all together since my program isn't really effected at all by duplicate names. Or I could just force you to rename your craft. What do you guys think?

I see a light at the end of the tunnel! Idea
I hope it's not a train.
It could be Kerm in his train coming to run you down... Razz

***SM84CE runs
It's finished!
I'm so happy.
Post any bugs or suggestions you find here.
I'm gunna take a break.
So, I know, the monochrome version is slow. Especially the building section. I've tried my best but it's still not an acceptable speed. If anyone has the time I would really appreciate if some fresh eyes could pick out any obvious, or really obscure optimizations this section of code could have. I commented as best I could and tried to make it humorous in a few places. Like, 2 places Razz

I also closed some quotes so the syntax highlighting would exist.

EDIT: Ok, so I guess I hadn't tried my best, I just made the code much faster! Instead of redrawing the entire ship, I just redrew the place where the cursor had been. The speed is now at an acceptable level, however I'm sure there are a few more optimizations people can pick out and I'll still credit anyone who can improve my new code.

Code:

//this label is for the monochrome build code.
Lbl B5
ClrHome
//this sets Z to that number. This is used in another section of my program so it knows where to return. (Ignore it for this section of code)
e^([i])->Z
//this stores " plotsquareinvertedequal^/|Delta" to Str0. This is used for displaying the part you currently have selected
Str8->Str0
//This draws the parts to the right side of the screen
For(Y,1,E
   Output(Y,16,sub(Str7,Y,1
End
// this outputs the coordinates around the build area
For(X,1,5,1
   Output(1,X+6,X
End
For(Y,1,5,1
   Output(Y+1,6,Y
End
//arrow to show which part is selected
Output(T,15,"[|>]
//bottom of the screen options
Output(8,1,"Fil[|e]|      |bolduparrow| bolddownarrow
//makes sure X and Y are valid numbers
max(1,min(5,N->X
max(1,min(5,O->Y
//this repeats untill Clear, L, S, or y= is pressed (L and S are for short cuts to load and save respectively)
Repeat max(K={45,64,81,11
   
   //makes sure that the previous key entered doesn't mess up the next checkthrough
   0->K
   //If you don't know what this does, you shouldn't be trying to help me :P
   getKey->K
   //this checks if the arrow keys have been pressed
   If max(K={24,25,26,34
   Then
      //this displays the part (if any) that is already placed.
      Output(O+1,N+6,sub(Str0,[B](N,O),1
      //this checks if left or right keys have been pushed and updates N accordingly. N will dec if left is pressed. N will inc if right is pressed.
      N->X
      O->Y
      max(1,min(5,N+sum(DeltaList(K={24,26->N
      //this checks if up or down keys have been pushed and updates O accordingly. O will dec if down is pressed. O will inc if up is pressed.
      max(1,min(5,O+sum(DeltaList(K={25,34->O
      
   End
   //outputs the selected part on the right side of the screen to the current position
   Output(O+1,N+6,sub(Str0,T,1
   //checks if trace (up) or graph (down) are selected to adjust the part you've selected
   If max(K={14,15
   Then
      //outputs whitespace above/below arrow selector to clean up any arrow trails
      Output(T+(T!=10),15,"
      Output(T-(T!=1),15,"
      //this checks if up or down keys have been pushed and updates T accordingly. T will dec if graph (down) is pressed. T will inc if trace (up) is pressed.
      max(1,min(E,T+sum(DeltaList(K={14,15->T
      //updates selector arrow position
      Output(T,15,"[|>]
      Output(T+(T!=7),15,"
      Output(T-(T!=1),15," "
   End
   //reoutputs the part where your cursor just went to and just left
   Output(O+1,N+6,sub(Str0,[B](O,N),1
   Output(Y+1,X+6,sub(Str0,[B](Y,X),1
   //checks if you pressed enter or 2nd places the part in the matrix where the craft is stored ([B])
   If K=105 or K=21
   Then
      //stores the part you have selected (T) to the position your cursor is (O,N).
      T->[B](O,N)
      //converts the matrix into 5 lists for saving I belive. Can this be moved outside this loop?
      Matr>list([B],|LJPL\41,|LJPL\42,|LJPL\43,|LJPL\44,|LJPL\45
   End
   
   //checks if del was pressed. Deletes the part where your cursor is. (Well replaces it with a white space but that's pretty much deleting here. :P )
   If K=23
      1->T
   
End

If you need it, the whole source code is here. This particular section starts at line 367.

If anyone can help me, you've earned a spot in my readme, help me a lot and I'll put you in the description of the program! Very Happy

I also found a bug where my program will only work in radian mode. I'll be fixing that shortly. Rolling Eyes
I've pushed the update to the Archives!
It includes the optimized build system (it's now 3 times faster!) and fixes the Radians bug. It will also set your calculator back into the original mode when you quit. I've also rearranged the screenshots so they look better in the Archives. Razz
I love lightning-quick PT_ so much. It's been accepted to the archives!

I hope you guys like it! Tell me what you'd like to see!

750th post I think
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement