Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Geek Culture / Beginner looking for guidance

Author
Message
Appljuze
12
Years of Service
User Offline
Joined: 10th Aug 2012
Location:
Posted: 11th Aug 2012 05:02
Hello everyone. I'm a beginner game programmer that needs some direction. I've been bouncing around from languages like C, C++, C#, Python and Java, and have spent only a few days on each.

I keep seeing different theories as to what is the best language to learn for making video games. And the response is always "well what do you want to make?". For me, I just want to get my feet wet, and need a place to start.

I know VERY little about coding, engines, etc. However, I know that I have a passion for games and want to carry it out. The only programming I've done is with Game Maker, which is a very basic drag and drop program. I actually got very fluent in it, and started dabbling with the java scripting feature, but slowly grew out of it.

I'm 18 now, and am ready to start getting into the real stuff. I need some kind of tutorial, book, SOMETHING that will get me started. I downloaded the NeoAxis engine, and there's a LOT of things that relate to 3D programming that I have no idea about, like Parallax mapping and crazy stuff like that ^_^

Basically, I would like to know which language would be the best one to learn first, and the best way to start learning about 3D and object oriented programming. Thanks in advance for anyone who can give me some guidance! It's greatly appreciated.

-Appl-
Yodaman Jer
User Banned
Posted: 11th Aug 2012 06:20
As someone who has experimented with a lot of languages, I highly, HIGHLY recommend learning C++.

It's versatile, it's completely multi-platform, and there are literally millions of resources and tutorials for learning it. There's some great game engines that use it, too, such as Ogre 3D and Irrlicht.

I learned DarkBASIC first, and honestly while it's a great way to learn basic game programming, it encourages a lot of bad programming habits by not allowing the use of classes, and other limitations.

However, if C++ is a little too much for you start with, then Java would be my next recommendation. It can be kind of a pain, but it's also multi-platform and again, has a million resources.

-Yodaman Jer

Not contributing much of anything useful to the forums since September of 2007.
Neuro Fuzzy
17
Years of Service
User Offline
Joined: 11th Jun 2007
Location:
Posted: 11th Aug 2012 06:36 Edited at: 11th Aug 2012 06:39
IMO, the best way to learn programming is DBPro, and the best way to learn object oriented programming is Java. I tried learning C++, but the implementation for OOP is more complicated when you have to account for memory management, so it never really clicked until I learned java then revisited C++.

You can get pretty far with Java and swing (the standard GUI), and then you can go on to LWJGL and OpenGL.

