Human Resource Machine

Human Resource Machine

View Stats:
Garrett May 7, 2016 @ 9:00am
Games that teach you how to code?
Hi,

I'm looking for some good games that teaches programming in langauges similar to C# and javaScript. My goal here is to try and learn some basic programming for coding games...
any suggestions?
< >
Showing 1-12 of 12 comments
Rack May 7, 2016 @ 3:35pm 
Not really, the best way to learn to program in C# is to program in C#. Get some good tutorials and have at it. If you want to gamify it a bit the best thing I can recommend is project euler, which is a list of programming challenges arranged in order of difficulty. There are often interesting side projects to do regarding code optimisation. Though that said they are all quite mathsy problems which might get problematic if you don't have that kind of background.
tiny iota May 7, 2016 @ 6:26pm 
list of games with the "programming" tag http://store.steampowered.com/tag/en/Programming/

I don't know if any of them deal with actual languages or are more like this one. There was a game/software I saw on here a while ago that was for teaching actual programming and it was sold in lessons for ~$4 each. I dont remember the name and cant seem to find it.

EDIT: found it GTGD http://store.steampowered.com/app/269570/
Last edited by tiny iota; May 7, 2016 @ 6:26pm
Shadowspaz May 8, 2016 @ 12:55am 
I would recommend against GTGD, honestly. I got it a couple years back when I was breaking into Unity, and was horribly disappointed to discover that it was merely a collection of videos that were available for free on their site, anyway. It doesn't do anything that any other tutorial on Youtube would do.

Check out some of the tutorials by Brackeys- He builds things up very simply, explaining pretty much everything, and he has a lot of videos. In quality alone, I'd put them way above GTGD.
b0bA May 8, 2016 @ 4:36pm 
You can have a look at https://www.codingame.com
Schadrach May 9, 2016 @ 1:52pm 
Originally posted by Garrett:
Hi,

I'm looking for some good games that teaches programming in langauges similar to C# and javaScript. My goal here is to try and learn some basic programming for coding games...
any suggestions?

Not really, at least not in the way that you want.

Most "programming" games don't use major languages or don't give you much free run in them for obvious reasons. What good programming games do well though is teach the kinds of logic and problem solving you need to use.

The thing is, most languages are fairly comparable to each other, to the point that what you really want to do is learn basic data structures and algorithms in 2 or 3, and then you start thinking in terms of the underlying structures rather than the quirks of a specific language and you can pick up new tools and languages really quite fast. Training around one specific language tends to make your skills obsolete quickly.

When I say "most" languages, you can group languages into a few broad families basies on how they generally function, with most languages you are probably familiar with being "imperative" languages (C++. C#, BASC variants, Pascal, Ada, Python, Java etc -- I actually have experience with all of those but C#), while things like Haskell and LISP variants are "functional" languaes and a few are in other, stranger categories (like PROLOG).

For example, where I work I have an internal company app most of which is written in a mix of VBScript and Python (I like Python's array manipulation better so I tend to use it for things like text processing), with an app for some mobile devices written in VB for Win CE targeting Motorola Symbol devices. Eventually I'll get around to porting the WinCE app to iOS, but we're cheapos and company furnished phones are only iPhone 4s and I'm trying to use "our phones are junk" as a reason why that hasn't happened yet.

An algorithm (method of solving a problem) that works in any imperative language will generally work in any other -- the exact code is different but the underlying logic you use to get there is the same, which means that skills you develop in one can translate pretty readily to others.

http://coderbyte.com might be helpful to you though.
http://hackthissite.org too, possibly
There was another I played way back when, but it doesn't seem to be up any more, looks like it moved to http://www.mod-x.com/disavowed/whatisit.php
XWang May 11, 2016 @ 10:26pm 
There is a game called TIS-100 on steam, but I think it's about the Assembly language.
It's pseudo assembly, in other words fake. TIS-100 uses its own 'language' and won't help you with anything specific.
nemo_annonymous May 14, 2016 @ 11:46am 
Worse, TIS-100 is based on parallel processing, so it has an entirely different mindset than you typical linear programming (or even multithreading, really).

If you're serious about getting into programming, then I'd argue there are really two stages.

1) Learning how programming works
Before you can really learn the "real" programming, you really need to have the basics down solid. For loops, do loops, condtions, etc. HRM gives you an idea about what this is like, but you're going to want to get used to a "real" language first. It will feel dorky, but it's a vital foundation for later.

For this, you're going to want something that gives quick results - so an interpretive langauge like Turing, QBasic, ASP Classic, Pascal, Javascript. I'd avoid C/C++ for now because they force you to think the way the computer does. I'd avoid Python too becuase it's terrible :P

The easiest would probably be writing in javascript on a local HTML file against Firefox (so you have a vageuly decent debugger). That will let you write in any text editor, save, alt-tab to Firefox and hit F5 to see if it worked. It does have the added advantage of letting you expand into event-driven programming and give you some (limited) graphics.

The other option would be an entry-level interpretive langauge - QBasic, Turing, etc, which invovles downloads (and typically obsolete languages) but has the advantage of having a better debugger and possibly an auto-format as well.

Either way, you'll want to go through excersizes to learn about loops, conditions, arrays, etc.

Once you're comfortable with how programming works, you have two (not mutually exclusive) routes:

2a) Change to a "real-real" language and do "proper" programming. C++ and Java/C# would be the obvious choices here. C++ forces you to learn how the computer actually works and will be a painful start, but it's probably easier to go from C(++) to C# or Java than the other way. The other main option would be Java or C#. These are all languages you will find in the workplace. These will also give you the option of directly interacting with OpenGL or DirectX - NeHe's tutorials on Gamedev are good for C++ & OpenGL. This option will give you the best understanding and the highest level of control. the downside is you'll generally need to put in a (relatively) huge amount of work before you have anything meaningful to work with. Utility programs are easy, but to make a game, you'll need to write an input handler, graphics engine, physics engine, managing file I/O, etc.

