<short version>
I made a cool new game that uses a less-common speed-based movement system, combined with a time crunch, to induce hilarity upon players. It features multiple difficulties (and highscore tables), two different movement schemes, and fast-paced gameplay.

Now go read the long version, even if parts of it don’t make sense to you!
<long, somewhat technical version>

I have been working on a new, fast-paced game! The concept isn't anything new: move around, collect tokens/points/coins/targets, in a race against the clock.
But this version has a major twist: I used an intuitive and easy to learn, yet very difficult to master movement system based off of speed, not just location. Instead of simply moving the character one ‘tile’ left, right, up, or down, I add to the speed in that direction. (the speed itself slowly decreases, too, until it becomes zero. I use that to simulate gravity, even though the gravity in-game is less like Earth, and more like the gravity on a planet with much less mass.)
This is really cool, because it means that a button press affects your movement even after you have released the button. This punishes trigger-happy people (like myself) and rewards people who think about the entire situation, then press the button(s). I’m trying to be objective here, but certain people in the media recently (namely Trump and certain North Korean leaders) need to learn from this game.
Combined, this leads to a runaway effect, where people stressed out about the time crunch press the button too many times, leading to them missing the target, which makes the time go down further. (and the cycle repeats, at least until they pause with [clear] and chill/think for a few minutes, slow down, or lose a life and restart the clock. But those victories are short lived.)
Due to the fact that this isn’t really a commonly used movement scheme (and people inherently aren’t used to it), I have several difficulties. Easy isn’t really meant to be a challenge, and experienced players can get indefinitely high scores (mine is 512, with three lives. It gets boring really fast with the lower difficulties and a relatively high skill level), rather, it’s a lesson for the people who aren’t used to the controls.
I have different highscore tables for each difficulty, because converting subjective difficulties to objective scores isn’t really my thing, and it gets messy. (I also have different control schemes, but that’s pretty self-explanatory)
I hate for this to be a side note, but I’m really happy with the speed I managed to get. Due to the fast-paced nature of the game, I don’t wait for user input, but check if there has been user input in the past frame. (it appears the getKey command retrieves keypresses received while other commands have been running. This may just be my imagination, but it certainly seems so)

Download Adventures of JETMAN!

Download Adventures of JETMAN 2!
Ok, so I put the code into SC to convert it into readable code, I clicked "check" and I got this back:
https://i.imgur.com/hfF32hD.png

I think somethings broken...

EDIT: As requested, I made the image a URL Smile
More like everything..., check for additional spaces after commands

Mine says that it can be exported properly, while TLM's gives an error on every line...
SM84CE wrote:
More like everything..., check for additional spaces after commands


That’s related to the [code] block (IIRC), so here’s (EDIT: Removed outdated share link) a share link.

Edit: I’d really appreciate feedback, especially optimizations/bugs/suggestions. I also need a screenshot for it (demonstrating all of the features, including that the controls screen changes with your settings, and a pair of rounds, (showing gameplay, including pausing with clear and screen wrapping) on different difficulties to show off the different highscore tables.) because I don’t currently have access to CEmu or equivalent.
Bug report:
when you click Controls on the main menu, there is a domain error. Clicking Goto takes me to line 35
The Options menu is backward, when I select "Arrow keys, it changes the controls to the num pad and vice versa
TheLastMillennial wrote:
Bug report:
when you click Controls on the main menu, there is a domain error. Clicking Goto takes me to line 35
The Options menu is backward, when I select "Arrow keys, it changes the controls to the num pad and vice versa


This is due to SC3 turning my all caps “LEFT AND RIGHT” into the tokens “LEFT” and “RIGHT”.

The sub( command, of course, doesn’t know this, so it cannot adjust.

My solution: change the command on the offending line to Text(15,1,”UPWARDS. USE THE “+sub(“LEFT AND RIGHT4 AND 6”,14Ans-13,7+7not(Ans-1)

Just replace the tokenized LEFT and RIGHT with the string “LEFT” and “RIGHT”, and it will work as intended. (Or change the numbers on the sub( command; It’ll be smaller. If this post is different tomorrow, it’s because I have no time today, and more time tomorrow for fixing bugs, and I’ll definitely change my program to accommodate SC3’s genius ‘error’)

Stupid SC3, it’s always all about tokenize and optimize!

Edit for admins: if you guys accept the file anyways and save me a TON of typing (I accidentally deleted my readme.txt file, so if it gets rejected, please send me a copy of the submission :/), I’ll upload a fixed version ASAP. (Within minutes, if it’s accepted when I’m online)
_iPhoenix_ wrote:
TheLastMillennial wrote:
Bug report:
when you click Controls on the main menu, there is a domain error. Clicking Goto takes me to line 35
The Options menu is backward, when I select "Arrow keys, it changes the controls to the num pad and vice versa


This is due to SC3 turning my all caps “LEFT AND RIGHT” into the tokens “LEFT” and “RIGHT”.

The sub( command, of course, doesn’t know this, so it cannot adjust.

My solution: change the command on the offending line to Text(15,1,”UPWARDS. USE THE “+sub(“LEFT AND RIGHT4 AND 6”,14Ans-13,7+7not(Ans-1)

Just replace the tokenized LEFT and RIGHT with the string “LEFT” and “RIGHT”, and it will work as intended. (Or change the numbers on the sub( command; It’ll be smaller. If this post is different tomorrow, it’s because I have no time today, and more time tomorrow for fixing bugs, and I’ll definitely change my program to accommodate SC3’s genius ‘error’)

Stupid SC3, it’s always all about tokenize and optimize!

Edit for admins: if you guys accept the file anyways and save me a TON of typing (I accidentally deleted my readme.txt file, so if it gets rejected, please send me a copy of the submission :/), I’ll upload a fixed version ASAP. (Within minutes, if it’s accepted when I’m online)

You should embrace the LEFT and RIGHT tokens by changing your sub(). You could save a few bytes by having the actual tokens in the string instead of the characters. On top of that, both will only be considered like one character, so you can simplify the rest of the sub because both left and right strings will have the same length
_iPhoenix_ wrote:
TheLastMillennial wrote:
Bug report:
when you click Controls on the main menu, there is a domain error. Clicking Goto takes me to line 35
The Options menu is backward, when I select "Arrow keys, it changes the controls to the num pad and vice versa


This is due to SC3 turning my all caps “LEFT AND RIGHT” into the tokens “LEFT” and “RIGHT”.
[...]
Stupid SC3, it’s always all about tokenize and optimize!


If you want to get around SC3 tokenizing things that you don't want it to, you can always add a backslash somewhere in there:


Code:
LE\FT
RI\GHT
mr womp womp wrote:
_iPhoenix_ wrote:
TheLastMillennial wrote:
Bug report:
when you click Controls on the main menu, there is a domain error. Clicking Goto takes me to line 35
The Options menu is backward, when I select "Arrow keys, it changes the controls to the num pad and vice versa


This is due to SC3 turning my all caps “LEFT AND RIGHT” into the tokens “LEFT” and “RIGHT”.

The sub( command, of course, doesn’t know this, so it cannot adjust.

My solution: change the command on the offending line to Text(15,1,”UPWARDS. USE THE “+sub(“LEFT AND RIGHT4 AND 6”,14Ans-13,7+7not(Ans-1)

Just replace the tokenized LEFT and RIGHT with the string “LEFT” and “RIGHT”, and it will work as intended. (Or change the numbers on the sub( command; It’ll be smaller. If this post is different tomorrow, it’s because I have no time today, and more time tomorrow for fixing bugs, and I’ll definitely change my program to accommodate SC3’s genius ‘error’)

Stupid SC3, it’s always all about tokenize and optimize!

Edit for admins: if you guys accept the file anyways and save me a TON of typing (I accidentally deleted my readme.txt file, so if it gets rejected, please send me a copy of the submission :/), I’ll upload a fixed version ASAP. (Within minutes, if it’s accepted when I’m online)

You should embrace the LEFT and RIGHT tokens by changing your sub(). You could save a few bytes by having the actual tokens in the string instead of the characters. On top of that, both will only be considered like one character, so you can simplify the rest of the sub because both left and right strings will have the same length


Yeah, I was going to do exactly that.

Looking at the size of the program, I think I might replace the “ AND “ with the and token. (I did, in the new version, along with several optimizations like that)

Thanks, jonbush, I actually didn’t know that! (though I was kidding when I called SC3 ‘stupid’)

I’m going to attempt to port it to mono (83+/84+), which is going to be all kinds of fun without a mono calc.

I’m currently on my way to class, so I’ll upload the new file soon.

Change log: changed the sub( command in the erroring line to work as intended.

(It will now work as-exported)
The file and my fix/update/optimizations have been accepted into the archives.Thanks, PT_ :)
Download Adventures of JETMAN! Yes, it's a link with both a color tag and a bold tag applied because why not.
I have decided to rename the current, arbitrarily chosen difficulty ratings to Beginner, Advanced, Intermediate, Expert, and Pro. It also lets me save a few (18) bytes in my program, because all of those names (besides Pro, but I can add a single space) are multiples of four (don't ask how, it's a long story)

What do you guys think of the name changes? Should I keep it, or change it? Do you have better names for the difficulty levels?
Beginner------NOOB
Advanced------APPRENTICE
Intermediate--??
Expert---------1335 //(almost there)
Pro-------------1337
SM84CE wrote:
Beginner------NOOB
Advanced------APPRENTICE
Intermediate--??
Expert---------1335 //(almost there)
Pro-------------1337


Ermm.... Maybe I could add "language settings" to the options, and have a 1337 5P33K option? (I'd have to come up with my own translations. Expect a "you lost the game" somewhere in there.)
Languages:
English
TI-BASIC
ASM
C
ICE
...
Up-and-coming features: (still very much WIP’s, but I can’t resist the urge to post about it)

- Renamed difficulty names (as aforementioned)
- Added two additional gameplay modes, (with their own highscore tables and movement methods. I can’t take complete credit for the new movement methods, it started with a “quid si” from a friend.)
- Smoothed out movement.
- Added a maximum x speed (currently 3 units/frame) and y speed (currently 4 units/frame)
- Slightly changed the way deceleration works.
- Redid the options menu.
- Added the ability to “go back” when choosing difficulty.
- Pause screen (accessed with [clear]) has been changed so that you can choose to exit round (doesn’t save). I am implementing the ability to change and view controls.
- Your speed can be displayed (optionally), as a debug feature.
- Believe it or not, even WITH these new features, the program is still less bytes that the version currently in the archives. (Which isn’t that much of an achievement, I was practically spewing out bad, slow, and large code in a mad rush to get that program ready) (edit: not true anymore)


Edit: Because the different game modes are slowing down the program, (we are now officially measuring seconds per frame instead of frames per second) I am considering scrapping one of the game modes, and making the other its own program.

The “other” game mode I’m referring to works as follows:

Instead of you being pulled towards the floor, you are pulled towards the center of the screen. The further away from the center of the screen, the harder your are pulled towards it. (This leads to some cool bouncing effects)

The area in which the points spawn is significantly decreased to an 8x8 area around the center. Your time is also significantly increased because... you will need every bit of it.
I’m holding a public beta (you can apply, but a limited number of people will be accepted, the number is limited because of laziness) for AoJ2, but applications will only be processed on Tuesday.

Application form (basically asks for your username, whether you have a CE or not, and if you are willing to help): Click Me; I’m a link!
Today, I decided to ditch the beta, and instead uploaded the file (AoJ2) to the archives, and if you find a bug, well, you can post it here.

I also updated an update submitted an update (I'm tired) to AoJ1, so yay.

When AoJ2 is accepted, I will edit the initial post with the DL link!

I already roughly explained how AoJ2 will work above, so I will not go into too much detail here.

On a separate note, I joined TIBD, and will be cross-posting my updates to all three sites (Cemetech, Codewalrus, TIBD)
  
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 1
» All times are GMT - 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