Besides that, the most important thing is to program. The problem is that you're never going to put in the hours if you're not doing what you love (and if you're not getting paid for it), so get some clear ideas of exactly what you want to make.

For every language that I've learned, I've mostly just used the internet.

So I'd say start out learning java! Fire up eclipse and start writing some graphical applications (JFrame+JPanel). A couple things I did when I started learning Java:
amorphous blob (there's a polygon draw function in the java graphics, so if you have a polygon whose vertices are like spokes in a wheel, you can change the radius by a random value as well as averaging vertices and other things to create a really cool looking blob)
Asteroids
Pong

Good things for object oriented programming:
XML parser
Minecraft save file editor (the file format is a bit complicated, you'll have to read binary data, decompress it, and then read this binary xml-like format [NBT], but it's definitely good practice and the results are awesome!)
Text Adventure (usually I just recommend this for learning the C++ iostream objects)

Besides that, if you've seen any of my programs (you can go into code snippets and compile/screw with them yourself if you want), you'll know that math/physics can give awesome ideas for programs. Try making a fractal renderer. The logistic map, the mandelbrot set, the Lorenz water wheel, lorenz attractor, driven pendulums, the three body problem, cellular automata, etc. There are all these awesome, chaotic, physical things just waiting to be drawn!

Dar13
17
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 11th Aug 2012 06:54
I answered in your other thread in Programming Talk, but I'll complement Yodaman Jer's post here instead of reposting my thoughts.

Quote: "It's versatile, it's completely multi-platform, and there are literally millions of resources and tutorials for learning it. There's some great game engines that use it, too, such as Ogre 3D and Irrlicht. "

It's also very complex, with a high learning curve.
The creator of C++ said this about it: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off". I don't say that to scare you away from it, but when you hard-crash to desktop due to a careless mistake and leak 60 MBs of memory, it's a tough lesson.

Quote: "I learned DarkBASIC first, and honestly while it's a great way to learn basic game programming, it encourages a lot of bad programming habits by not allowing the use of classes, and other limitations. "

Learning procedural programming isn't a bad thing(some would argue that it's a necessity), though DBPro can encourage using gosubs more than I would recommend. Ogre3D is particularly bad at encouraging certain programming paradigms, as its design encourages the use of singletons(which are dangerous if not used properly).

If I come across as trying to steer you away from C++/C#, it's not intentional. I just want you to have an idea of what you're getting into instead of jumping into C++ head-first and almost drown like I did ~4 years ago.

Appljuze
12
Years of Service
User Offline
Joined: 10th Aug 2012
Location:
Posted: 11th Aug 2012 08:14
Yes I posted this again because I didn't think the other one went through.

Anyway, this DBPro program you're talking about... is it a game engine? What language does it use? A few of you guys recommended that, so I may give it a shot. Considering I have little to no coding experience, delving into C++/C# seems like a foolish idea.

May I ask, what did you guys do to start out? You all seem pretty experienced, so how did you start?

-Appl-
Appljuze
12
Years of Service
User Offline
Joined: 10th Aug 2012
Location:
Posted: 11th Aug 2012 08:23
Yes I posted this again because I didn't think the other one went through.

Anyway, this DBPro program you're talking about... is it a game engine? What language does it use? A few of you guys recommended that, so I may give it a shot. Considering I have little to no coding experience, delving into C++/C# seems like a foolish idea.

May I ask, what did you guys do to start out? You all seem pretty experienced, so how did you start?

-Appl-
BiggAdd
Retired Moderator
20
Years of Service
User Offline
Joined: 6th Aug 2004
Location: != null
Posted: 11th Aug 2012 11:06 Edited at: 11th Aug 2012 11:06
Quote: "Yes I posted this again because I didn't think the other one went through."


Welcome to the forums! New members are on post moderation by default, so your messages won't appear until a moderator approves them, so if you've submitted a message and you can't see it, don't worry!

Dark Basic Pro is a very good starting point. It was the 3rd game programming language I used!
I managed to create this in DBPro with little coding experience:
http://forum.thegamecreators.com/?m=forum_view&t=134054&b=32
(This was before my degree in Computer Science)

If you are interested in picking up DBPro, I reccomend grabbing the "Dark Game Studio Bonanza", as you save $20 over DBPro, and you get a load of goodies/plugins in the box to help you get started:
http://www.thegamecreators.com/?m=view_bundle&id=54

You can try the free version of DBPro here (which is the full version but with a watermark):
http://www.thegamecreators.com/?m=view_product&id=2000&page=free


Hope that helps,
BiggAdd

Neuro Fuzzy
17
Years of Service
User Offline
Joined: 11th Jun 2007
Location:
Posted: 11th Aug 2012 11:45
Quote: "Anyway, this DBPro program you're talking about"


1) Go to http://forum.thegamecreators.com/
2) Scroll down
3) Click on any one of the 13 boards relating to Dark Basic
:3

There's Dark Basic Professional (DBPro), DarkBASIC (older implementation? I've never really used it), DarkGDK (C++ library) aaaand then gdk.net and puregdk.

My advice is - just for the wow factor - download the free version of DBPro, and then start compiling some awesome demos from the dbpro coding challenges, the code snippets board, and the twenty line challenge board.

Quote: "May I ask, what did you guys do to start out? You all seem pretty experienced, so how did you start?"

I started coding in DBPro when I was 11 or so (very poorly ) and now I'm 18 and know a good deal about a lot of languages!

Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 11th Aug 2012 13:21
Welcome to the forum!

Dark Basic Pro is an excellent introduction to programming and personally, I've loved using it. But you're looking for what's best for you. If you're thinking seriously about games programming, learning C++ would be a big benefit, but it's more complicated than Dark Basic Pro. However, there is Dark GDK, which is Dark Basic Pro but within C++, which should be an easier way into C++. Saying that, if C++ does appear to be a bit of a scary task, it's worth trying out C# first. It is a nice stepping stone into C++, it's a lot simpler, but lacks much of C++'s flexibility, as C# pretty much forces you into Object Orientated Programming (which is especially useful for games). The one downside coding-wise with Dark Basic Pro to my mind is the lack of Object Orientated Programming, but it is capable of amazing results should the user have the ability to achieve them (some goes with any other tool).

There's also AppGameKit if you're looking for mobile/multiplatform development, but currently it only supports 2D. It seems 3D is planned in the future and .NET support is too (so you could use C#). If you're going for the 'Dark' line of products. You do have the following choice:

Dark Basic Pro -> Easy to understand programming. Great for Beginners
Dark GDK.NET -> Can be used in C#, which is a nice intermediate language. I am unsure of how much support this product has.
Dark GDK 1.0 -> Used in C++, which should help you in getting used to C++ without anything overly complicated
Dark GDK 2.0 -> Not released yet. You can buy the early adopter and get the release candidate (currently RC4). This will work in a multitude of applications. C++ & Pure Basic are 2, in RC5 .NET support will be added, so you could compile in C# or Visual Basic. Alternative to Dark GDK 1.0 and Dark GDK.NET. Check out the Dark GDK section of the forums for more info.


If you want to try before you buy. There is a free non-commercial version of Dark Basic Pro and a free non-commericial version of Dark GDK 1.0.

Quote: "May I ask, what did you guys do to start out? You all seem pretty experienced, so how did you start?"


Dark Basic Classic when I was 14, upgraded to Dark Basic Pro later and joined these forums. After a long history of playing with DBPro and toying with the idea of using something else, I took the Unity3D route and started learning C# and am now learning C++ (with C++ for Dummies) and awaiting Dark GDK 2.0 RC5 to come out so I can play with Dark GDK in C# and maybe learn it in C++. My current project is in Unity3D, but I wouldn't mind starting my next one in Dark GDK 2.0.

Dar13
17
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 11th Aug 2012 14:59
Quote: "May I ask, what did you guys do to start out? You all seem pretty experienced, so how did you start?"

Started with FPS Creator(another TGC product) and then moved on to DarkBasic Professional. After a little bit there, I went on to C++/DarkGDK but I had no clue what I was doing so I went back to DBPro for a year. I know program almost exclusively in C++, though I dabble in Python and Lua occasionally.

Pincho Paxton
22
Years of Service
User Offline
Joined: 8th Dec 2002
Location:
Posted: 11th Aug 2012 16:26
If it's for a hobby use DBPro. If you want to be a professional game creator use C++, go to college.

Appljuze
12
Years of Service
User Offline
Joined: 10th Aug 2012
Location:
Posted: 11th Aug 2012 21:13
I downloaded the DBPro program. This may sound incredibly stupid, but is this just the "code" part of it? I don't see an editor or anything like that, just a window to code in. Also, what language does DBPro use? Is it its own language?

-Appl-
Yodaman Jer
User Banned
Posted: 12th Aug 2012 02:44
DBPro is not a game engine like Unity3D is, or UDK or what-have-you. It's just an IDE and compiler that takes the programs you've written and puts them on-screen. If you want to make a game engine with it, you theoretically could, but it'd be kind of a pain.

And yes, DBP is its own version of BASIC, designed for game programming.

-Yodaman Jer

Not contributing much of anything useful to the forums since September of 2007.
Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 12th Aug 2012 03:00
Basically it's a programming language built in with its own library dedicated to DirectX applications (and therefore, games, but it can be used for other things). The language is based off of basic. But yes, you're going to have to code with it, no editors - at least natively, but some people have coded their own - I use MapScape as a level editor (for example) and it imports my maps into Dark Basic seamlessly. But if you're thinking of learning to program, particularly with going into other programming languages, it's actually a pretty nice and easy introduction and many of the more complicated aspects are simplified and made easier to understand. If you learn Dark Basic Pro, you can use Dark GDK as a stepping stone through C# and onto C++.

But you're 18 and if you're serious about this (professionally), as Pincho Paxton says, you'd probably need to go to university. A Computer Science Degree seems to be a popular choice, I've never done one (because this is a hobby for me) so I don't know what it's like or its benefits in the job market over say...a game design degree or games programming degree. Jeku always seems to be more informed about that kind of thing.

Appljuze
12
Years of Service
User Offline
Joined: 10th Aug 2012
Location:
Posted: 12th Aug 2012 03:08
Yes I'm very serious about it. I'd just like to get my feet wet before I go to university, so I don't look like an idiot ^_^

So you guys recommend starting with DBPro, then moving to Dark GDK, then C# and eventually to C++?

Also, do you know of any books that I can read that would further explain things about IDE's and API's (all I know is what the acronym is for, I have no idea what they are). Or will I just pick up the knowledge of these things as I learn DBPro?

-Appl-
Kezzla
16
Years of Service
User Offline
Joined: 21st Aug 2008
Location: Where beer does flow and men chunder
Posted: 12th Aug 2012 06:04
Hi appljuze,

I think the best place to start is with the actual help files in the dbpro editor(I.d.e or Integrated development environment)

just press F1 and start at the top and read down. there is much useful information there.

then move onto tdk's tutorials. they are a goldmine of DBPro information.
http://forum.thegamecreators.com/?m=forum_view&t=99497&b=10

check out the code snippets board to find code you can run and pick apart to learn from.

Give it a go and when you are stuck ask questions in the newcomers forum. There are lots of skilled programmers in there who will help you.

have fun and happy programming.

kezzla

Sometimes I like to use words out of contents
Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 12th Aug 2012 12:20 Edited at: 12th Aug 2012 12:24
Quote: "So you guys recommend starting with DBPro, then moving to Dark GDK, then C# and eventually to C++?"


In my opinion that makes for a nice transition, but of course you'll end up doing what you feel most comfortable with. In theory, there's no reason why you couldn't just jump into C++ & Dark GDK, the difference is, you'll just have more to learn before you chuck out your first project and you'll be learning C++ commands and Dark GDK commands. I started with the Dark Basic route because it was a lot easier for me to get to grips with. I was coming from the drag and drop background, not Game Maker but The Games Factory, so I had plenty to learn. Plus I was 14 .

Once Dark GDK 2.0 is released I will be writing some C# tutorials for it. I am working on some other tutorials on my site as well, but are unfinished. So I hope some of these might be helpful. Link.

Though, to note, if you're looking at my DBP beginner's series (only a menu tutorial so far), my coding style is quite different from typical DBP tutorials.

However, TDK's set are pretty good and deffo worth looking at, so it's a place to start. Once you get to learn some syntax, pull out the help files and experiment, the commands are well explained and simple to understand.

There's also Daniel Foreman's Dark Principles Tutorials on YouTube. Here is his channel.

Hope this helps.

greenlig
21
Years of Service
User Offline
Joined: 30th Aug 2003
Location: Melbourne
Posted: 12th Aug 2012 12:50
If you want to be a good games programmer, you need to be a good regular programmer first! It's an entire process of learning a new language, with it's nuances, intricacies, and accepted paradigms. For most languages, particularly Object-Oriented (C/++/#, Java, etc) and Procedural (DarkBasic, Basic, etc), a lot of the core principals are the same. It's just a matter of getting those pillars right, and the rest can be extrapolated out.

The BEST place to start, IMHO, is to get reading up about programming, it's history, and how we got to where we are today. Try the computer programming wiki entry , and just give yourself a good grounding in what it is. Research is a fantastic thing, and a good programmer does this.

It's easy to get overawed by the whole thing, as "games programming" is such a large topic, with infinite possibilities. I suggest you start small, and learn the basics. THE BEST place you could start is at Code Academy. That will take you through the basics, and help you understand the core principles.

You are starting a fantastic journey, one filled with excitement, wonder, and not a little confusion at times. Enjoy it, immerse yourself in it, and learn what it really means to be a good programmer. With that, you can go anywhere.

Good luck, and God-speed to your first "Hello World"!

Greenlig

Your signature has been erased by a mod as it is far too big.
Neuro Fuzzy
17
Years of Service
User Offline
Joined: 11th Jun 2007
Location:
Posted: 12th Aug 2012 13:54
Quote: "so I don't look like an idiot ^_^"

You can ALWAYS find a person to compare yourself to who will make you look like an idiot. I know a couple people going into uni without ANY programming knowledge. Think of it this way: What's the fastest way you'll learn? Not on your own that's for sure! (learning on your own is a great route, it just doesn't compare to the pressure of class deadlines)

Quote: "So you guys recommend starting with DBPro, then moving to Dark GDK, then C# and eventually to C++?"

Dark GDK is a library for C++. Basically, normally in C++ calling the command:
"dbMakeObjectCube()" wouldn't work, because C++ doesn't know what that command is. You have to "include" Dark GDK to get it to run.

Quote: "is this just the "code" part of it? I don't see an editor or anything like that, just a window to code in."

That's an editor xD
Yeah, just code. That's what programmers do. Level designers, artists, and other game industry people use tools that do things like lay out levels and texture things, but the core engine is built from code!

Quote: "Also, what language does DBPro use? Is it its own language?"

Go into the help files, run through the "introduction" section and the "getting started" section, then run through the "principles" section. The principles section especially will be incredibly useful for you to keep referring to.

Quote: "[...] Or will I just pick up the knowledge of these things as I learn DBPro?"

You'll pick up the knowledge as you go, don't worry about it!

Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 12th Aug 2012 14:23 Edited at: 12th Aug 2012 15:40
I noticed in the first post you said this:
Quote: "the best way to start learning about 3D and object oriented programming"


Dark Basic Pro is procedural and can't do Object Orientated Programming. However, using C++ with Dark GDK you can and in C# you're pretty much forced into it.

For C++ I have 'C++ for Dummies', it's a nice beginner's guide to getting over the main concepts in C++ and I am reading through it at the moment and following its tutorials. The nice thing is, it ends on object orientated programming and goes into depth with classes. I've also got C# for Dummies by the same author but didn't end up using it.


But as said, no harm in starting University without this prior knowledge, but until you start get accepted into a Uni, getting ahead start is awesome. I get the feeling C++/C# might sound like what you're looking for. Dark Basic Pro is a great introduction to programming and a fantastic and powerful tool. Good news is Dark GDK has a free version, so I think it's worth giving it a try and see how well you do at learning to use C++ and then maybe you can work out what would be the most comfortable direction. I would say, you don't need to learn an easier language first just to get into C++. Again, it just depends on you. I think Dark GDK would definitely make life easier than the alternatives in C++.

And on the plus side, this forum is great at offering support, should you get stuck, people are usually more than happy to help out.

[edit]
Here is a simple example from Dark GDK in C++ (to give an idea of what it looks like) - this is taken from the samples included with the package:


Of course, that's a fairly basic example, a full game would be complex, but you can see the code above is pretty straight forward, even if you don't understand it yet.

In Dark Basic Pro this is the equivalent:



Login to post a reply

Server time is: 2025-05-18 18:51:49
Your offset time is: 2025-05-18 18:51:49