2b) Change to using an Engine. As mentioned, Unity is the obvious choice - just look at the "roll a ball" tutorial to see how much you can do with Unity with very little effort. With a full engine, you've got file I/O, graphics, and maybe sound and physics handled for you, so you can focus on game logic, etc. You can get pretty big results with relatively little effort (weeks rather than months). The downside is the lack of control - if you want the engine to behave in a different way, you either need to do a lot of work, or you're out of luck. You will also probably have to learn a of of functions and features specific to the engine. Another free option is AGS (Adventure Game Studio) - you're limited to point-and-click style games, but I don't think you can beat the effort/result ratio. Ren'Py is similar, but for visual novels.

Just remember that anything worth having takes effort. Oh, and the computer always wins. Get used to it. :)
Garrett May 14, 2016 @ 1:05pm 
Thank you for you all detailed answers.
I also found this web game: https://codecombat.com - which claims to teach you how to code through an some kinda of an RPG. It got JavaScript and Python and another langauge i can't remember.

It is good for me since my aim is to know a little about progremming for games.
Have you head about this site/tried it/think it's usful?
theresajayne May 26, 2016 @ 10:58pm 
Originally posted by Rack:
Not really, the best way to learn to program in C# is to program in C#. Get some good tutorials and have at it. If you want to gamify it a bit the best thing I can recommend is project euler, which is a list of programming challenges arranged in order of difficulty. There are often interesting side projects to do regarding code optimisation. Though that said they are all quite mathsy problems which might get problematic if you don't have that kind of background.
You could try www.codingame.com
Jin May 28, 2016 @ 9:01am 
A very nice way to learn a language is exercism: http://exercism.io/
It gives you a handy command line interface to fetch and submit exercises. Each exercise comes with tests, which you have to make pass before submission, one at a time for the real TDD experience. After that, you can leave a comment on your solution and you'll usually get feedback from the community, giving you the possibility to reiterate and improve on your code.

For many languages, there are so called "koans" available, wich are basically prepared code snippets that you have to fill in.
http://www.lauradhamilton.com/learn-a-new-programming-language-today-with-koans

I can also recommend coursera, were you can find a lot of free courses in high quality. https://www.coursera.org

Many of the devs we hired at my workplace that came from a non-CS background have started their journey with ruby, which might be a good indication that it is a good language to start with.

https://www.codecademy.com/learn/ruby to learn the basics
http://exercism.io/languages/ruby to practice what you learned and get feedback
http://rubykoans.com/ to learn about the mechanics of the language

There are a lot more options though, just make sure to pick a reasonably modern language.

AGTFM Dec 29, 2022 @ 6:27pm 
Originally posted by Garrett:
Thank you for you all detailed answers.
I also found this web game: https://codecombat.com - which claims to teach you how to code through an some kinda of an RPG. It got JavaScript and Python and another langauge i can't remember.

It is good for me since my aim is to know a little about progremming for games.
Have you head about this site/tried it/think it's usful?

I did the whole game. It is fun to play, above all. It teaches very basic concepts. Good for total beginners, who want to pass 2 hours playing a game. However, if you already know if-else statements, you won't learn anything new.
< >
Showing 1-12 of 12 comments
Per page: 1530 50