LoginLogin
Nintendo shutting down 3DS + Wii U online services, see our post

Help with a Shoot 'Em Up game

Root / Programming Questions / [.]

the_squat1115Created:
Hey, guys. I was planning to make a Shoot 'Em Up game, it has no name yet, but I need help. If anyone has ideas, post them here! I need help with programming. EDIT: Now I have made a simple shooting game. Not totally satisfactory, but here it is: https://smilebasicsource.com/page?pid=1364 Also, it's not what I've expected and what all of YOU expected. It's simple.

Hey, guys. I was planning to make a Shoot 'Em Up game, it has no name yet, but I need help. If anyone has ideas, post them here! I need help with programming.
well what kind of shoot em up will it be? 3d? sidescroller, etc.

Sidescroller

So, did you drop the Metaverse program? Is this a vertically scrolling space ship shooter like Raiden Trad https://www.youtube.com/watch?v=nPr5P2c6tM0 or maybe a Horizontally scrolling space ship shooter like Gradius https://www.youtube.com/watch?v=oCR-m9q2YdY or perhaps one that scrolls back and forth like Fantasy Zone https://www.youtube.com/watch?v=L7WQYjC26SU or maybe a run & gun like Contra? https://www.youtube.com/watch?v=qXcVojj2GXk It is hard to help when you don't give an idea of what you are aiming for. I get the feeling you haven't planned that far ahead yet. I know you said side scrolling but I think it would be better if you aimed a bit lower like say Asteroids https://www.youtube.com/watch?v=WYSupJ5r2zo or Space Invaders https://www.youtube.com/watch?v=MU4psw3ccUI Space Invaders is the easier of the two, you need some trigonometry for Asteroids. In fact you could probably pull off a decent space invaders clone with only text. You said you needed help with programming, so I took the liberty of looking at the metaverse demo code. If everyone on this site hadn't guessed by now, my first concern is that you are using GOTO and GOSUB instead of defining functions and using looping commands. Pretty clean for what it is, but I am surprised you got up to about 450 lines that way. GOTO and GOSUB simply don't scale, and I am wondering if you are abandoning your Metaverse game because you hit the GOTO/GOSUB wall. I want to see you learn about for/next, while/wend, and repeat/until loops in addition to functions. I am also going to suggest you write out some sort of design document so you can get down on paper what you are hoping to make before you start coding. More than that, I suggest starting small with things like Hello World, or a number guessing game and work your way up to more complex projects. That way you can learn some of the fundamentals, and have some success along the way. Then when you work your way up to your dream project you have the skills and tenacity to pull it off.

It maybe be a space shooter that scrolls vertically, like Raiden Trad, but I have a demo (Tech-Demo) that it's very small. You can see it in the description of the thread.

It maybe be a space shooter that scrolls vertically, like Raiden Trad, but I have a demo (Tech-Demo) that it's very small. You can see it in the description of the thread.
Or maybe a Space Invaders one

I would suggest space invaders of the two. No reason you can't make a scrolling one afterward. So, let's write up a bit of a design document for this. Wikipedia can help with most of this. If you dont' remember, this is what space invaders looks like. https://en.wikipedia.org/wiki/Space_invaders Gameplay: The player is a tank with a laser canon that can only move left and right on the bottom of the screen. At the top of the screen is a 11 by 5 grid of space invaders. They come in three different varieties. The top row are worth 30 points, the second and third row are worth 20, and the bottom two rows are worth 10 points each. Other than the points awarded and the images used they are otherwise identical. It appears that each variety has two images to make a sort of marching animation. Occasionally, a mystery UFO flies across the top of the screen. If you manage to shoot it, you are awarded a mystery number of points (50). Between you and the space invaders are four sets of shields. If you shoot the shield you can make a hole in it to shoot through. If the space invaders shoot it, it makes a hole as well. If a space invader touches a shield it erases wherever the sprite is from the shield. The aliens march from one side of the screen to the other. When any space invader in the grid touches the side of the screen they all descend by the height of one alien, reverse direction, and speed up. The game can be played indefinitely. However, the user will win the current level if they shoot all of the space invaders, at which point the game is reset and played again. The player loses a life if they are touched by a space invader or are shot by a space invader. It is game over when the player is out of lives. If the player managed a high score that information is displayed on screen. There is also an attract screen with the game name and an insert coin message. Game Objects Space Invader: - Location on screen. - Points awarded - Which animation to use Space Invader Grid Manager: Manages - Direction - Speed - State (Descend/Left/Right for the group) - Keeps track of space invaders remaining. Space Invaders inform the manager when they hit a side of the screen. - Should also manage when and which space invaders can fire a shot Space Invader Zap: - Location - Direction of Movement Shield: - Location - Needs something to keep track of the holes by the user and space invaders too. I would probably just draw this one and let the zaps paint over it. Then when you hit a shield check if the color isn't black, if it isn't black it out, otherwise let it through. Player: - Location - Function to check to see if they can fire again (only one player shot is allowed on screen at a time). - Number of lives Player Shot - Location - Both kinds of shots are destroyed when they pass the edge of the play area or hit an enemy or shield Bonus UFO. - State (destroyed, waiting, moving) - Location (when in moving state) - Direction Global Variables: - Current Score - High Score - Game Scene (Main Menu/Game) Resources Required - Music - simple but may need to be generated as we want to up the tempo the closer the space invaders get (MML) - Space invader zap - Player laser sound - Space Invader Sprites (2 sets of three) - Hero sprite (might reuse this for the players remaining display or make another sprite for that) - Bonus UFO sprite - Player Shot sprite - Space Invader shot sprite - Explosion sprites - Text probably in small and large varieties. Am I forgetting anything? That is a lot for such a simple game right? You should probably decide if the high score is saved to disc or just while the game is on too. Well if you remember that I said you could probably make a space invaders clone with just text, there is the fact that EX7ALIEN that came with SmileBasic is exactly that. Of course there is also GAME4SHOOTER that is a vertically scrolling shooter too if you want to view the code of either for inspiration. Anyway, I hope that helps. If you want to have a race or something where we each make our own space invaders clone, let me know. If anyone else wants to race too, just say so.

I would suggest space invaders of the two. No reason you can't make a scrolling one afterward. So, let's write up a bit of a design document for this. Wikipedia can help with most of this. If you dont' remember, this is what space invaders looks like. https://en.wikipedia.org/wiki/Space_invaders Gameplay: The player is a tank with a laser canon that can only move left and right on the bottom of the screen. At the top of the screen is a 11 by 5 grid of space invaders. They come in three different varieties. The top row are worth 30 points, the second and third row are worth 20, and the bottom two rows are worth 10 points each. Other than the points awarded and the images used they are otherwise identical. It appears that each variety has two images to make a sort of marching animation. Occasionally, a mystery UFO flies across the top of the screen. If you manage to shoot it, you are awarded a mystery number of points (50). Between you and the space invaders are four sets of shields. If you shoot the shield you can make a hole in it to shoot through. If the space invaders shoot it, it makes a hole as well. If a space invader touches a shield it erases wherever the sprite is from the shield. The aliens march from one side of the screen to the other. When any space invader in the grid touches the side of the screen they all descend by the height of one alien, reverse direction, and speed up. The game can be played indefinitely. However, the user will win the current level if they shoot all of the space invaders, at which point the game is reset and played again. The player loses a life if they are touched by a space invader or are shot by a space invader. It is game over when the player is out of lives. If the player managed a high score that information is displayed on screen. There is also an attract screen with the game name and an insert coin message. Game Objects Space Invader: - Location on screen. - Points awarded - Which animation to use Space Invader Grid Manager: Manages - Direction - Speed - State (Descend/Left/Right for the group) - Keeps track of space invaders remaining. Space Invaders inform the manager when they hit a side of the screen. - Should also manage when and which space invaders can fire a shot Space Invader Zap: - Location - Direction of Movement Shield: - Location - Needs something to keep track of the holes by the user and space invaders too. I would probably just draw this one and let the zaps paint over it. Then when you hit a shield check if the color isn't black, if it isn't black it out, otherwise let it through. Player: - Location - Function to check to see if they can fire again (only one player shot is allowed on screen at a time). - Number of lives Player Shot - Location - Both kinds of shots are destroyed when they pass the edge of the play area or hit an enemy or shield Bonus UFO. - State (destroyed, waiting, moving) - Location (when in moving state) - Direction Global Variables: - Current Score - High Score - Game Scene (Main Menu/Game) Resources Required - Music - simple but may need to be generated as we want to up the tempo the closer the space invaders get (MML) - Space invader zap - Player laser sound - Space Invader Sprites (2 sets of three) - Hero sprite (might reuse this for the players remaining display or make another sprite for that) - Bonus UFO sprite - Player Shot sprite - Space Invader shot sprite - Explosion sprites - Text probably in small and large varieties. Am I forgetting anything? That is a lot for such a simple game right? You should probably decide if the high score is saved to disc or just while the game is on too. Well if you remember that I said you could probably make a space invaders clone with just text, there is the fact that EX7ALIEN that came with SmileBasic is exactly that. Of course there is also GAME4SHOOTER that is a vertically scrolling shooter too if you want to view the code of either for inspiration. Anyway, I hope that helps. If you want to have a race or something where we each make our own space invaders clone, let me know. If anyone else wants to race too, just say so.
Ok, we maybe make a space invaders clone.

Ok, I will start mine. You may win the race as I have precious little free time.

Ok, I will start mine. You may win the race as I have precious little free time.
Ok, advice me soon as you have the project.

I have a group of sprites doing the space invaders march so far. Not much progress. How is your version going?

I have a group of sprites doing the space invaders march so far. Not much progress. How is your version going?
Well, I was having a lot of wasted time on school, so I didn't have much time (And I'm trying to do Collision Detection with my platformer) And I think is pretty hard to make one of these... (Since I'm a bit intermmediate)

I need to revisit this, sorry for the delay.

Well, I finally got back to this for a little bit. I think I may be in the lead for the race. Last time I had a group of space invaders marching left and right and down the screen. Now I have a hero ship at the bottom of the screen that can shoot at the aliens and destroy them with a score in the top-right. I am still missing the shields, bonus ufo, explosions, the invaders shooting back, and the title screen among other things. Hope I get time to finish it off soon.

Invasion from Space http://smilebasicsource.com/page?pid=1403 Key = 8B3VY334 It isn't as polished as I would have liked. I didn't implement explosions, or extra lives for example, but I don't want this hanging over my head anymore, so good enough I guess. My first try at using MML actually. So I guess I won the race, even if it took me 3 months. The code isn't all that clean either. Let me know if I messed up the key or if you see any bugs. Thanks!