Alright, felt like the topic over at MaxCoderz was [ and has been ] stale. So I guess posting this here where everyone can see it, may not be such a bad idea.

For those of you that have been chilling in SAX/IRC [ #ti on efnet! join it, love it! ] chat you probably have seen me picking back up on Metroid Infinity some. I don't know how far this will go this time. But I am at least working on something, right?

Anyway, what I have so far:

  • A decently fast platforming engine [ it slows down with AI on the screen, which bugs me ]
  • 3 different kinds of AI enemies. That can be killed!
  • Obtainable items! [ gun and morph ball ]
  • Openable doors [ shoot to open ]
  • Pretty large map [ in reality, it's as many screens as my original Metroid was [ almost ] ]
  • Adjustable jump height, togglable rain.

This is the game itself

And here is a quick screenshot.

This is a link to a screencap of the game.

So, now for my questions. How should I handle the HUD? [ mockups preferred, any suggestion accepted ] And I really don't want to change the entire map/mapping engine. So making it 7x12 or 8x8 or something like that per screen would suck :/

Should I have it be more open exploration like Super Metroid, or enclosed underground dwelling like NES Metroid?

How bad [ in your opinion ] does the engine slow down [ if at all ] when enemy AI is on-screen? Be brutally honest Smile

Oh and if you have sprites you feel should be in the game that aren't on the spritesheet the game uses [ Pic1 ] then feel free to post them here! I am still in need for some good boss sprites, and perhaps a good chozo statue or something. Anything really.
Your screenshot isn't animating at all?
Alright, fixed. Google Sites doesn't like letting hotlinked GIF images animate for whatever reason. Should work now.
interesting screenshot. I see the slowdown you are mentioning, not really sure if it interferes with game play or not.

As to the hud.. hmm.. will have to give that some thought.
Nice engine, impressive screenie, and amusing use of the debug console you have to change jump and pain. Smile I also see the slowdown; does it interfere with gameplay and make it feel un-fluid, or do you get used to it?
It breaks gameplay in that AI isn't on every screen, so the reaction times change. And I will also mention, the engine slows down more when there is one of those wall crawlers, than one of those straight line things, than when a metroid is on the scree. Simply because of how complex the AI is
Any chance of posting code? maybe a reorganization of how you are doing things might eliminate your problem?
Ok, first off MI0RUN

real(7,0 ;Turns off run indicator.
DelVar L₁ ;L₁ and it's 8 elements lets the game know what you have
getKey ;It has a good purpose, don't ask
real(3,2,0,0 ;Display the title pic
Repeat getKey
real(3,3,3 ;XOR the filter, greyscale go!
41→θ:5→C:6→D:1→E:0→Y:1→F:1→G:0→H:5→S ;θ is your room number. C is YPos in [A], D is XPos. F is your form, 1 is standing. G is what tells the game which of 2 frames to draw. H is local gravity. S is jump height.
Repeat X=15 ;X is the pressed key. 15 is CLEAR
Repeat C=1 or C=8 or D=1 or D=12 or X=15 or X=47 ;Checks if you are about to go offscreen, if you pressed MATH or if you pressed CLEAR
If L:prgmXTEMP008 ;L is the presence of AI, XTEMP008 is the AI subroutine
For(X,1,0,–1 ;This draws Samus and the AI if the AI is present. And then undraws without updating the screen.
If L:real(1,J8-8,I8-8,1,7,1,G+(M2-1),56,3,(M=1)(K=1),0
real(8:Ans→X ;Better/faster than getkey.
If X=54 and F=1 and L₁(1:Then ;If you pressed 2ND you are standing and you have obtained the gun.
If L:real(1,J8-8,I8-8,1,7,1,G+(M2-1),56,3,(M=1)(K=1),0 ;Draws the AI
real(1,D8-8,C8-8,1,8,1,4,G8,3,E,1 ;Draws you
C→N:D-(E=1)+not(E→O:0→P ;Set params for the bullet.
While P≤2 and O>1 and O<12 and 24>[A](N,O ;While the bullet is onscreen, has travelled less than it's distance, and isn't hitting a wall.
For(X,1,0,–1:real(1,O8-8,N8-8,1,8,1,11,0,3,E,X:End ;Draw then undraw the bullet. Same as with the player before
O-E+not(E→O:P+1→P:L+(L(I=N)(J=O→L ;Move bullet forward, add 1 to distance [ this will be changed later to set P to be a distance, and subtract from it, for longshot ] and check to see if you killed the AI
If sum([A](N,O)={71,83 ;If the bullet hit a door
–68+[A](N,O→[A](N,O:real(1,O8-8,N8-8,1,8,1,3,8([A](N,O)=15),0,0,0 ;Replace the closed door, with an open one.
If L:real(1,J8-8,I8-8,1,7,1,G+(M2-1),56,3,(M=1)(K=1),0 ;Undraw the AI
real(1,D8-8,C8-8,1,8,1,4,G8,3,E,0 ;Undraw you
If L>1:DelVar L ;If you killed the AI, unset the AI indicator.
H+(H≤0)-(S-F)(23<[A](C+1,D) and max(X={4,7,8→H ;If you are standing on solid ground, and have pressed UP in any form, set local gravity
H-H(H≤0 and 24≤[A](C-1,D→H ;Decrease local gravity, if jumping.
C+Ans(24>[A](C+Ans,D→C ;Move player up if they are jumping, or down if they are falling, if there is nothing solid underneath
D+(24>[A](C,D+1) and max(X={3,8
Ans-(24>[A](C,D-1) and max(X={2,7→D ;move player left/right if nothing solid is there.
If max(X={2,3,7,8:(X=2 or X=7→E ; Sets the player direction!
not(G→G ;Yay for alternating sprites.
If X=1 and L₁(5:1+not(F-1→F ;If you have the morph ball, and press down, morph.
If sum([A](C,D)={8,9,10,20,21,22:prgmMIGET ;If you are acquiring something, run MIGET
If X=47:Then ;Specality nonsense
Input "JUMP? 5 NORM",S
Input "RAIN? 1 IS ON",T
θ+(D=12)-(D=1)+10(C=8)-10(C=1 and θ>10→θ:C-6(C=8)+6(C=1→C:D-10(D=12)+10(D=1→D ;If you went offscreen, move player and map accordingly.



DelVar L
real(10,1,9 ;Delete XTEMP009
"MIM1C"+sub("1234567",10fPart(θ/10),1 ;Determines which column you are in
real(10,0,9 ;Create XTEMP009
iPart(θ/10 ;ANS is used in the MIM1C# programs for your row.
Ans→[A] ;They all exit leaving a matrix in ANS
If L:Then ;If the mappart you are on calls for AI, let's set it up.
"MIAI"+sub("123",M,1 ;Determines which of 3 AI programs you need, based on M set in XTEMP009
real(2,0,0,0,12,8,0,12,0,8,1,0,8,1 ;Draw your map.

MIAI1 This is the AI that goes back and forth in a straight line


If (J<2)+(J>11:Then:0→L:Return:End ;If they go offscreen, kill 'em!
If 24<[A](I,J+K:Then:–K→K ;If they hit a wall, turn around
Else:J+K→J:End ;Otherwise move forwards

MIAI2 This is the most complex one, it follows the wall to it's "left"


If (I>7)+(I<2)+(J<2)+(J>11:Then:0→L:Return:End ;Goin offscreen? Dead.
If 24<[A](I-(K=4)+(K=2),J+(K=1)-(K=3:Then ;If something solid is ahead of you, turn right
If 25>[A](I-(K=1)+(K=3),J-(K=4)+(K=2:K-(K>1)+3(K=1→K ;otherwise if nothing is to your left, turn left
I+(K=2)-(K=4→I:J+(K=1)-(K=3→J:End ;Move forward, because nothing should be ahead of you.

Note, if you put one of these midair, they act very funny Smile

MIAI3 These seek and eat your face, nothing stops them, so they are easy to code


I+randInt(0,(C>I)-(C<I→I:J+randInt(0,(D>J)-(D<J→J ;Move towards the player at a randomish rate

Ok, that should be everything. Does that help TIFreak?


Alright, see the sprite in my signature? The one of Samus just standing there. I need someone to make me a sprite like that, but of Samus facing the player. I have made a simple stand-in sprite, but it kinda sucks :/

Thanks in advance!
Cheers on helping me work on Doors CS, by the way. Smile Metroid Infinity works nicely on the XLib compatibility libraries I inherited from Iambian, although your original 2007 Metroid works somewhat less well.
Hmm it looks like a flying jelly bean.Anyway i think i might acually get a Calculator just to start doing stuff like this.
blitz_9100 wrote:
Hmm it looks like a flying jelly bean.Anyway i think i might acually get a Calculator just to start doing stuff like this.
You should, it's a lot of fun, and it's very self-fulfilling to be able to make a limited device do amazing and creative stuff. is an update by the way
What's a good thirteen or so years between updates, eh?

I am sure at some point I am going to get this working on a calculator, but... that seems to be less my speed these days. I haven't done too much coding at all, but I fancied a play with a development environment called GB Studio targeted at making quick to assemble games for the Game Boy, and whilst it is more geared towards things that may not be quite like what I wanted it to do, I figured with a bit of work tweaking sprites, and connecting boxes, I could get something together in no time.

So I whipped together something super quick as a proof of concept to myself that this could actually be fun. Here's a link to an mp4 of that in action, the jumping isn't quite right, but tweaks and tweaks.

Honestly it was kind of refreshing to see this little sprite move that fast, hah. Speaking of sprites, I went through my old stack of papers from the early aughts, and put together a little timeline of all the Samus sprites I ever worked on, including an awful lot of tries at the Varia suit.

Color coded, purple ones were never used, with the notable attempts at 16px tall models and all the extra suits. Green are what got used in games as far as I know, with the last set being the ones I had planned for this game. And the blue set was ones I had used in some demos, but tweaked to produce the last one.
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 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