• Advertisement
Sign in to follow this  

Starting from the basics?

This topic is 760 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello!

So I'm a Freshmen in college and been practicing my basic C programming skills. Currently i'm trying to start learning how to develop games. What comes after learning the basics? (pointers, Linked List, etc....). is there a library that should be used? am i missing something?. I understand some object oriented programming from my java class. Please any books, sites or tutorials would be great.

Share this post


Link to post
Share on other sites
Advertisement

As your very first game I would highly recommend Pong. It can include all of the very basics of a what a complex game would contain. You have simple graphics, physics, input, ai, sound, etc. These are the buildings blocks of any game out there. The complexity of each of those concepts just scales up when you want to create a bigger, more sophisticated game.
 Once you successfully create Pong, you then have a basic skill-set under your belt that you can use on other games.

 

As for what API to use, that's up to you. There are a LOT of API's for a LOT of different languages. Are you learning C or C++ in class? There are subtle differences between them that may or not not impact your project. It doesn't really matter though unless you're using a C compiler. Anyways, for C/C++ there is Allegro, SDL, SFML, D3D, OGL, Window's GDI. Java you have the JFrame/JApplet w/ the graphics library you can draw 2D stuff. Python has PyGame. You can write a game in any language that has the appropriate libraries. Even if it doesn't have graphic's capabilities, you can still make text based game ( I wouldn't recommend).

 

My personal choice would be to use Allegro, it's more than a graphics library, it has input and audio also. It's also very simple to use.

Share this post


Link to post
Share on other sites

Pong or Breakout are two extremely popular games to make when first diving into the world of game programming. They both teach user input and collision detection which are both commonly used in game programming. Take your pick! 

Share this post


Link to post
Share on other sites

So after a lot of research and your help, these are the steps that i'll be taking to learn game development:

  1. continue practicing  C (C is a basic programming language that i think is essential to maximize the understanding of code )
  2. Learn C++/Allegro ( as much as i love C, C++ is widely used and has far more tutorials)
  3. Start working on a real project that interest me.

Thank you guys for the feedback!!

Share this post


Link to post
Share on other sites

After basics? Advanced topics :)

 

C is a procedural language.

You could use it to develop games, However without OOP it's limitied and kind of annoying . (I've seen sources of games in C, They are always too static and you can really develop on top of these code bases, which is highly important for gamse). 

