Computer Science Canada

First And Last Mario Level

Author:  uberwalla [ Wed Nov 29, 2006 8:28 am ]
Post subject:  First And Last Mario Level

Decided i would post it to get some feedback Very Happy

tell me what you guys think Cool

Arrow keys to move
Shift to jump

Author:  jamonathin [ Wed Nov 29, 2006 11:59 pm ]
Post subject: 

Not bad game you have there. The only thing really to pick at (besides the lag of the SFX which isn't your fault) is the movement of the player.

Its actually sort of odd that theres a new mario game on here because just last weekend I had an hour to kill on my laptop while going to toronto so, I wanted to make a 'mario style' dude jump around.

Here's more of the movement I would of liked to have seen in your game. It uses gravity a a lil bit of speed boosts when the player run+jumps. It uses basic whatdotcolor because i was tired of coordinates and was doing for fun, but it's the movement I want you to look at Razz.

Good work on your game though. Hopefully for you (if you wanted to) you could make more levels (maybe throw in the fireball in the tube guy as well :O).

Author:  [Gandalf] [ Thu Nov 30, 2006 12:18 am ]
Post subject: 

Quite good, apart from the huge file size because of the way you are drawing the maps... It could be done a much more CPU friendly way simply using a tile map instead of the huge image.

Apart from that, one suggestion. Your jumping does not seem to use any real world, or even imitation physics. Improve this, and the entire feel of the game will feel far more like the original.

*edit* Took me an hour to post this. Surprised

Author:  uberwalla [ Thu Nov 30, 2006 8:34 am ]
Post subject: 

well im still kinda new to turing not really though i found this was the only way to draw the map lol. Sad and as for movement on my comp its pretty smooth but i understand what ur saying Razz ill try it and maybe at a later date maybe now ill post my code and u can take a look of how bad it is Confused
about 2000 lines Sad

i decided to post it lol Razz take a look plz leave some comments i know it is not the greatest it could be Shocked

edit: for some reason at first i was worried someone might steal the code but then i thought even if commented most of the people who would wouldnt be able to explain the code its so bad Razz

Author:  CodeMonkey2000 [ Thu Nov 30, 2006 8:25 pm ]
Post subject: 

wow you could have cut down on code quite a lot. one area that really bothered me was
code:

marioRunRightPic (1) := Pic.FileNew ("Mario - run1 - right.bmp")
marioRunRightPic (2) := Pic.FileNew ("Mario - run2 - right.bmp")
marioRunRightPic (3) := Pic.FileNew ("Mario - run3 - right.bmp")
marioRunLeftPic (1) := Pic.FileNew ("Mario - run1 - left.bmp")
marioRunLeftPic (2) := Pic.FileNew ("Mario - run2 - left.bmp")
marioRunLeftPic (3) := Pic.FileNew ("Mario - run3 - left.bmp")

you could have just gone

code:

for x:1..3
marioRunRightPic(x):=Pic.FileNew ("Mario - run"+intstr(x)+" - right.bmp")
marioRunLeftPic(x):=Pic.FileNew ("Mario - run"+intstr(x)+" - left.bmp")
end for


also useing records will make it more organized
i dont know how you are jumping, but it doesnt look right.
other than that, great job!
i really love how u did the music

its kinda like the mario game im doing, i was useing blocks, but now im useing sprites, they are similar to urs but i modified it.

heres what i have so far. i think im gonna use colour detection, as that is the easiest.

Author:  uberwalla [ Thu Nov 30, 2006 8:34 pm ]
Post subject: 

alright thx for feedback Very Happy ill use array for sure Razz

and for ur mario for some reason every time i ran it it was saying pic was freed
and highlighted an elsif statement, dont remember which .

Author:  CodeMonkey2000 [ Thu Nov 30, 2006 8:47 pm ]
Post subject: 

aww i see what u mean. i put pic.free at the wrong stop.
youll have to put
code:
    Pic.Free (Mario.sprite)

after
code:

    for x : 1 .. 5
        Goomba (x).sprite := Pic.FileNew (Goomba (x).dir)
        Pic.Draw (Goomba (x).sprite, Goomba (x).x, Goomba (x).y, picMerge)
        goombaAI (x)
        Pic.Free (Goomba (x).sprite)
    end for

or else goombaAI (x) will check a image that doesnt exist

Author:  uberwalla [ Thu Nov 30, 2006 8:53 pm ]
Post subject: 

omfg thats hilarious

Quote:

Oh No... Muma Mia!!!

thats funny Razz

Author:  CodeMonkey2000 [ Thu Nov 30, 2006 11:40 pm ]
Post subject: 

another are u could cut down on code is the music processes
code:
process BMusic
    loop
        exit when finished
        Music.PlayFile ("Overworld.mp3")
    end loop
end BMusic

process JumpSound
    Music.PlayFile ("Jump.wav")
end JumpSound

process BlockBreakSound
    Music.PlayFile ("BlockBreak.wav")
end BlockBreakSound

process BlockBumpSound
    Music.PlayFile ("BlockBump.wav")
end BlockBumpSound

process DeathSound
    Music.PlayFile ("Death.mp3")
end DeathSound

process FlagpoleSound
    Music.PlayFile ("Flagpole.wav")
end FlagpoleSound

process KickSound
    Music.PlayFile ("Kick.wav")
end KickSound

process StageClearSound
    Music.PlayFile ("StageClear.mp3")
end StageClearSound

process StompSound
    Music.PlayFile ("Stomp.wav")
end StompSound

process TimeRunningOutSound
    Music.PlayFile ("TimeRunningOut.wav")
end TimeRunningOutSound

process PowerupSound
    Music.PlayFile ("Powerup.wav")
end PowerupSound

process ItemSproutSound
    Music.PlayFile ("ItemSprout.wav")
end ItemSproutSound

process InjurySound
    Music.PlayFile ("Injury.wav")
end InjurySound

process CoinSound
    Music.PlayFile ("Coin.wav")
end CoinSound

process FireworkSound
    Music.PlayFile ("Firework.wav")
end FireworkSound

process FlagTimeSound
    Music.PlayFile ("FlagTime.wav")
end FlagTimeSound

why not just do:
code:

process Sound(MusicFile:string)
    Music.PlayFile (MusicFile)
end Sound
fork sound("the sound u want played.wav/mp3..whatever")

u seem to already know about arguments, they can be useful here too.[/code]

Author:  Silent Avenger [ Thu Nov 30, 2006 11:47 pm ]
Post subject: 

Pretty good game. Good work.

Author:  uberwalla [ Fri Dec 01, 2006 4:04 pm ]
Post subject: 

alright thx man ill work on them sounds its just i didnt know u could have just one process then do fork sound (blah)

i thought it was just "fork sound"

Author:  ericfourfour [ Fri Dec 01, 2006 5:44 pm ]
Post subject: 

First of all. Get rid of the Pic.Frees in the main loop. Instead load all of the pics when the program starts and then free them when it is done. This should definitely increase performance.

Also, don't be afraid to put everything in procedures. Code like this can be put in a procedure called initMario ().
code:
Mario.death := false
Mario.jump := false
Mario.floor := 0
Mario.running := false
Mario.x := 250
Mario.y := 0
Mario.height := 10
Mario.vy := 0
Mario.frame := 5
Mario.dir := "left"


Or this could be put into a procedure called goombaJumpSequence () which would remove the need for a comment.
code:
%goomba jump sequence
Goomba (x).y += Goomba (x).vy
Goomba (x).vy -= 1
if Goomba (x).y <= Goomba (x).floor then
    Goomba (x).vy := 0
    Goomba (x).y := Goomba (x).floor
end if


Also, I do not recommend using "x" as a counter variable. It can get confused with coordinates. Instead use "i" or "count".

Author:  uberwalla [ Fri Dec 01, 2006 6:28 pm ]
Post subject: 

alright thx for the feedback Very Happy ill fix er up

Author:  CodeMonkey2000 [ Fri Dec 01, 2006 8:35 pm ]
Post subject: 

yea i shoudl put the jupsequnce along with some of the other stuff in a procedure. would it be a good idea if i put mario along with goomba in one big array, that way i can use the same procedure for both?oh u need pic.free, or else turing will keep creating more space, and eventually crash. only other thing to do is use an array. but is that really more efficient? i thought it would be the same Confused

Author:  ericfourfour [ Sat Dec 02, 2006 2:35 am ]
Post subject: 

Pic.New and Pic.FileNew both allocate memory and place a picture's data in the memory. Pic.Free deallocates the memory that a picture was occupying. These operations will slow your program down (compare your cpu speed to your memory speed).

Try to make it so your not allocating any (or as little as possible) memory during game play. Allocate all of the memory before game play and deallocate memory after game play. If this means putting it into an array then do so.

Author:  CodeMonkey2000 [ Fri Dec 15, 2006 4:58 pm ]
Post subject: 

uberwalla, can i use the nusic abd sounds used in your mario game?

Author:  uberwalla [ Fri Dec 15, 2006 5:42 pm ]
Post subject: 

sure go ahead u can use sounds, pics, w.e as long as its not my code Razz
(even though my code is pretty bad so who would wanna take it Razz)

thx for asking man Smile


: