Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
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/
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.
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
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. :)
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?
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.
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.