Author Topic: Omnimaga's rules for making platformers  (Read 14992 times)

0 Members and 1 Guest are viewing this topic.

Offline nemo

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1203
  • Rating: +95/-11
    • View Profile
Omnimaga's rules for making platformers
« on: August 03, 2010, 10:38:10 pm »
i noticed Raylin's rules for making RPG's, and thought it was a good idea to have the same for platform games. This thread is for people who don't think they can handle a full-on RPG yet, but are beyond programming small games and are looking for something more intensive. since i personally don't have many rules for platformers, the thread is titled as omnimaga's, in the hope that the community can contribute. so, in no specific order:

1) Plan out your character's limitations. Can they jump? If so, how high and how far? Do they have any special abilities e.g. lasers or shields? - nemo

2) If you have enemies, make sure you have an idea of what their AI will do. Keep it as simple as possible, without being ridiculously easy. A good example of elegant but effective AI is ztrumpet's Exodus. - nemo

3) Make sure you compress your maps! there are many different compression algorithms out there. if you are a beginner to compression techniques i suggest you start out with a simple one like Run Length Encoding, explained here and implemented in TI-Basic here. However, if you're programming in TI-Basic, your map loading will take a hit on speed. This rule is more for Axe and ASM programs. - nemo

4) Know how many tiles are in your tilemap before you write a decompression routine. figuring out decompressing can be a pain. if you know how many tiles are in your tilemap and their specific properties, once you write a decompression routine, you won't have to worry about it again. - nemo
 
5) Write a tilemap editor if possible. it'll save you a lot of time when developing levels. - nemo

6) I've always found the physics engine in a platformer to be relatively simple, and save it for last. however, if you aren't sure what type of physics you'll have, i suggest playing around with the code in builderboy's physics tutorial to get some ideas of how to implement basic physics. - nemo

7) Make sure that you make your gravity constant EXCEPT when you are touching the ground. However, the only exception to this rule is Raylin's game, gRaViTy. In that game, in order to gain speed, Raylin made the gravity constant throughout and had the player object determine whether to stop or not. - Raylin

8 ) JUMPING ENGINE FIRST! - Raylin

9) For BASIC programmers, make sure key detection is responsive enough. IN the first version of Exodus that I tested (that was never posted in public) as well as in Deep Thought's Insanity platformer games, when pressing a key, it took an entire frame before responding. This leads to frustration when trying to jump/land on small platforms, as you always end up moving one step further, not moving at all, not jumping at all and falling in the pit. Although speed cannot be helped all the time, try to make sure key detection for movement/jumping is done at the right place in your program (preferably immediately before the sprites are being moved). - DJ Omnimaga
« Last Edit: August 04, 2010, 08:40:50 am by nemo »


Offline Raylin

  • Godslayer
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1392
  • Rating: +83/-25
  • I am a certifiable squirrel ninja.
    • View Profile
    • Ray M. Perry
Re: Omnimaga's rules for making platformers
« Reply #1 on: August 03, 2010, 10:55:19 pm »
7] Make sure that you make your gravity constant EXCEPT when you are touching the ground. However, the only exception to this rule is Raylin's game, gRaViTy. In that game, in order to gain speed, Raylin made the gravity constant throughout and had the player object determine whether to stop or not.

8] JUMPING ENGINE FIRST!
« Last Edit: August 03, 2010, 10:55:43 pm by Raylin »
Bug me about my book.

Sarah: TI-83 Plus Silver Edition [OS 1.19]
Cassie: TI-86 [OS 1.XX]
Elizabeth: TI-81 [OS 1.XX]
Jehuty: TI-83 Plus Silver Edition [OS 1.19]
Tesla: CASIO Prizm







Offline meishe91

  • Super Ninja
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2946
  • Rating: +115/-11
    • View Profile
    • DeviantArt
Re: Omnimaga's rules for making platformers
« Reply #2 on: August 03, 2010, 10:58:49 pm »
Added this to the tutorial thread.
Spoiler For Spoiler:



