How to start writing games (includes exhaustive list of options)

Moderator
Posts: 679
Joined: 2002.11
Post: #1
I looked around for a good article or thread about how to start learning how to write games and couldn't find one I liked, so I wrote my own. Please feel free to give feedback, or just let this topic sit so that someone will find it while Googling.

Go to the article

While the thread How to get started in game development! was originally intended to serve this purpose, I don't think it succeeds. It separates languages from libraries, which I think is a big mistake, since the libraries determine the usefulness of a language for game development! Also, it doesn't give any real advice for making a choice. There are too many options, and the list doesn't actually cover the good options for new programmers. I tried to take some extra steps with my article and evaluate a few different libraries that I thought were good for new programmers, and I provide an exhaustive list of currently maintained frameworks.

I won't paste the whole thing here, but here's part of the introduction:

Quote:You may have already thought of a game you want to make. If you want to make that game, it’s probably best for you to let the idea sit for a while and just take a look at your options. Spend two weeks trying out the tools I list here and see what you like. When you’ve done that, you might know enough to start making that game. You might find that you don’t know enough yet, but the best way to overcome that is to start making games anyway, starting small and building up as you go.

I won’t bother telling you how to go about learning. There are plenty of other articles that can do that, and ultimately, you know best about how you learn. Remember, Google is often the best tool for finding information, so use it!

First, I’ll define some terms so you know what I’m talking about. Then I’ll go over a few questions you should ask when checking out a new way to make games. After that, I’ll talk about a few frameworks I think are good for budding game programmers (and experienced ones!), give you my opinion about the one I think will serve you best, and recommend some next steps for when you’re comfortable with your first programming language. Finally, I’ll list all the frameworks I could find that are worth using.
There's probably bias scattered all over the article, but I did my best to be objective. Please tell me what you think, especially if you think that another language+framework belongs in the beginner recommendation section.

My web site - Games, music, Python stuff
Quote this message in a reply
Moderator
Posts: 3,570
Joined: 2003.06
Post: #2
Seems like a decent little article. I did notice a couple of issues though:

Quote:A compiler turns your code into machine code which will run on only one platform, meaning that you will have to make a different version for every platform you want your game to run on.

An interpreter turns your code into “bytecode” that will run on many platforms, but not as fast. Usually the speed hit is not significant, but your game will be bigger because you must usually include the interpreter in the app.
Both compilers and interpreters compile code down to bytecode or machine code. Interpreters are able to compile and execute line by line, whereas compilers compile to file to be executed later. Bytecode executes through a VM (often cross-platform), and machine code executes on the CPU (not cross-platform). Scripting languages compile to bytecode for use on a VM, and traditional languages such as C and C++ compile to machine code for use directly on the CPU. Some scripting languages, such as Lua, offer both an interpreter and a compiler so you can execute code either on the fly, or later from compiled bytecode. Because scripting languages execute through a VM, they aren't as fast as languages that compile to machine code, but are often very close in performance, and usually much more flexible and easy to work with.
Quote this message in a reply
Moderator
Posts: 679
Joined: 2002.11
Post: #3
You're right, of course. I was thinking more about compiled languages vs interpreted ones and mixed up my definitions. I'll fix it when I get home from work.

I don't want to quibble over definitions too much. Now that I think about it, those definitions don't need to be in there at all, except perhaps to assure the reader that interpreted languages are fast enough to write games in.

Edit: Fixed. The new definition should be more accurate and helpful. I also added a link to an "Invent Your Own Games in Python" book to the kids section.

My web site - Games, music, Python stuff
Quote this message in a reply
Member
Posts: 749
Joined: 2003.01
Post: #4
Wow my absolutely first impact with game dev was with SilverCreator too! I had forgotten about it!

That was insane. I remember it started struggling with 10 sprites or so, you had to write code in a tiny little box...

It was insanely buggy still I managed to make a very very basic shoot'em up prototype, my first ever non-console program. I remember realizing "ah, so a game is basically a loop executed every frame!".

After a few days I found TNT Basic that despite its limitations was hugely better at the time.

Back to the topic, blitzmax is $80 afaik, other than that seems good.

©h€ck øut µy stuƒƒ åt ragdollsoft.com
New game in development Rubber Ninjas - Mac Games Downloads
Quote this message in a reply
Moderator
Posts: 679
Joined: 2002.11
Post: #5
Thanks for the correction. Fixed.

It's really a shame that TNT Basic wasn't maintained. As far as I can tell, there are currently no good, free tools that actually make game development decently easy for beginners. The things I list are pretty good, but each one has a weak spot of some kind.

My web site - Games, music, Python stuff
Quote this message in a reply
Moderator
Posts: 3,570
Joined: 2003.06
Post: #6
You still didn't get the "compiler" and "interpreter" language thing correct -- and no it's not a quibble, and I'm really not trying to be a pest Wink

The distinction between the two main types of languages you're trying to describe has nothing to do with whether or not they have a compiler or an interpreter. Instead, the distinction is that some languages execute directly on the computer's CPU, and some languages execute in a separate, specialized program, often called a virtual machine, or VM for short.

I don't know of an actual term for either of them, so let's make up two terms for now:

- Virtual languages (often called "scripting languages", but not always)
- Machine languages (I know this is twisting the term, but examples would be C/C++)