So the first thing is to learn C++ and OOP. (You have several languages you can pick, look at C#/JAVA/C++/Python (While I don't completly recommend python).- These are the most common).

Afterwards, learn the advanced topics such as Multi threading,networking, secuirty, GUI (Win32 is a nice library to learn). 

Of course always seek knowledge about the language you chose. It is important to know the features of the language and its libraries. 

 

This path will provide you good tools for developing software, 

Only afterwards you should look into game development.

 

Game development is not only about code.

There are different aspects of game development.

Which covers artistic (Sprites, textures, 3D models, etc)

Audio (Game sound and music).

Game design (Story, mechanics, etc..)

Managment and sales.

 

 

There are ton of things you need to learn.

Ofc the deveolpment of a game isn't that hard, if you develop a small game it would not take you as much.

But producing an high quality game takes practice and knowledge. 

And because I wrote it in this order doesn't make it mandatory, I even advise to look into game development in parallel with the software developemnt part. 

 

Good luck! 

Share this post


Link to post
Share on other sites

You could use it to develop games, However without OOP it's limitied and kind of annoying .


Damn youngins, get off my lawn! *waves walking stick*

When I started out, all games were written in assembler, which meant at best all you had was goto/gosub style jumps and subroutines.

Games were still good and it made you think carefully about how to lay out the game.

In the end it's not the language you choose but choosing the right tool for the job and being skilled in that tool. There's no reason why you can't make a game in C if you're that way inclined any more than you can make something similar to Street fighter 2 in 68000 assembler...

Good luck!

Share this post


Link to post
Share on other sites

 

You could use it to develop games, However without OOP it's limitied and kind of annoying .


Damn youngins, get off my lawn! *waves walking stick*

When I started out, all games were written in assembler, which meant at best all you had was goto/gosub style jumps and subroutines.

Games were still good and it made you think carefully about how to lay out the game.

In the end it's not the language you choose but choosing the right tool for the job and being skilled in that tool. There's no reason why you can't make a game in C if you're that way inclined any more than you can make something similar to Street fighter 2 in 68000 assembler...

Good luck!

 

 

I'm nowhere near your age, but I couldn't agree more. You can write a game in any language paradigm: OOP, Procedural, Functional, whatever. It doesn't matter. The Language is simply the tool, and sometimes there is more than one tool for the job. Assembly would be to a hand-screwdriver while high-level OOP languages would be to a powerdrill w/ screwdriver bit. Some things are just easier than others to use.

Share this post


Link to post
Share on other sites

Can't go wrong doing the games listed here:

http://www.gamedev.net/page/resources/_/technical/game-programming/your-first-step-to-game-development-starts-here-r2976

 

Surprised no one linked it yet.

 

 

 

  • Pong = Simple: input, physics, collision detection, sound; scoring
  • Worm = Placement of random powerups, handling of screen boundaries, worm data structure
  • Breakout = Lessons of pong, powerups, maps (brick arrangements)
  • Missile Command = targeting; simple enemy ai, movement, and sound
  • Space Invaders = simple movement for player and enemy, very similar to breakout with the exception that the enemy constantly moves downward, simple sound
  • Asteroids = asteroids (enemies) and player can move in all directions, asteroids appear and move randomly, simple sound
  • Tetris = block design, clearing the lines, scoring, simple animation
  • Pac Man = simple animation, input, collision detection, maps (level design), ai
  • Ikari Warriors = top down view, enemy ai, powerups, scoring, collision detection, maps (level design), input, sound, boss ai
  • Super Mario Bros = lessons of Ikari Warriors (except with side-view instead of top-down view), acceleration, jumping, platforms
Edited by BHXSpecter

Share this post


Link to post
Share on other sites

So 5 of 10 so far for me. Pong ( C ), Worm ( C ), Breakout (Lua), Tetris (C++) and Pac Man (python).
 

Edited by Spinningcubes

Share this post


Link to post
Share on other sites

 

You could use it to develop games, However without OOP it's limitied and kind of annoying .


Damn youngins, get off my lawn! *waves walking stick*

When I started out, all games were written in assembler, which meant at best all you had was goto/gosub style jumps and subroutines.

Games were still good and it made you think carefully about how to lay out the game.

In the end it's not the language you choose but choosing the right tool for the job and being skilled in that tool. There's no reason why you can't make a game in C if you're that way inclined any more than you can make something similar to Street fighter 2 in 68000 assembler...

Good luck!

 

 

In the end everything is 0 or 1.

You don't see people nailing cards like the good old times, heh? 

There are more suitable tools, Use them. 

Share this post


Link to post
Share on other sites


It was already quoted by Brendyn Todd (post #2), but as an unsuspicious "THIS" link.

It wasn't showing up as a link on my screen so I was just seeing "The only thing left after the basics is to get a game out, I recommend following THIS if you have no idea where to begin." So I had assumed he had given advice while typing it, removed it, but forgot to remove that line.

Share this post


Link to post
Share on other sites

some of this might be interesting 

 

http://www.gamedev.net/topic/674850-c/#entry5271970

What's his credentials? I don't see anything listing his experience as to know he isn't forgetting any vital details. I'd watch his things with great skepticism and caution. We could also get into the fact that most people when listening to a video or such may zone out and miss details. This is why I don't recommend videos to learn from because you can miss something, ISP issues could cause it to skip while playing, the viewer may zone out at points, and most importantly, a beginner won't know if he is explaining anything incorrectly or missing vital information that needs to be covered. Without watching the videos or knowing who the guy is, it makes the channel seem like he is learning to do it and then turning around and teaching what he just learned (a beginner teaching a beginner), which [if true] runs the risk of too many details being missed. I'd say watch at own risk for them, but that is just me.

Share this post


Link to post
Share on other sites

What's his credentials --- 
 
he developed this 
http://www.radgametools.com/granny.html
 

http://mollyrocket.com/casey/about.html

"The most significant project I’ve created to date has been The Granny Animation SDK, a complete animation pipeline system that I first shipped in 1999 and which, 15 years later, still is in active use at many top-tier game studios. More recently, I worked with Jeff Roberts and Fabian Giesen to develop Bink 2, RAD Game Tools’s next generation video compression technology, and I rewrote the movement system and helped extend the world editor for Jonathan Blow’s upcoming game The Witness."

 

 

 

"I don't see anything listing his experience as to know he isn't forgetting any vital details"
any book author could forget vital details 
any book could choose not to cover certain details for whatever reason the author chooses
and in fact, many books are published with errors that are only fixed in later editions or you have to go to the book's web site months after publication and download corrections 
 
with these videos you know the code works because you see it being compiled and running right in front of your eyes 
 
"We could also get into the fact that most people when listening to a video or such may zone out and miss details. ...you can miss something, ISP issues could cause it to skip while playing, the viewer may zone out at points,"
 
yeah, its too bad the internet doesn't have some sort of web page where all these videos are archived and people can go back and pause them and rewind them 
https://www.youtube.com/user/handmadeheroarchive/videos 
 
"a beginner won't know if he is explaining anything incorrectly or missing vital information that needs to be covered."
 
the same could be said for any book you read 
and most books don't show "production" quality anyway  
they don't do parameter checking, error checking or follow good practice 
they just show example code to get the point across 
 
"Without watching the videos or knowing who the guy is, it makes the channel seem like he ..." 
 
well, if you haven't watched any videos and haven't bothered to find out who he is then should you really be critiquing them ?

Edited by !@#

Share this post


Link to post
Share on other sites
His credentials are not in question. What is in question is the whole concept of writing a game from scratch of such scale as a newbie project.

Modern game studios don't hand roll everything from scratch for each game and unless you're just in it for the ivory tower syndrome you shouldn't really do so either.

Modern programming of any kind involves using libraries and modules to stand on the shoulders of others and complete the project in a reasonable time.

I have watched some of handmade hero and while I think it's an interesting show I stand by my statements.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement