I have just started learning game design but I do not know which language to start with. I have been told that dark basic pro and game maker are a good place to start learning, but I come from an art background and I am very interested in the design aspect of gaming. Would be very grateful for any advice and what is the best way to go?
You should probably look into Unity.
This question gets asked a lot and I think the majority will recommend Python as a beginning language. First of all, you will probably need to learn at least a few languages if you do much programming. There are a few programmers that only know c++ or c, but most programmers now days know more than one. Many colleges start programmers out with Python. You really should know how to program before you can get involved in game design, so you should study a language and understand at least the basics before grabbing an engine, otherwise you will be fighting to understand programming and the internals of the engine. The engine you choose will probably use a slightly differently structured language, but the fundamentals will all be the same. Once you understand classes, you should be able to move onto whatever you want.
I don't say that's the only way, like geon said, you could just start out with Unity, or many others that are fairly easy to learn. As far as graphics go, it may be better you aren't very good at it. You can find some free models, or use cubes and spheres, and worry about designing a game instead of getting wrapped up in it. It's easy to get so involved in graphics that you forget about the design aspect. There are free sprites around, and anyone can draw some basic shapes.
If you want to get started in modeling, I would recommend Sketchup 8. Designing 3d models like buildings really doesn't have much to do with art and almost anyone can do it. You'll have to do a few searches to figure out how to use the exported models in an engine. For 2d art, Inkscape is pretty good to do some simple art. I sometimes use it in combination with Gimp, to change formats or make changes in it.
Hi, thanks for the reply. I am looking into Unity. I have a games website, and by trade I am an artist and designer, but I love technology and games so something that I can use to combine the two, with a view to learning other game languages as I go would be great!
Okay, I shall have a look into Python as well. Is Python a free language to download, and what are your thoughts on Unity as mentioned earlier?
Python is free to use, cross platform and have a very clean syntax. The downsides is that Python is interpreted and don't have compile time type checking.
Java is faster using just in time compilation and also portable. The downside is that Java was created when OOP was new to people so that functional and table driven programming doesn't fit in well.
Visual Basic is not portable but great for learning the basics of procedural programming and making in house office applications since the framework has been working since the first versions of Windows without having to change to any new flashy interface packet.
Okay, I shall have a look into Python as well. Is Python a free language to download, and what are your thoughts on Unity as mentioned earlier? Many thanks
You should look into the TheNewBoston python tutorials, if you ever searched a programming language tutorial on Youtube you must've come a cross a video of this guy, he is an awesome teacher. And after that you can do his Pygame tutorials. Then you have the basic parts of a game.
I learned via Pascal and C, but I found the biggest difficulty was getting to the point where I felt like I knew how to even start going about implementing the things I saw in my head. You can start learning with syntax and tutorials and stuff, but it can be hard to keep up the motivation unless you're actually working on something that you're personally invested in. For something like C, you need libraries to even start thinking about displaying graphics, so then you're not just learning the language but also whatever particular library you end up using.
I started in machine code, after about 6 months I was given an assembler. It was like the moment at the end of The Omen 3. A great white light came on and exploded in my brain.
No more counting instructions to work out relative branches! No more memorizing opcodes!
Did some work in Forth, still love that language. Always end up talking like Yoda though, "Use the Forth you must"
Later C came out, I looked at it and laughed at the muppets that used it. At the time I was working on early PC's and the 8086 was very,very slow at stack operations. C is a stack based language, so anything written in C was slow as a dog.
As processors advanced, that changed and I started using C
I did some work in Occam, but I could only hold 8 levels of code in my head. Enough to write fast code, not enough for the big bucks.
I guy I worked with at Digital Integration could hold 32 levels of code in his head, he got dragged off to the states on loads of money.
Then I did some work on a super computer, that required I learnt Fortran.
Used Pascal ( barf ), Ada, Java, and a few other minor languages before C++ got big and I started using that.
My point is that it's not where you start that matters, if you have the talent you will end up doing something you probably have never heard of.
On a more practical level, C# is a good clean way to start. It's free, lot's of documentation to learn from etc. You can use Unity with it, IF you must.
The format is close enough to C++ for it not to look foreign to you.