Sign in to follow this  
Sergiu Bogdan Mohaci

Game Programming Dilemma.

Recommended Posts

Hi

I am about 30 and trying to learn as much as possible about game programming. During my University degree I am studying Computer Science for Economics. Sadly there are no programming courses in my country.
It is not possible to learn from books all there is to it right? If I run into a problem like generating a ... a dungeon for example and some 2D terrain, or even AI, this things cannot be completely grasped from books.

Any solutions to my dilemma?

Share this post


Link to post
Share on other sites
[quote name='Alkerak' timestamp='1347276769' post='4978533']
If I run into a problem like generating a ... a dungeon for example and some 2D terrain, or even AI, this things cannot be completely grasped from books.
[/quote]
A programming course does not teach you that either. Best to learn a programming language first and then start making small games. For special issues ask around in forums like this one, use [url="http://www.google.com"]your big coding buddy[/url] or your own wit [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]

Share this post


Link to post
Share on other sites
[quote name='Ashaman73' timestamp='1347278197' post='4978544']
[quote name='Alkerak' timestamp='1347276769' post='4978533']
If I run into a problem like generating a ... a dungeon for example and some 2D terrain, or even AI, this things cannot be completely grasped from books.
[/quote]
A programming course does not teach you that either. Best to learn a programming language first and then start making small games. For special issues ask around in forums like this one, use [url="http://www.google.com"]your big coding buddy[/url] or your own wit [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]
[/quote]

A programming course for games will surely teach you that. Sadly nothing like that is in my country.

Share this post


Link to post
Share on other sites
[quote name='Alkerak' timestamp='1347279354' post='4978551']
Well, I am torn between C++ && SDL && OpenGL || C# with Unity.
What is your take on this?
[/quote]

Isn't Unity $$$?

C++ is good, but from my own expierience it eats way to much time on small things.
Since i dont write stuff like Quake 4 or GTA4, Java is enough for me.

Try out LWJGL! +Java will help you with fast portability to Android platform.

Share this post


Link to post
Share on other sites
[quote name='Alkerak' timestamp='1347284316' post='4978569']
Do you guys followed a game programming course of some kind?
[/quote]

Not really, game programming is just like any other programming, the only big difference between games and other applications is that games are driven by the game loop (check for input, update state, output state to user) rather than sitting idle until an event is recieved like most other applications, if you know how to program you can make games.

Just start small and take it step by step. (I always recommend starting with a pong clone since it is about as simple as a game can be)

Share this post


Link to post
Share on other sites
[quote name='Alkerak' timestamp='1347286128' post='4978576']
I already did a pong clone.
Trouble is with algorithms.
For example I want to generate textures, or planets, or terrain ... you don't get this with a programming course.
Not even AI. These are the holes I am trying to cover.
[/quote]

If you mean procedural generation then its really just math, lots and lots of math (Fractals and random noise can be very useful for this), (You can use google to find various ways of generating for example terrain). (When it comes to procedural generation there are no right or wrong ways to do things, it all depends on what result you are after)
If you're talking about loading and rendering art assets you can look into OpenGL or Direct3D (or any game engine),

