安裝 Steam
登入
|
語言
簡體中文
日本語(日文)
한국어(韓文)
ไทย(泰文)
Български(保加利亞文)
Čeština(捷克文)
Dansk(丹麥文)
Deutsch(德文)
English(英文)
Español - España(西班牙文 - 西班牙)
Español - Latinoamérica(西班牙文 - 拉丁美洲)
Ελληνικά(希臘文)
Français(法文)
Italiano(義大利文)
Bahasa Indonesia(印尼語)
Magyar(匈牙利文)
Nederlands(荷蘭文)
Norsk(挪威文)
Polski(波蘭文)
Português(葡萄牙文 - 葡萄牙)
Português - Brasil(葡萄牙文 - 巴西)
Română(羅馬尼亞文)
Русский(俄文)
Suomi(芬蘭文)
Svenska(瑞典文)
Türkçe(土耳其文)
tiếng Việt(越南文)
Українська(烏克蘭文)
回報翻譯問題
I highly recommend Unity (with C#) for jumping straight into making games. If you want to start from the ground up and build your own engine however, then C++ with SDL I believe is a pretty powerful and capable choice.
PushyPixels' Cooking WIth Unity video series are great for learning Unity, and the unity3d reddit is a great community for support or other learning resources.
JavaScript is not actually a bad choice for a first language (combined with node.js), though that is a statement that tends to draw flak. Game-wise, it is relevant to HTML5 and, as mentioned above, Unity.
If you llke JavaScript, this: http://eloquentjavascript.net/ is a good introduction to programming also (the printed version anyway, but the online version should be mostly the same). If Python, get "Heads First Programming" and/or "Head First Python".
There are numerous commercial games, even on Steam, that were done with Unity. There are tons of games written in Python, and there are Steam games written in Basic dialects (like Evochron). Heck, plenty of games are written in Flash/ActionScript and sell just fine. :)
I'd not consider C++ a low level language, but I guess it's a matter of subjective definition. I'd put it in the mid-level range. Well, a bit below Java, but definitely much higher than C or Assembly. But for a beginner, I think it's important to learn language-independent fundamentals and concepts first, and those are easier to teach with a higher level language (which also yields faster results, something I feel is important to staying motivated). The only downside is that an excellent high level language like Ruby will make it hard to like something faster, but less elegant.
Generally, though, I'm in the "learn what you like" field. It really doesn't matter which language he picks as long as it is one he finds it appealing and interesting. There is no way I would ever have learned how to program if my first exposure would have been to C. I simply didn't "get" it, so Locomotive Basic (1984'ish) was a much better introduction. In the 1990s, it would have been Visual Basic. Today, it is Python or JavaScript or Ruby.
If you want to learn a language and also play with making games, C#+XNA is really good choice.
Or learn Java for Android with OpenGL ES, you can achieve really interesting stuff with it and also developing for mobile device might be more exciting with limits it imposes. You will learn important things about performance tuning and debugging in the process.
Unity is also interesting choice, especially when you use C# for scripting.
If you want to work as a game programmer, you will need to learn C/C++ eventually, but before that you need to learn many things related to programming like debugging, design patterns, some basic algorithms, technologies and also gain experience with development of more complex applications (actually most good games are really complicated applications from programmers perspective).
It isn't really about language, its about skills you learn by learning and using them. Then with enough time you will be able to make anything in any language you pick.
Prototyping simple game ideas in Flash is pretty fast and easy once you know your way around it. You've got everything in one place, the IDE and all the drawing tools.
I think, like others have pointed out, it's more important to just pick a language (whatever that is) and learn it. Once you get one language under your belt and understanding basic programming fundamentals, it isn't that hard to switch.
The goal first is to understand programming (knowing CSS or XHTML isn't programming), understanding functions, variables, loops, etc (then later OOP principles).
So if you quickly want to have fun and make something fast, Flash and ActionScript is one good suggestion. For non-programming designers, this suggestion has worked more often, than when I've suggested learning Java, C# etc.
If you aren't that visually focused and your head doesn't hurt while doing logic problems, then, yeah, pick whatever.
With C#, you'll be able to make Windows and XBOX Arcade games right away.
With Java, you can play your game on any platform and also do Android development.
Note, Java and C# share a lot of the same syntax so going one from another is easy (if you don't include the Windows-specific graphics API).
With Python (and I really like a lot), it's such an elegant language. Lots of game dev tools for it. You'll most likely have to learn another language afterward, but it's nice (modern) language.
You could also just stick with JavaScript. Lots of game libraries for it, and even Google released a javascript-based gaming toolkit (to encourage people to play games in Chrome).
I ditto the sentiment, if you get serious and want to squeeze out extra performance, you'll eventually may have to learn C/C++, a lower-level language.
Another option is to learn Objective-C as well, for Mac and iOS development, like with C/C++ though, you have to do some careful memory management.
The primary reason why you should choose C or C++ though is: THEY ARE BOTH ISO INTERNATIONAL STANDARDIZED PROGRAMMING LANGUAGES!
If you don't know what an ISO standard is:
http://www.youtube.com/watch?v=AYBVTeqKahk
Java is currently dying, no doubt about that. Stay away from it.
Python is good if you want to learn a nice powerful language without divulging into how a basic computer works in detail.
Lua is primarily a scripting language(and good), but it's not the best one's first language to bet on if you want to make a full game.
I see a lot of others recommending C# as well, but I don't have any experience at all with it.
If you want to make a game, you have to know an entire programming language, i.e. know everything about the language to a limit of ~90%, the rest you can check up when you need to remember it. You also use a lot of other implementations that other peope have programmed, e.g. graphics libraries like OpenGL / Microsoft DirectX, which you also must learn and memorize, but to a lesser extent, because there is always a huge documentation of use, guidelines, guides, details and reference assemblies etc. Making a complete game is nothing you normally try by yourself, but it is possible, though it will take quite some time to finish the game.
The basic underlying language? That becomes second-nature and you don't even think about it.
The libraries, etc. that you use? You make sure you have decent tools, IDE's and examples and you'll never have to remember what they do, you just right-click on the command/whatever highlighted in your editor and they give you a brief summary which - once you get used to it - is enough to kickstart you back to the programming instead of the detail. In the space of my previous project, I "relearned" C99 in under a day. I took a program written for Linux Gnome desktops (which I'd never played with), stripped out all the Gnome functionality and replaced it with hand-created SDL (which I'd not used very much) to replicate the functions. The "looking up" bit consisted of having a browser window open with a function reference for Gnome and one for SDL and then doing all the hard work in-between
With my current project? I "relearned" OpenGL in a few days (learned more than I knew because last time I tinkered it was direct mode only and most of the advanced features of OpenGL didn't even exist), I learned several libraries related to hashing, encryption, compression, networking, etc. within a couple of hours each (and most of that was actually writing test code to check I was using it right, that ended up in the main program).
You have a LOT to remember, that's undeniable, but once you have the basis of the stuff you use all the time, the rest is just having an appropriate reference nearby. I find books too slow for that kind of thing (and they rarely publish full references anyway), but just an online Google'd reference or even a well-documented header file is enough to get an experienced programmer coding things up with only occasional references to check details.
I have an ATROCIOUS memory. Honestly. People have to remind me to do things several times and my brain still doesn't retain the memory. I can go upstairs literally five times for the same thing and still not come down with it. My boss even gets used to it and see my blank expression as I walk in to their office and says "It's okay, come back when you remember", and even then I'll have to come back 3-4 times to get everything I needed. But the core language? I can do that off-by-heart for almost any language I was taught (Java is huge and ever-changing and thus an exception as they are really a "library", not a core part of the language). The individual libraries I use? I have memorised the bits I use all the time but I still have to look up whether something is an int or a pointer, or what order the function arguments need to go into, etc. for almost everything.
It's not a big deal. Have a tabbed browser open in another window with some tutorials / library references / example code open and switch as you feel necessary. This is also why you shouldn't fuss too much about books and just "reading" about a language. Most of programming is learning how/when/why to use things, not just repeating things from books parrot fashion. Reading about programming is like reading how to paint. Sure it'll help out on the basics, but after that you just need to keep doing and doing and doing and no amount of reading will make you a better painter.
I'd recommend starting Java and then moving into C++ and C#. Java's great for learning in that lots of nitty-gritty details (particularly storage classes & pointer handling) are provided for you, but it doesn't provide nearly the execution speed of the C derivatives. You can make games with Java, but keep in mind that they won't run particularly fast. Not many that I'm aware of use C for making games, since C++ provides most of C's functionality but allows object-oriented programming (which Java, Python, and C# support as well). Given the list of languages you're interested in, you'll inevitably need to know what object-oriented programming is, so you may as well learn now.