For the 51st time, that is not my card! (Magic Joke)

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Omnimaga's rules for making platformers
« Reply #3 on: August 04, 2010, 01:24:42 am »
6) I've always found the physics engine in a platformer to be relatively simple, and save it for last. however, if you aren't sure what type of physics you'll have, i suggest playing around with the code in builderboy's physics tutorial to get some ideas of how to implement basic physics.

Really? I've always found the physics to be the hardest :P and therefore the first thing i always work on. 

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55847
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Omnimaga's rules for making platformers
« Reply #4 on: August 04, 2010, 01:26:32 am »
Wow nice. I would have to disagree that 3 is essential, though. In some case, the programmer will want his maps to display instantly or close. With compression, this is impossible in BASIC. Also, compressing 350 maps one by one is long and tedious, not to mention if some of your maps use boolean logic for certain tiles (like treasure chests), then compression is out of the question.

Imagine how slow Metroid II Evolution would have loaded with compressed maps. My goal was 2 seconds loading between maps.

As for 6 I agree with Builderboy. Without his help, I would never have managed to fix Supersonic Ball physics. I tried everything I could.

That said, if you use ASM/Axe for maps, you gain a big advantage of map data size, so compression may not be as essential as if your maps were in BASIC (especially matrices). Otherwise I challenge the person who wants to compress all 300+ Metroid II Expansion Set maps without adding more than 1 second on map loading and with preserving of the boolean logic used in some maps. This is all the maps: http://www.omnimaga.org/index.php?action=dlattach;topic=1726.0;attach=908;image

EDIT: 9) For BASIC programmers, make sure key detection is responsive enough. IN the first version of Exodus that I tested (that was never posted in public) as well as in Deep Thought's Insanity platformer games, when pressing a key, it took an entire frame before responding. This leads to frustration when trying to jump/land on small platforms, as you always end up moving one step further, not moving at all, not jumping at all and falling in the pit. Although speed cannot be helped all the time, try to make sure key detection for movement/jumping is done at the right place in your program (preferably immediately before the sprites are being moved).
« Last Edit: August 04, 2010, 01:36:55 am by DJ Omnimaga »
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline nemo

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1203
  • Rating: +95/-11
    • View Profile
Re: Omnimaga's rules for making platformers
« Reply #5 on: August 04, 2010, 08:38:41 am »
edited in the new rules.

6 is more of a preference for me, but i thought i should add it so people could find builderboy's physics tutorial if they were having troubles. true DJ, in BASIC it's harder to  compress maps and keep speed than in axe/asm. i edited that in (:

edit: i'll attempt to compress the metroid II maps, but no promises there. it'll be hard.
« Last Edit: August 04, 2010, 08:43:53 am by nemo »


Offline ztrumpet

  • The Rarely Active One
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5712
  • Rating: +364/-4
  • If you see this, send me a PM. Just for fun.
    • View Profile
Re: Omnimaga's rules for making platformers
« Reply #6 on: August 04, 2010, 11:58:16 am »
Plan ahead all the tiles you will use if you use compression.  It may take a while, but adding in tiles later (I added the crumbling block in Exodus almost too late) is a pain.  :D

Offline yunhua98

  • You won't this read sentence right.
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2718
  • Rating: +214/-12
  • Go take a dive in the River Lethe.
    • View Profile
Re: Omnimaga's rules for making platformers
« Reply #7 on: August 04, 2010, 02:40:24 pm »
As with RPGs, write out storyline on paper, unless it doesn't have one, and is purely taking down enemies.  ;D

btw, do you guys think I should make "Omnimaga's Rules to Making Quadratic Solvers"?
it could start with;  Don't make them!  j/k

Spoiler For =====My Projects=====:
Minor setback due to code messing up.  On hold for Contest.
<hr>
On hold for Contest.


Spoiler For ===Staff Memberships===:






Have you seen any good news-worthy programs/events?  If so, PM me with an article to be included in the next issue of CGPN!
The Game is only a demo, the code that allows one to win hasn't been done.
To paraphrase Oedipus, Hamlet, Lear, and all those guys, "I wish I had known this some time ago."
Signature Last Updated: 12/26/11
<hr>

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55847
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Omnimaga's rules for making platformers
« Reply #8 on: August 04, 2010, 05:14:49 pm »
edited in the new rules.

6 is more of a preference for me, but i thought i should add it so people could find builderboy's physics tutorial if they were having troubles. true DJ, in BASIC it's harder to  compress maps and keep speed than in axe/asm. i edited that in (:

edit: i'll attempt to compress the metroid II maps, but no promises there. it'll be hard.
Oh doN't worry too much about the Metroid II challenge, it was more because in the past, many people complained that I should add compression to the game and they did not understand it would increase loading time considerably, so since then I put that challenge up. The challenge required the person to only rely on xLIB+BASIC.
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline JustCause

  • CoT Emeritus
  • LV8 Addict (Next: 1000)
  • *
  • Posts: 810
  • Rating: +115/-5
    • View Profile
Re: Omnimaga's rules for making platformers
« Reply #9 on: November 02, 2010, 10:38:32 am »
Things I should have read before starting MFQT...heh. This should help a lot of people!
See you, space cowboy...

Offline MRide

  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 711
  • Rating: +14/-0
  • You can't see this.
    • View Profile
Re: Omnimaga's rules for making platformers
« Reply #10 on: November 02, 2010, 05:10:48 pm »
wait for it.......HOLY NECROPOST BATMAN!

Offline yunhua98

  • You won't this read sentence right.
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2718
  • Rating: +214/-12
  • Go take a dive in the River Lethe.
    • View Profile
Re: Omnimaga's rules for making platformers
« Reply #11 on: November 02, 2010, 05:13:55 pm »
lol, not as much as some of mine though.  :P

Spoiler For =====My Projects=====:
Minor setback due to code messing up.  On hold for Contest.
<hr>
On hold for Contest.


Spoiler For ===Staff Memberships===:






Have you seen any good news-worthy programs/events?  If so, PM me with an article to be included in the next issue of CGPN!
The Game is only a demo, the code that allows one to win hasn't been done.
To paraphrase Oedipus, Hamlet, Lear, and all those guys, "I wish I had known this some time ago."
Signature Last Updated: 12/26/11
<hr>

Offline Ranman

  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1354
  • Rating: +83/-0
    • View Profile
Re: Omnimaga's rules for making platformers
« Reply #12 on: November 02, 2010, 05:24:56 pm »
I need to make a Jumpman level editor very very soon! ;)
« Last Edit: November 02, 2010, 05:25:11 pm by Ranman »
Ranman
Bringing Randy Glover's Jumpman to the TI-89 calculator. Download available at Ticalc.

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55847
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Omnimaga's rules for making platformers
« Reply #13 on: November 02, 2010, 06:51:41 pm »
will it be released to the public or is it just to help you in development? External level support would be great! :D
lol, not as much as some of mine though.  :P
Or my Cemetech and UTI ones :P
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline Freyaday

  • The One And Only Serial Time Killing Catboy-Capoeirista-Ballerino
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1970
  • Rating: +128/-15
  • I put on my robe and pixel hat...
    • View Profile
Re: Omnimaga's rules for making platformers
« Reply #14 on: March 18, 2011, 05:36:15 pm »
Advice on key detection: Have the drawing code immediatly after the key detection, like in the following:

Getkey->K
Text(-1,R,C,"_
C+12(K=26)-12(K=24->C
C+96(C<6)-96(C>96->C
Text(-1,R,C,N
In other news, Frey continues kicking unprecedented levels of ass.
Proud member of LF#N--Lolis For #9678B6 Names


I'm a performer at heart; I stole it last week.
My Artwork!