Getting into it

From: Oscarvarium (OZGUR)31 Jul 2013 04:59
To: ALL1 of 25
As someone with almost no programming experience and with a view to hopefully (eventually) being able to do some games programming at some point, is there any good place to start? I'm fairly serious (or at least sleep-deprived serious) about wanting to actually learn it as a skill as opposed to looking for quick tutorials, and I've been looking at the courses available here but it's difficult to make much of a judgement on them with so little knowledge.

I'm not looking to code my own engine from scratch or anything insane like that, just to be able to make something relatively simple in an existing engine (and actually understand what I'm doing, which is where every tutorial I've ever tried has fallen down) and then build things up from there as I learn more. Any recommendations for which languages are useful, and any really good resources for learning them? I'm aware that it's good practice to start with C/C+/C++/C#/Type C negative, but is it a problem to jump straight into scripting languages considering I'm not looking to undertake any kind of massive projects?

I'm typing this while still awake at 6am with a lot of stupid shit on my mind so I'll probably expand more tomorrow.
From: Drew (X3N0PH0N)31 Jul 2013 06:09
To: Oscarvarium (OZGUR) 2 of 25
You're going to need to get a grounding in general coding stuff first of all. Forget about C and C++, these days they're for the people who want to make the game engines rather than the games.

C# in combination with Unity3D is worth aiming at. But I think if you start there you're just going to learn Unity rather than coding.

I'd very strongly recommend starting with Lua and using Love2D which is a really nice cross-platform, hardware accelerated game engine. Lua's a lovely language which will give you a solid grounding in a lot of coding principles. And Love2d's good enough that you can actually make proper games in it - it's not simply a learner's tool. It has very good documentation in its wiki and it's all very self-contained. Easy to distribute stuff you make, too.

And when you're comfortable with the way a game flows as a program you can decide where to go next. Or you could stick with Love, there's no downside really unless you want to do something 3d.

I'd avoid Python/Pygame. It gets recommended a lot for beginners but it's comparatively disjointed/disorganised, has fucking awful documentation and distributing stuff is a pain. And Python's a bit too weird/idiosyncratic compared to other languages so less of what you learn will be transferable.




From: Drew (X3N0PH0N)31 Jul 2013 06:25
To: Oscarvarium (OZGUR) 3 of 25
Oh and Javascript + Canvas (i.e. 'HTML5') might be worth looking at, too. 

Upsides: Javascript's a very flexible language. Accelerated 3D is an option (once you know what you're doing). It'll run on absolutely everything from phones to Linux PCs. And HTML5 games are probably the future.

Downsides: Javascript being such a flexible language means there's a million ways to do any one thing. Documentation is poor/dispersed and... it'll just be more of a struggle than Lua. Learning Lua first would make transitioning to Javascript piss easy though.

So yeah I recommend Lua/Love first.