AI is an extremely broad subject (The AI for a game of chess is very different from the AI you'd want for enemies in a first person shooter), finding the best possible move is easy if you have enough computing power to analyse all possible outcomes, getting a FPS enemy to act realistically is pretty darn difficult (Most games use very simple rules for enemy AI and tweak the hell out of things to hide the stupidity of the system).
http://www.amazon.com/Programming-Game-Example-Mat-Buckland/dp/1556220782 is a pretty good book imo.

If you want to know how others have solved a problem in the past you can use google, (Just keep in mind that there are almost as many solutions as there are games, there is very rarely a single best solution to a problem) Edited by SimonForsman

Share this post


Link to post
Share on other sites
[quote name='Alkerak' timestamp='1347286128' post='4978576']
For example I want to generate textures, or planets, or terrain ... you don't get this with a programming course.
[/quote]
Planets, and terrains are generally not taught in most University courses in the US either. However, they do teach algorithms and data structures that are required for such things.

The graphics programming and AI programming is generally offered only to a limited extent at most Universities, but is more common at research schools with advanced degrees on those subjects.


For your program of study, I'm guessing they cover data structures like binary trees, kD-trees, and so forth, which are what you will use for storage. They probably also teach about divide-and-conquer algorithms, and teach applications of it such as quicksort. You can use both of them together to build massive terrains and even planets if you like.

They probably also teach you about state machines; these are the core of most game AI systems. You start in a state (idle), and have multiple transitions available and choose one based on your own rules (if HP<30% run away, if HP>50% run toward, if can hit then attack, if being attacked then defend, ...).

Once you understand the basics of algorithms and data structures, use your favorite search engine to search for the specific topic, and figure out how to apply your knowledge to them.

Share this post


Link to post
Share on other sites
Well, I study Computer Science for Economics. I dont know if we would study binary trees, kD-trees and so forth. We have Algorithms and Data Structures but I am not there yet. I presume we will study something, sadly the algorithm and data structure class is done in Pascal or Basic. So probably a waste of time since it's not C++ or some other useable language.
I am going to ask though, since you made me curious, what algorithms we would be using.

Share this post


Link to post
Share on other sites
[quote name='Alkerak' timestamp='1347287442' post='4978584']
Well, I study Computer Science for Economics. I dont know if we would study binary trees, kD-trees and so forth. We have Algorithms and Data Structures but I am not there yet. I presume we will study something, sadly the algorithm and data structure class is done in Pascal or Basic. So probably a waste of time since it's not C++ or some other useable language.
I am going to ask though, since you made me curious, what algorithms we would be using.
[/quote]

The language is irrelevant really, the concepts transfer between languages without any problems.

Share this post


Link to post
Share on other sites
[quote name='ar_lewis05' timestamp='1347292367' post='4978607']
Hi, I'm just joining and I want to get into game development. I, like many of you, I assume, have been wanting to get into game development for a long time. I am already a developer (Oracle PL/ SQL) I have plenty of experience with C++, Java, and V.NET. My problem is I really don't know where to start with game development. Can someone give me some advice on what tools you used when you started? What is a good free IDE /compiler to use. Where can I find some good beginner tutorials? Thanks in advance to anyone that can help me out.
[/quote]
I think you could start learn Unity ,C# with XNA or python with pygame all of them is easy to learn and good community and tutorial

Share this post


Link to post
Share on other sites
[quote name='Alkerak' timestamp='1347295664' post='4978625']
Well, I am starting with the Free Version of Unity but it's rather limited.
And I don't have the 1500$ to shell it out to get all the nice stuff.
C# and XNA looks good, non mac though, but no problem. I wonder if any sellable games were made with XNA.
[/quote]

Terraria and Magicka were both made with XNA IIRC ?

Share this post


Link to post
Share on other sites
[quote name='Sollum' timestamp='1347283764' post='4978568']
Isn't Unity $$$?
[/quote]
Its free, has a pro version available but your even allowed the free version in commercial projects.

[quote name='Alkerak' timestamp='1347295664' post='4978625']
C# and XNA looks good, non mac though, but no problem. I wonder if any sellable games were made with XNA.
[/quote]
Monogame is near identical to XNA, it uses C# running on mono instead of .net so works on mac, windows and linux. Terraria and bastion where both made with XNA, bastion has since been compiled under mono with monogame too.

Nokia QT is not for making games, its in fact a horrible choice for games, QT is slow, it was made for displaying windows on your screen not for animating graphics (and trust me, manipulating GUI's to make an application that needs proper 2d drawing does not end well).

[quote name='Alkerak' timestamp='1347286128' post='4978576']
For example I want to generate textures, or planets, or terrain ... you don't get this with a programming course.
Not even AI. These are the holes I am trying to cover.
[/quote]
AI is covered on some british computer science courses but its not video game related AI. THe things your asking for aren't going to be covered on any university course so unless your country censors the internet and stops books being sold then you have similar resources to us. Infact you actually being taught computer science at all means your probably in a better position than most.


Unity is a good choice though

Share this post


Link to post
Share on other sites
[quote name='Alkerak' timestamp='1347295664' post='4978625']
Well, I am starting with the Free Version of Unity but it's rather limited.
And I don't have the 1500$ to shell it out to get all the nice stuff.
C# and XNA looks good, non mac though, but no problem. I wonder if any sellable games were made with XNA.
[/quote]
Many quality games have been made with XNA (Terraria being one of my favorites ever). [url="http://monogame.codeplex.com/"]MonoGame[/url] is an open source implementation of the XNA framework built on Mono and OpenGL for cross-platform functionality. It's still early in development, but it appears to have a decent community. You could get pretty far just using XNA, then try MonoGame when you're ready to port to another platform.

Share this post


Link to post
Share on other sites
Well, while you can just learn programming and start small with tiny games and then progress uphill; this might not be the best, most-timely and most-enlightening approach. If games programming is what you want to do, study games programming.
Sadly, there are no programming courses in your country so you need to start thinking abroad, if so you can. Well, you could go for one of the most reputable, and industry-recognizable, Games Programming School...the [url="http://www.mediadesignschool.com/courses/game-art-programming/bachelor-of-software-engineering-game-programming/"][b][color=#a52a2a]Media Design School in Auckland, NZ[/color][/b][/url]. They have an outstanding 3-year software engineering (games development) program that incorporates students from all over the world.

Share this post


Link to post
Share on other sites
Well, I don't really have the money for that.
I'd love to do something like that, but the costs are to high.
Curse of living in a third world country :)

I'll look into more serious stuff than Unity. Rolling a game on your own would be pretty hard, from an artistic perspective.
I'll delve into C++ and SMFL. I found SMFL to be more easier to lear/study. Maybe even roll my own engine with it in the future.

Some online C++ game oriented courses would not hurt either.
The one at http://www.gameprogramming.org/ did not answer my application, but I found another free one that uses SDL. Also I found one that uses SMFL.

Problem is such courses do not teach you necessary algorithms. In a quick gratification culture, people usually want to see instant results, and courses like that, while they do provide the flash, they also substantially provide nothing to help you with. They dont tackle problems like AI, or procedural generation.

Ah anyway, enough with my rambling :)
Thats the situation and I must deal with it.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this