CodeWalrus

Development => Calculators => Calc Projects, Programming & Tutorials => Topic started by: _iPhoenix_ on October 08, 2017, 07:08:27 AM

Title: Adventures of JETMAN! [CE] [game] [basic] [shiny]
Post by: _iPhoenix_ on October 08, 2017, 07:08:27 AM

x-post from Cemetech. Thought I'd post this awesome project of mine here.


<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). [size=0]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. [/size]
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)


(https://www.cemetech.net/img/icon/dl.gif)Download Adventures of JETMAN! (https://www.cemetech.net/programs/index.php?mode=file&path=/84pce/basic/games/AdventuresofJetman.zip)
Title: Re: Adventures of JETMAN!
Post by: _iPhoenix_ on October 08, 2017, 07:20:46 AM
*double posting on purpose to have changelog and up-and-coming features in second post for flow purposes*

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.
Title: Re: Adventures of JETMAN!
Post by: Dream of Omnimaga on October 08, 2017, 03:29:41 PM
Interesting. Do you have screenshots?
Title: Re: Adventures of JETMAN!
Post by: _iPhoenix_ on October 08, 2017, 04:52:39 PM
Quote from: xlibman on October 08, 2017, 03:29:41 PM
Interesting. Do you have screenshots?

Unfortunately, no.

I do not currently have access to CEmu or similar. :(
Title: Re: Adventures of JETMAN!
Post by: Dream of Omnimaga on October 08, 2017, 06:29:54 PM
Aah too bad. I guess I'll check this out when I am back home
Title: Re: Adventures of JETMAN!
Post by: _iPhoenix_ on October 13, 2017, 11:24:44 AM
I'm holding a public private beta (you can apply, but a limited number of people will be accepted, so I'm posting here, and will take my sweet old time to crosspost on Cemetech...) for AoJ2, but applications will only be processed on Tuesday.

Application form: Click Me Plz (https://docs.google.com/forms/d/e/1FAIpQLScVV9_-q_tbItEq6HLEi4hHPT_YtgsDifoqqJtRwGidiCcRLQ/viewform?usp=sf_link)