Jump to content

  • Log In with Google      Sign In   
  • Create Account


Stuck at starting itself!

  • You cannot reply to this topic
4 replies to this topic

#1 CSK   Members   -  Reputation: 102

Like
0Likes
Like

Posted 01 June 2014 - 12:44 PM

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.



Sponsor:

#2 rip-off   Moderators   -  Reputation: 7675

Like
2Likes
Like

Posted 01 June 2014 - 01:19 PM

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.

#3 CSK   Members   -  Reputation: 102

Like
0Likes
Like

Posted 01 June 2014 - 01:37 PM

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


Edited by CSK, 01 June 2014 - 01:38 PM.


#4 SeanMiddleditch   Members   -  Reputation: 3899

Like
2Likes
Like

Posted 01 June 2014 - 01:47 PM

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.

#5 rip-off   Moderators   -  Reputation: 7675

Like
2Likes
Like

Posted 01 June 2014 - 01:52 PM

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.





PARTNERS