From: Monsoir (PILOTDAN)31 Jul 2013 07:24
To: Drew (X3N0PH0N) 4 of 25
Agree about Python, I still don't really understand. I do get on well with C# nowadays, though.
From: Ken (SHIELDSIT)31 Jul 2013 14:30
To: Oscarvarium (OZGUR) 5 of 25
My ADD is bad today, I didn't read your whole post but I think/hope I got the general idea.  I recently decided that I and Tanner would learn how to program for XBox and Windows Phone.  I haven't started anything yet, but I do have all of the stuff needed to do it.  You are welcome to any of it (no idea if it's stuff normal people would have to purchase or not) I got from my MSDN account mostly.  I also have a pretty big shit pile of ebooks/pdf's to get started.  If you are interested let me know and I can share it with you.
From: Oscarvarium (OZGUR) 1 Aug 2013 00:09
To: Drew (X3N0PH0N) 6 of 25
That sounds absolutely ideal, cheers! I've heard a lot of good things about Lua.

Is the wiki/tutorials a decent way to learn the language or is there somewhere else that will give me a better grasp of fundamentals? I hate going through tutorials that will at some point just dump a block of code and say "copy and paste this" without explaining what any of it does.
From: Drew (X3N0PH0N) 1 Aug 2013 00:26
To: Oscarvarium (OZGUR) 7 of 25
Yeah, stick to the wiki and the tutorials linked therein.

Until you're done with them, obviously, then look elsewhere :Y

Also Love comes with a bunch of examples built in which is nice. You can have a look at their code and pull them apart and stuff.



From: Drew (X3N0PH0N) 1 Aug 2013 00:31
To: Monsoir (PILOTDAN) 8 of 25
Yeah I know a lot of people who swear by C#. I think if you can get your head round class based inheritance (which I was never able to do, prototype based makes so much more sense in my head) then it's pretty much perfect. Does all the tedious stuff for you and lets you get on with coding. 
From: Matt 1 Aug 2013 12:45
To: Drew (X3N0PH0N) 9 of 25
Prototype based makes so much more sense in my head. 

Like, seriously? Prototype-based programming isn't even real inheritance </controversial>

From: Drew (X3N0PH0N) 1 Aug 2013 15:38
To: Matt 10 of 25
Aye. Also I find it much easier to think in terms of verbs doing things to nouns (i.e. functions acting on data structures (from the outside)) than in terms of nouns containing methods to do things to themselves/other things.

And I like weakly typed languages.

I'm essentially just a terrible coder :Y
EDITED: 1 Aug 2013 15:38 by X3N0PH0N
From: Peter (BOUGHTONP) 1 Aug 2013 18:14
To: Drew (X3N0PH0N) 11 of 25
Realising that dynamic prototyped-based languages are vastly superior to strict static class-based languages doesn't make you a terrible coder.
From: Drew (X3N0PH0N) 1 Aug 2013 18:20
To: Peter (BOUGHTONP) 12 of 25
Everyone I know who's good at coding tells me that it does :C
From: Drew (X3N0PH0N) 1 Aug 2013 18:20
To: Peter (BOUGHTONP) 13 of 25
(except you (hug) )
EDITED: 1 Aug 2013 18:21 by X3N0PH0N
From: Peter (BOUGHTONP) 1 Aug 2013 18:47
To: Drew (X3N0PH0N) 14 of 25
I didn't say you weren't terrible. ;)

Most opponents to prototyping seem to be because it's unfamiliar and/or because they don't like/understand JavaScript. (And if it wasn't for JS most people would remain ignorant of the existence of it.)

Of course, if you're working in a decent language, you're not limited to one way or another, and can roll with either classes or prototypes depending on what is most appropriate for the task at hand.
(And if you're working with JavaScript... there's still class-based implementations for it.)


With regards static typing, lots of people like it because it lets them be stupid and gives a [false] sense of security when the compiler succeeds.

The same sort of people will use a 15-20 line namespaced XML file (accompanied by an even longer XSD schema) instead of just using a 1-2 line INI file.

EDITED: 1 Aug 2013 18:50 by BOUGHTONP
From: af (CAER) 5 Aug 2013 14:54
To: Oscarvarium (OZGUR) 15 of 25
I agree with DROO: learn Lua. It's a nice language, and it'll give you a good foundation to learn JavaScript later if you go that way, as it's sorta like a simplified version of it. Or at least a version without the terrible stuff.

Bonus (maybe): World of Warcraft addons are written in Lua.

And if you learn JavaScript, beware, there are many many sites that advocate terrible practices. Stick to the good parts and you'll be mostly fine, though. Also JavaScript does not belong inside any HTML tag except <script>.
From: Oscarvarium (OZGUR) 5 Aug 2013 18:32
To: af (CAER) 16 of 25
Eww, World of Warcraft...

Any good resources for starting out with Lua? The Love2D wiki links to here and here, do those look promising, bearing in mind I'm starting with essentially no knowledge of basic programming languages?
From: graphitone29 Aug 2013 21:46
To: Ken (SHIELDSIT) 17 of 25
Have you got a list of the ebooks? If you're still offering i wouldn't mind taking a gender...
From: Ken (SHIELDSIT)29 Aug 2013 21:49
To: graphitone 18 of 25
I sure do, let me get a list for you.
From: Ken (SHIELDSIT)29 Aug 2013 21:54
To: graphitone 19 of 25
This is what I have pertaining to programming. I also have hacking roomba stuff, Arduino stuff, Home Automation, and Raspberry Pi.  If any of those interest you I can take a shot of those too.
Attachments:
From: graphitone30 Aug 2013 07:37
To: Ken (SHIELDSIT) 20 of 25
Any chance you could wing me the C++ for dummies 5th edition?

I've got the MagPi ezine (all free editions) which is pretty cool for Pi related projects.