Omnimaga: The Coders Of Tomorrow
Welcome, Guest. Please login or register.
 
Omnimaga: The Coders Of Tomorrow
21 May, 2013, 05:41:47 *
Welcome, Guest. Please login or register.

Login with username, password and session length
 
   home   news downloads projects tutorials misc forums rules new posts irc about Login Register  
+-OmnomIRC

You must Register, be logged in and have at least 40 posts to use this shout-box! If it still doesn't show up afterward, it might be that OmnomIRC is disabled for your group or under maintenance.

Note: You can also use an IRC client like mIRC, X-Chat or Mibbit to connect to an EFnet server and #omnimaga.

Pages: [1] 2   Go Down
  Print  
Author Topic: Omnimaga's rules for making platformers -  (Read 2409 times) Bookmark and Share
0 Members and 1 Guest are viewing this topic.
nemo
LV9 Veteran (Next: 1337)
*********
Offline Offline

Last Login: 04 April, 2013, 01:12:57
Date Registered: 16 May, 2010, 03:55:30
Posts: 1198

Topic starter
Total Post Ratings: +83

View Profile
« on: 04 August, 2010, 04:38:10 »
+4

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: 04 August, 2010, 14:40:50 by nemo » Logged


Raylin
Godslayer
LV10 31337 u53r (Next: 2000)
**********
Offline Offline

Gender: Male
Last Login: 25 February, 2013, 17:03:58
Date Registered: 01 July, 2009, 22:55:16
Location: In the City of Labyrinth
Posts: 1405


Total Post Ratings: +53

View Profile WWW
« Reply #1 on: 04 August, 2010, 04:55:19 »
0

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: 04 August, 2010, 04:55:43 by Raylin » Logged

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








Phantom Sanctuary: Sins of the Savior [==........] 20%
meishe91
Super Ninja
Members
LV11 Super Veteran (Next: 3000)
***********
Offline Offline

Gender: Male
Last Login: 02 May, 2013, 23:54:14
Date Registered: 05 March, 2010, 05:39:48
Posts: 2965


Total Post Ratings: +102

View Profile WWW
« Reply #2 on: 04 August, 2010, 04:58:49 »
0

Added this to the tutorial thread.
Logged





For the 51st time, that is not my card! (Magic Joke)
Builderboy
Physics Guru
LV13 Extreme Addict (Next: 9001)
*************
Offline Offline

Gender: Male
Last Login: Today at 03:20:13
Date Registered: 20 April, 2009, 00:28:53
Location: Ravenholm
Posts: 5642


Total Post Ratings: +589

View Profile
« Reply #3 on: 04 August, 2010, 07:24:42 »
0

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 Tongue and therefore the first thing i always work on. 
Logged

DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Offline Offline

Gender: Male
Last Login: Today at 03:52:40
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50207


Total Post Ratings: +2612

View Profile WWW
« Reply #4 on: 04 August, 2010, 07:26:32 »
0

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: 04 August, 2010, 07:36:55 by DJ Omnimaga » Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
nemo
LV9 Veteran (Next: 1337)
*********
Offline Offline

Last Login: 04 April, 2013, 01:12:57
Date Registered: 16 May, 2010, 03:55:30
Posts: 1198

Topic starter
Total Post Ratings: +83

View Profile
« Reply #5 on: 04 August, 2010, 14:38:41 »
0

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: 04 August, 2010, 14:43:53 by nemo » Logged


ztrumpet
The Rarely Active One
LV13 Extreme Addict (Next: 9001)
*************
Offline Offline

Gender: Male
Last Login: 23 April, 2013, 16:09:52
Date Registered: 08 November, 2009, 21:10:12
Location: Michigan
Posts: 5687


Total Post Ratings: +360

View Profile
« Reply #6 on: 04 August, 2010, 17:58:16 »
0

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.  Cheesy
Logged

yunhua98
You won't this read sentence right.
LV11 Super Veteran (Next: 3000)
***********
Offline Offline

Gender: Male
Last Login: 14 May, 2012, 03:06:37
Date Registered: 26 May, 2010, 22:58:45
Location: Somewhere in Deep Space.
Posts: 2717


Total Post Ratings: +199

View Profile
« Reply #7 on: 04 August, 2010, 20:40:24 »
0

