Our new Indie Games subforum is now open for business in G&T. Go and check it out, you might land a code for a free game. If you're developing an indie game and want to post about it,
follow these directions. If you don't, he'll break your legs! Hahaha! Seriously though.
Our rules have been updated and given
their own forum. Go and look at them! They are nice, and there may be new ones that you didn't know about! Hooray for rules! Hooray for The System! Hooray for Conforming!
Learning programming for game developing
A few friends and I were trying to develop a few games a few months back. We didn't have any illusions of making grand 40 hour long 3D action beat 'em up games on our first try so we tried to start by making low scale, short JRPGs. So when we tried to start 'developing' our first project on RPG Maker(lol) we found out that even modifying such a simple engine like that was way beyond our abilities. Subsequently, we said 'fuck it, let's actually learn how to program shit and actually develop it properly, no matter how damn long it takes. For the FUTURE.'
So can you guys recommend me on what programming language we should start on and why? I recognize the fact that it'd take a lot of effort and probably years till we're actually able to develop anything recognizing a game by the way. We're trying to develop games for the PC if that helps. Thanks.
0 •
Posts
python is good, it's accessible, it's dynamic and useful in a non-novel way, it's adored by the internet and so there is a crapload of documentation...
you're going to get people who will give you every imaginable answer but i think python's a good start and that's a good (free) e-book.
http://msdn.microsoft.com/en-us/library/bb200104.aspx
you will still need to learn a language but those little programs help knock out proofs of systems to give you a baseline to work out from
After that, you might try implementing a board game or card game in text. Once you have the game mechanics all together, pick up Pygame, and learn how to give it an actual interface and graphics. I'm personally a fan of these because I can't draw my way out of a wet paper bag so I can still make something that looks like something. Make a couple such simple games moving towards games that are more demanding. Such as going from card games, to a real time game. Tetris as Sir Carcass suggested is an excellent one, the rules and UI are simple and well, but if you can make a good Tetris clone where the controls don't feel sluggish, you'll be doing pretty well.
Python isn't used for terribly many games, among other reasons because the source code is so easy to get. Most python programs run directly from source, but even a 'compiled' Python program can be easily reverse compiled with high accuracy using programs found on the internet. You probably won't want to use it for anything you release unless you don't care about that. However, if you've knocked a few playable games in Python, you'll be ready to pick up another language, and programming concepts transfer between languages very well. All you have to do is learn the new syntax. C# with XNA are currently pretty hot for game development. It works on both Windows and Xbox 360 with not much modification. If you're a student at a college or university of any size, you should be eligible to sign up for Dreamspark which gives you access to free Microsoft software you'll need, such as Visual Studio or XNA game studio, as well as I think a free month or year of entry into the Xbox game developer thing you'll need to be in if you want to be able to try and put any games you make on your Xbox. I believe it's $100 a year without that.
That said, if you don't know how to program at all, C# and XNA are going to be way over your head. I'd second Python as a good starting point, or maybe dive straight into C# but start off learning to program in general rather than trying to learn how to write a game straight away.
Also, you can get the tools necessary to write a game with C# and XNA for free regardless of educational status. Visual Studio 2010 Express for C# is a free download from Microsoft, as is the XNA kit. Putting stuff up on XBLA will cost you money for licensing, but you can be set up to write code and work through tutorials inside the couple of hours required to download and install VS Express and the SDK. And while I'm not sure how the transfer to Xbox works, you can compile and run XNA games on Windows, and get a 360 Wireless Controller Adapter to play anything you write with a console controller if you want.
Learning how to program a game is an excellent way of learning to program. That's how I did it. You just need to choose a simple game, and accept that it won't be worth even showing anyone. Pong, yes, Final Fantasy:The Next Generation, no.
I'd agree with this, I've been working on a small project in it for a while in my spare time and it's pretty great for when you want to try making your first game. I don't think it's the best for learning coding fundamentals though or picking up the skills you'll need to really do design, although there could be some great tutorials out there that I just kinda skipped over.
Ruby is another great option along with Python if you wanna try your hand at knocking up something easy and text based, or just want to try doing something simple and useful programmatically. The syntax is about as forgiving as possible and it's really easy to get started.
Although it's Java, and may be a bit over your head at the beginning, the AP Marine Biology Case Study is actually a pretty cool introduction to object oriented design and some programming basics, which strongly overlaps with C#. It's what's used to teach AP Computer Science classes in high school, the biggest barrier to learning it is getting it all together and getting it to run.
A couple of more questions please:
Can anybody recommend me a book or few about programming? Will I be good with only the Invent With Python book recommended by Organichu?
Other than the source code issue, what makes C# and XNA better for making games over Python? How do others not mentioned (C++, Java) fare in programming for game development, and why?
At what point would it be doable to switch to C# from Python?
you can make a game with almost anything. but you seemed unhappy with the process of using what is basically a drag and drop 'game generator', and suggested that you wanted to learn to actually code. for that, the question's a little different.
though you could make a game with all of these languages (eventually), my position is that python offers the best mixture of accessibility to the beginner with immediate gratification (you can make basic games almost immediately)... while lacking the sort of 'handholding' you see in xna and other huge, graphical game development suites.
if you find that book a little bit 'ahead' of you, i'd advise the previous version too which is also on that site (and focuses on rudimentary game creation, without the pygame framework).
XNA is good because you'll at least get something on the screen before you inevitably hit a brick wall in not knowing how to accomplish something, which will help you not abandon things altogether
Python's game engines are a mess of abandoned/rarely maintained projects and Python on a Windows environment is less than enjoyable
Java and Slick (win, linux, mac, andriod)
C# and XNA (windows, xbox, windows phone)
C/C++ and SDL (win, linux, mac)
Flash (web)
Lots of people suggestion python, and it's good for learning - but for actual game making, it's bottom of the barrel for many reasons... Instead of that, I would suggest Flash as it has better third party support [for game developers] and easier to deploy to your users.
This has been my experience too.
---
As far as actual game development, work on one thing at a time. Learn how to do it. For example, creating and loading a map with something like tiled (mapeditor.org). Then add player and NPCs, etc.
Chances are, it'll eventually turn into a huge mess that is hard to manage. This is good, this means your learning. By this point you should know your way around the landscape (syntax, working with the engine, libraries, some basic file formats, rendering, etc). This is were you should scrape it all and start learning design patterns and rebuild it into a more manageable state.
I agree entirely.
Learning to program is one thing.
Learning to program with the goal of programming games is quite another.
Python isn't going to be much use to him/her at all if they want to make games.
I'd say C#/XNA is the way to go.
I disagree with it being "Way over their head"... it is definitely more beginner friendly in a lot of respects compared to C++.
Another option might be objective-C for iOS.
While it isn't the easiest, there is an enormous amount of support and documentation out there.
Really, if you want to make an actual VIDYA GAME, there isn't a quick and dirty solution or everyone would use it.
There's going to be a lot of technical stuff to slog through.
tl;dr DON'T start with Python. Try C#/XNA first.