Game programming help

Started by
8 comments, last by Khatharr 11 years, 3 months ago

I've been studying programming for some years, and I'm well versed in C++ and Java. I know the very basics of coding in OpenGL, whilst currently learning OpenGL ES 2.0, and had a few questions:

- Before programming a 3D world, I hear it's suggested to start off with 2D. Is it recommended to do so? And how much is it recommended?

- What parts of the game are to be coded first? (i.e; if it's a 3D game, the model loader? Or menus and getting them to work?)

- Is a mastery of an API necessary before using it? (i.e; Knowing most of it off the top of your head)

- And what is the best light linux IDE? I love Geany and I've yet to find something as conveniently packed with features whilst being this light.

Any knowledge on any of these topics would be appreciated.

Advertisement

2D is much much easier. Start out with the GUI and login system. then move on to the database and get everything set up correctly. There is no point in programming a game if you cant correctly implement you data for the game, simply because you have yet to create the database/storage of data... BTW - for the sake of the meme - "One does not simply.... program a game without a database"

oh right, the best ide for linux would have to be netbeans ide for java and c++... or eclipse (some prefer that)

sudo apt-get install netbeans

sudo apt-get install eclipse

add me on skype, i need some new associates for coding.

skype: daniel.lamonds

c++, Visual basic, fortran, html/5, css, php,java script, sql, others......

Working with a 3D world is more complex than working with a 2D world. You may want to try the easier of the two before you try to tackle the harder. It's just a matter of not overwhelming yourself with too much new stuff at once.

Design comes first. Build your design from the top down (in your head or on paper) and then start writing the code that will implement that design. Obviously you can't test much until you have that component built from the bottom up, so I usually start from the bottom and build a system outside of the main project, test it thoroughly and then import it once I'm confident that it's working.

You should know at least the general concept of how an API is used and it's a good idea to flip through the docs and see what all it offers, but trying to memorize the whole thing would be silly. Just use the documentation as a reference and you'll usually automatically memorize the stuff you use the most.

About linux IDEs... vi? O wait... lol I dunno. I only use bash on emulators. I'm sure there's some good ones though.
void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

[quote name='Khatharr' timestamp='1357344325' post='5017571']
Working with a 3D world is more complex than working with a 2D world. You may want to try the easier of the two before you try to tackle the harder
[/quote]

Ehh..we'll see wink.png I usually accept a challenge.

[quote name='Khatharr' timestamp='1357344325' post='5017571']
Design comes first. Build your design from the top down (in your head or on paper) and then start writing the code that will implement that design.
[/quote]
Right, and agreed.

[quote name='Khatharr' timestamp='1357344325' post='5017571']

Just use the documentation as a reference and you'll usually automatically memorize the stuff you use the most
[/quote]

I've memorized a few small API's wacko.png I thought it was normal sad.png

I've been studying programming for some years, and I'm well versed in C++ and Java. I know the very basics of coding in OpenGL, whilst currently learning OpenGL ES 2.0, and had a few questions:

- Before programming a 3D world, I hear it's suggested to start off with 2D. Is it recommended to do so? And how much is it recommended?

- What parts of the game are to be coded first? (i.e; if it's a 3D game, the model loader? Or menus and getting them to work?)

- Is a mastery of an API necessary before using it? (i.e; Knowing most of it off the top of your head)

- And what is the best light linux IDE? I love Geany and I've yet to find something as conveniently packed with features whilst being this light.

Any knowledge on any of these topics would be appreciated.

I'd definitely suggest writing a few simple 2d games before jumping into 3D. Making games is SOOO much more than the graphical representation shown on the screen, and having a 3D game will increase the complexity beyond the act of making a game. I'd recommend learning the nuances of making a game, then moving to 3D if you want to.

As many games have shown us (Dwarf Fortress is one), the GFX often mean the least as far as how fun a game is.

My Gamedev Journal: 2D Game Making, the Easy Way

---(Old Blog, still has good info): 2dGameMaking
-----
"No one ever posts on that message board; it's too crowded." - Yoga Berra (sorta)

[quote name='JinixVomitorium' timestamp='1357343831' post='5017567']
BTW - for the sake of the meme - "One does not simply.... program a game without a database"
[/quote]

That's a silly quote. Are you saying an Angry Birds clone needs a database?

Or are you trying to say a database is simply external data that drives the game content; in that case, I'd agree, but in the case of traditional databases, you can make tons of fun games without them.

My Gamedev Journal: 2D Game Making, the Easy Way

---(Old Blog, still has good info): 2dGameMaking
-----
"No one ever posts on that message board; it's too crowded." - Yoga Berra (sorta)

I've memorized a few small API's ... I thought it was normal ...

For small API's it is because there's just not much to pick up, but it would be a waste of time to intentionally memorize every API call in OpenGL or something. Knowing what's available in the API is more important than being able to make obscure calls without referring to the docs. Especially with IDE features like intellisense (or equivalents) being able to fill in the blanks with a lot of stuff.

Basically you don't want to memorize a bunch of stuff that's going to be outdated when the next version rolls around. You've got better things to do. ;)

BTW - for the sake of the meme - "One does not simply.... program a game without a database"



That's a silly quote. Are you saying an Angry Birds clone needs a database?

Or are you trying to say a database is simply external data that drives the game content; in that case, I'd agree, but in the case of traditional databases, you can make tons of fun games without them.



For real, I don't know why it seems like everyone is obsessed with formal databases these days. There are certainly uses for them but it's not as if languages don't have other highly effective methods for storing and retrieving data.
void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

I've been studying for years, yet it feels like I know very little/nothing. At least for when it comes down to advanced stuff(things I find advanced at least). What would be the best way to familiarize myself with game programming? (i.e; Graphics/sound included.)

Your question regarding to what you want to do is a bit vague. you can make a game in a game engine without understanding hard concepts. With that said, I am going to assume that you are trying to create your own engine. If this is the case, my first and foremost suggestion to you would be learning linear algebra(vector and matrix calculations) and trigonometry. you will have to face these maths in every path you take during your bumpy ride. I would suggest you to stay away from OpenGL ES 2.0 until you are capable of using matrix transformation to manipulate matrix operation of the OpenGL ES 1 manually, rather then using push and pop matrix function of the OpenGL. If you don't have a strong grasp of these mathematical concepts you are more likely to loose your motivation right at the beginning.

If you've already got decent programming skills then just start checking out libraries like OpenGL, DirectX, FMOD, etc. Really just jump in. Start making your tic-tac-toes and pongs to get familiar with your chosen libraries or engine and just keep pushing forward.

You'll have a lot of trouble. Just come back here and ask about it. We can answer specific questions as they come up better than we can give overarching guidelines for game making. smile.png
void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

This topic is closed to new replies.

Advertisement