Stuck at starting itself!

Started by
3 comments, last by rip-off 9 years, 10 months ago

Hello everyone,

I wanted to build a basic game (like Mario) and I've learnt C++ and openGL. What I did with openGL was to display objects, transform(rotate, translate) and key board operations. But I am stuck on how to move forward. As I read along I see SFML being used for 2D games. Do I stop learning openGL and switch to SFML? If not needed, could anyone kindly point me in the direction I have to head in building the game.

Thank you.

Advertisement

But I am stuck on how to move forward.

What part are you having trouble with specifically? What is the most complex game or program you've made to date?

Mario might seem simple by today's standards, but it is a complex enough game. If you've not written a full game before, I'd recommend starting with something simpler like Pong. It doesn't take too long to write, and introduces concepts such as the game loop, handling input and collision detection.

@rip-off


If you've not written a full game before, I'd recommend starting with something simpler like Pong.

A while ago I wrote pong in python.


What part are you having trouble with specifically?

As a start I would like my character move forward. My questions are

1. I don't understand how to create a background

2. move an object continuously when a button is pressed (similar to Mario walking forward) without going out of scope in the world co-ordinates.

Thank you for your time.

1. I don't understand how to create a background


If you are using OpenGL, just draw a pair of quads covering the whole screen in an orthographic projection. Slide the quads' around and change their textures at the appropriate times to give a sensation of movement.

2. move an object continuously when a button is pressed (similar to Mario walking forward) without going out of scope in the world co-ordinates.


Mario games didn't have this problem as the levels had a finite length. You couldn't exceed any coordinate representation because levels were not long enough to do so. There's a billion questions on this site or gamedev.stackexchange.com about how to handle the coordinates of infinite (or at least very large) worlds to look up if you want to go that route.

Sean Middleditch – Game Systems Engineer – Join my team!

1. I don't understand how to create a background

The simplest static background is to load a large image or texture, and always render it in screen co-ordinates from (0, 0) to (screen_width, screen_height) first. You can add parallax by moving this slower than the "camera". For instance, for every two pixels the player moves, the background could scroll by one pixel.

2. move an object continuously when a button is pressed (similar to Mario walking forward) without going out of scope in the world co-ordinates.

If the "scope" of the world co-ordinates is -N to M, you just need to check if mario.x (plus or minus the character's sprite size) would be less than -N or greater than M. If so, stop moving the character and set its position to -N or M respectively. Typically, N could be 0 and M could be the length of the map, but it depends on the game - in some games, the spawn point might be (0, 0), in others that might represent the middle of the map, in others it might represent one corner of the map. The principle is the same regardless.

Alternatively, once you have collision detection working, simply ensure that the level geometry at the edges prevents the player character from leaving the playable area.

This topic is closed to new replies.

Advertisement