As with RPGs, write out storyline on paper, unless it doesn't have one, and is purely taking down enemies.  Grin

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
Logged


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

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

DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Offline Offline

Gender: Male
Last Login: Today at 03:52:40
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50207


Total Post Ratings: +2612

View Profile WWW
« Reply #8 on: 04 August, 2010, 23:14:49 »
0

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.
Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
JustCause
Coder Of Tomorrow
LV8 Addict (Next: 1000)
*
Offline Offline

Gender: Male
Last Login: 14 March, 2013, 00:30:22
Date Registered: 28 April, 2010, 19:35:41
Posts: 734


Total Post Ratings: +108

View Profile
« Reply #9 on: 02 November, 2010, 16:38:32 »
0

Things I should have read before starting MFQT...heh. This should help a lot of people!
Logged

MRide
LV8 Addict (Next: 1000)
********
Offline Offline

Gender: Male
Last Login: 13 July, 2011, 22:22:01
Date Registered: 16 July, 2010, 18:31:10
Location: On a set of Penrose steps
Posts: 710


Total Post Ratings: +14

View Profile
« Reply #10 on: 02 November, 2010, 23:10:48 »
0

wait for it.......HOLY NECROPOST BATMAN!
Logged


Please click the eggs/dragons! :
Spoiler for My Incubator:
yunhua98
You won't this read sentence right.
LV11 Super Veteran (Next: 3000)
***********
Offline Offline

Gender: Male
Last Login: 14 May, 2012, 03:06:37
Date Registered: 26 May, 2010, 22:58:45
Location: Somewhere in Deep Space.
Posts: 2717


Total Post Ratings: +199

View Profile
« Reply #11 on: 02 November, 2010, 23:13:55 »
0

lol, not as much as some of mine though.  Tongue
Logged


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

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

Ranman
LV10 31337 u53r (Next: 2000)
**********
Offline Offline

Last Login: 23 April, 2013, 23:37:04
Date Registered: 16 October, 2008, 23:25:59
Posts: 1390


Total Post Ratings: +78

View Profile
« Reply #12 on: 02 November, 2010, 23:24:56 »
0

I need to make a Jumpman level editor very very soon! Wink
« Last Edit: 02 November, 2010, 23:25:11 by Ranman » Logged

Ranman
Bringing Randy Glover's Jumpman to the TI-89 calculator.  Download available here.
DJ Omnimaga
Retired Omnimaga founder (Site issues must be PM'ed to Netham45, Eeems, Shmibs, Deep Thought and AngelFish, not me.)
Editor
LV15 Omnimagician (Next: --)
*
Offline Offline

Gender: Male
Last Login: Today at 03:52:40
Date Registered: 25 August, 2008, 07:00:21
Location: Québec (Canada)
Posts: 50207


Total Post Ratings: +2612

View Profile WWW
« Reply #13 on: 03 November, 2010, 00:51:41 »
0

will it be released to the public or is it just to help you in development? External level support would be great! Cheesy
lol, not as much as some of mine though.  Tongue
Or my Cemetech and UTI ones Tongue
Logged

Retired 83+ coder, Omnimaga/TIMGUL founder. Now doing power metal music (formerly did electronica)

Follow me on Bandcamp|Facebook|Reverbnation|Youtube|Twitter|Myspace
Freyaday
The One And Only Serial Time Killing Catboy-Loli-Ballerino
LV10 31337 u53r (Next: 2000)
**********
Offline Offline

Gender: Male
Last Login: Yesterday at 16:35:24
Date Registered: 24 February, 2011, 17:10:56
Location: ¿¿¿
Posts: 1887


Total Post Ratings: +108

View Profile WWW
« Reply #14 on: 18 March, 2011, 23:36:15 »
0

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
Logged

In other news, Frey continues kicking unprecedented levels of ass.
Proud member of LF#N--Lolis For #9678B6 Names


Beware the Bitulator! ,.,./`My Artwork!
Pages: [1] 2   Go Up
  Print  
 
Jump to:  

Powered by EzPortal
Powered by MySQL Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Powered by PHP
Page created in 0.376 seconds with 31 queries.
Skin by DJ Omnimaga edited from SMF default theme with the help of tr1p1ea.
All programs, games and songs avaliable on this website are property of their respective owners.
Best viewed in Opera, Firefox, Chrome and Safari with a resolution of 1024x768 or above.