Virtual languages are like Python, Lua, Ruby, Java, Javascript, C#, etc., and they can be executed in *many* different ways, but always require the use of some sort of virtual machine. Some virtual languages have an INTERPRETER. Some have a COMPILER. Some have BOTH. The ones that have both, have an interpreter that is really a compiler which compiles and executes one line at a time. The ones that only have an interpreter only use text as input, executed line by line, and may either "compile" each line of text into bytecode and pass it on to a virtual machine or execute it internally using other means.

My point here is that compilers don't always turn code into machine language; they can turn code into bytecode as well, so it's not a good way at all to distinguish between these two types of languages. The correct distinction, put simply, is: runs on the CPU, or runs through a Virtual Machine.
Quote this message in a reply
Moderator
Posts: 679
Joined: 2002.11
Post: #7
Honestly, I don't even know why I bothered to include them in the first place. I should have known better. They're gone now.

My web site - Games, music, Python stuff
Quote this message in a reply
Nibbie
Posts: 4
Joined: 2009.10
Post: #8
http://www.silvercreator.net/downloads/S...r2.0a1.zip

If you haven't checked out SilverCreator, it might be time to take another look.

This is the newest version, over 5 years in development because I've taken off so much time in between.

It's only an alpha, so don't judge it yet. Great things are coming soon.

My goal is to get SilverCreator to a level similar to TNT Basic, but still maintain the classic card-based style for those who want an easier system.

The download above is a Universal Binary, and includes a Univeral Binary Mac Runtime so you can compile your games.

Good to see you are still around Diordna!
Quote this message in a reply
Member
Posts: 194
Joined: 2009.02
Post: #9
I used GameMaker to make games(such as the venerable Luke Nukem 2D, for those of you who download from aol games back in the day) when I was just a kid, before learning how to code.

This program is not simply inspired by GameMaker, it is GameMaker- albeit with a number of bells and whistles attached.

How, in good conscience, can you release this program as your own?
Quote this message in a reply
Nibbie
Posts: 4
Joined: 2009.10
Post: #10
NelsonMandella Wrote:I used GameMaker to make games(such as the venerable Luke Nukem 2D, for those of you who download from aol games back in the day) when I was just a kid, before learning how to code.

This program is not simply inspired by GameMaker, it is GameMaker- albeit with a number of bells and whistles attached.

How, in good conscience, can you release this program as your own?


Hey, I remember your games! I was on AOL starting in December 1999 and right until the end when AOL closed down the forums and the GM SIG.

I have a good competitive relationship with Al and I have no qualms about admitting that SilverCreator is directly based off the concepts of GameMaker - but please don't insinuate that I stole code from GameMaker. That is completely false, not to mention they are both written in completely different languages.
Quote this message in a reply
Member
Posts: 194
Joined: 2009.02
Post: #11
Mike Richardson Wrote:Hey, I remember your games! I was on AOL starting in December 1999 and right until the end when AOL closed down the forums and the GM SIG.

I have a good competitive relationship with Al and I have no qualms about admitting that SilverCreator is directly based off the concepts of GameMaker - but please don't insinuate that I stole code from GameMaker. That is completely false, not to mention they are both written in completely different languages.

I certainly did not intend to insinuate that you stole code. What I meant to say was that you "borrowed" the essence of the gamemaker program, refined parts, made a few changes here and there, and then gave it a new name. Which is totally fine by me, I'm all for innovation in all its forms.

And as to the two being written in different languages, that would be besides the point, since one can write pong in pascal or assembly and it will still be pong (even if add in a feature liked colored balls or whatever).

Also just curious, what games were you responsible for back in the day?
Quote this message in a reply
Nibbie
Posts: 4
Joined: 2009.10
Post: #12
NelsonMandella Wrote:I certainly did not intend to insinuate that you stole code. What I meant to say was that you "borrowed" the essence of the gamemaker program, refined parts, made a few changes here and there, and then gave it a new name. Which is totally fine by me, I'm all for innovation in all its forms.

Originally, yes, this started out as a pretty cut and dry GM clone, but both GM 4.0 and SC 2.0 are going in different new directions, I think.

There were tons of GM clones made starting with SC. I think SC is the only one that has survived. It was even shipped on Al's Game Creator CD.

NelsonMandella Wrote:Also just curious, what games were you responsible for back in the day?

I wrote "Dude", which had the honor of being featured on Perversion Tracker, and "Whendoes 98 Pro" and "Whendoes 2000", which both fared a little better.
Quote this message in a reply
Apprentice
Posts: 9
Joined: 2008.09
Post: #13
And I thought you weren't going to announce anything.

Hey Mike Wink
Quote this message in a reply
Nibbie
Posts: 4
Joined: 2009.10
Post: #14
WarHampster Wrote:And I thought you weren't going to announce anything.

Hey Mike Wink


This is just a small teaser I guess. There's still a lot of coding yet to be done.
Quote this message in a reply
Post Reply 

Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  Writing libraries vs writing apps. Najdorf 8 4,752 Nov 13, 2008 02:32 PM
Last Post: backslash
  Animated Sprites Games under Mac OS X - Where to Start ? Trax 11 6,324 May 1, 2005 09:10 PM
Last Post: Dan Potter