The focus of this thread is now 100% Python, as Java probably isn't for me at all.
1. What is a good Python IDE? Is IDLE fine enough for starting out?
2. What is a good place to learn it? Youtube tutorials are fine, but avoid TheNewBoston.
1. What's a good place to start or learn? Youtube videos don't help me in the absolute slightest, but rather had me watching them for 6 months to learn nothing.
Well for one written tutorials or books are much better than some video by an amateur teaching you to be an even worse amateur. I've yet to see a video of coding that was just floating around youtube that was actually made by a programmer competent enough to teach.
Second if you've been "coding" for six months and haven't learned anything then you need to stop watching and try actually typing out some code.
2. I can be a slow learner when it comes to stuff like this, but I am not sure. How long could it take me to learn? I want to learn simpler things like forge modding and simple programs.
A billion years. Next i'll tell you when you're going to grow to be 8 feet tall.
3. Is it more worth it to learn Python or Java for long-term use (When i'm bored of modding Minecraft?)? Learning both would only confuse me to be honest.
Programmers learn many languages. I personally avoid Java, for game development its a pretty lame language.
Why exactly is Java bad for game development? Of course that's a long-term goal, and for now I want to stick to the simple things, but what makes others better exactly?
Why exactly is Java bad for game development? Of course that's a long-term goal, and for now I want to stick to the simple things, but what makes others better exactly?
Performance? Engines and libraries? Community involvement?
Java is not a language used for games, besides Minecraft it is an almost utterly unused language for that purpose. C# has a huge popularity boost from XNA, Python is used a lot because of its simplicity mixed with pygame. C++ is.. yeah..
Why would you use Java if there are much better options available.
Though I'm not really sure what Java is used for anymore anyway since it is slowly becoming extinct in browsers due to a horrible security track record and there being much better things available.
Performance? Engines and libraries? Community involvement?
Java is not a language used for games, besides Minecraft it is an almost utterly unused language for that purpose. C# has a huge popularity boost from XNA, Python is used a lot because of its simplicity mixed with pygame. C++ is.. yeah..
Why would you use Java if there are much better options available.
Though I'm not really sure what Java is used for anymore anyway since it is slowly becoming extinct in browsers due to a horrible security track record and there being much better things available.
Python is actually useful for game development? Isn't it a scripting language?
Python is something i've also been interested in learning, as it's very simple to me. Tell me more!
Python is actually useful for game development? Isn't it a scripting language?
Python is something i've also been interested in learning, as it's very simple to me. Tell me more!
Any language can be used as a scripting language, it's a full fledged language you can run stand alone programs with through the interpreter.
Of course its performance is pretty bad unless you switch to something like stackless python but it definitely has a lot more game development interest than Java IMO. Just look into pygame.
Any language can be used as a scripting language, it's a full fledged language you can run stand alone programs with through the interpreter.
Of course its performance is pretty bad unless you switch to something like stackless python but it definitely has a lot more game development interest than Java IMO. Just look into pygame.
What exactly do you mean stackless python? The normal default Python isn't great for game development by Pygame is? And are they much different from eachother or is Pygame just an "extension" to Python, and people who know Python can easily learn this Pygame thing?
Tons of questions I know, but this stuff confuses me a bit.
Why exactly is Java bad for game development? Of course that's a long-term goal, and for now I want to stick to the simple things, but what makes others better exactly?
Really it boils down to "why do it in java when you can do the same thing with less effort in C#".
3. Is it more worth it to learn Python or Java for long-term use (When i'm bored of modding Minecraft?)? Learning both would only confuse me to be honest.
Every language is worth learning long term, unless it is long 'dead' outside of niche fields (C, assembly, basic) or is garbage and/or on it's way out (perl, possibly ruby/rails if trends I'm hearing are true).
Python is hugely versatile, ESPECIALLY if you go into back-end web development. Youtube uses it, yahoo uses it, reddit uses it (and you can look at the source here), gmail uses it, as does google maps and I'm pretty sure twitch uses it in some manner.
Java is just as versatile (a bit less so for web/backend) however it is slowly being 'replaced' by C# and .net for many, many reasons. Do not be fooled, C# is just as cross platform as Java is, being developed by MS means nothing. (PS4 runs on BSD for instance and the main language used for games is C#).
Really it boils down to "why do it in java when you can do the same thing with less effort in C#".
Every language is worth learning long term, unless it is long 'dead' outside of niche fields (C, assembly, basic) or is garbage and/or on it's way out (perl, possibly ruby/rails if trends I'm hearing are true).
Python is hugely versatile, ESPECIALLY if you go into back-end web development. Youtube uses it, yahoo uses it, reddit uses it (and you can look at the source here), gmail uses it, as does google maps and I'm pretty sure twitch uses it in some manner.
Java is just as versatile (a bit less so for web/backend) however it is slowly being 'replaced' by C# and .net for many, many reasons. Do not be fooled, C# is just as cross platform as Java is, being developed by MS means nothing. (PS4 runs on BSD for instance and the main language used for games is C#).
For other languages there are similar parables.
I see, so Python it is I guess. I'll learn Python as much as I possibly can, and get into Java (Which should be easier after learning Python) if I ever feel like doing some forge modding.
Everyone wants a .net dev right now, and I'd see it replacing java in 5 years time.
Plus the C# syntax is extremely close to Java, if you really wanted/needed to swap over it'd only take a little getting used to.
Ah, I see.
Python looks like it should be good for learning. Where do you think I should start learning? I'd prefer reading something than watching a video.
Eclipse is certainly more standard, I don't even know what the second one is.
IntelliJ IDEA blows pretty much every IDE out of the water. Primarily because it's by JetBrains- the same guys behind PyCharm (Best Python IDE), WebStorm (Best PHP IDE) and Tools like ReSharper.
However, it's not Free, which I imagine takes it off the table for most.
unless it is long 'dead' outside of niche fields (C, assembly, basic)
I'm not sure I fully agree with this. The reason I say this is primarily because I think one of the reasons I got my current Job Is because I can recognize and use THEOS BASIC, partly because I recognized the Syntax from a 1985 College TextBook which covered VAX-11 BASIC. Now to be fair I never actually wrote anything in that Language, but I had 'experience' in that I was able to look at it and go "hey, this looks like VAX-11 BASIC". Apparently, most other applicants couldn't identify it as BASIC, let alone a specific dialect.
Point being that if somebody get's a development job, it is unlikely to ever be a game developer or some exciting application development. The main thing, especially for an entry-level position, is going to be dealing with legacy products, and trying to move them to a new platform. This requires experience in the new platform (eg. C#/.NET in my case) as well as the ability to read, understand, and get a good handle on the old (in my case, THEOS BASIC). You cannot simply turn your nose up at those older programming languages because they are still at the core of most businesses. Point -of-Sale, Inventory Management, Time Clocking, etc. are often done primarily with Software, and that software is often written for older systems. I wouldn't call more than half of the current C# development market a niche.
In terms of C#/Java. C# is a more powerful language. There really is no debating that, because C# has a far more succint language and better support for functional constructs. Eve, so, I think it's valuable to learn Java as well, because there are enough differences that you can actually see why C# is better. Good examples being implementations of language features they both have; such as Generics, which are done many times better in C# because it actually has run-time support. whereas Java just inserts typecasts between Object and the specified Generic Type. Other interesting differences surface when you work with reflection. Learning both can help you appreciate the design decisions behind both.
Then again, if you asked me when I learned Java I couldn't answer that, since I don't remember. I do know I had learned enough Java to read and write it reasonably before I even touched C#.
Now i'm interested, but anything similar that's free?
Also, is Python good for both making simple programs and game development?
Another edit: I'd want to start with making a 2D platformer, but would want to move onto doing online MMO styled gameplay (I know I'd need a potentially expensive dedicated server or two, but still something i'd like to do).
Also, is Python good for both making simple programs and game development?
Another edit: I'd want to start with making a 2D platformer, but would want to move onto doing online MMO styled gameplay (I know I'd need a potentially expensive dedicated server or two, but still something i'd like to do).
Python is OK for pretty much anything any other language can be used for. One of the nice things is that you can always choose a different interpreter or run-time based on what you need. For example, JPython can run Python on the Java Virtual Machine; IronPython can run it on the .NET CLR. Interesting side-note, next to PyCharm, I'd probably choose Visual Studio 2012, which has equal, if not better, support for Python (And I do mean pure python, not IronPython). Pretty neat. Main thing that makes me like PyCharm is the fact that it actually has good "intellisense" and autocomplete. This is pretty tricky to get with a language that doesn't use static typing:
It's smart enough to figure out the type that Zipval will be and provide me a list of methods on ZipFile, as well as their parameters/arguments. Pretty cool.
There is also Stackless python if you need coroutines or heavy use of concurrency, too.
What most people don't seem to realize about Python is that it's no more interpreted than Java/Scala/Clojure/C#/F#/VB.NET/etc. When you use the python interpreter it compiles your script and all it's imports into a in-memory .pyc file and executes that. You can use a bundling tool to group together the appropriate .pyc files. the .pyc files contain Python bytecode- which is very much similar to Java bytecode or Microsoft IL Code. It is also executed with a Jitter, like those two.
If you choose a language for performance reasons you aren't choosing it for the right reasons. That's premature optimization at it's most obvious, really.
For example, you want to make a 3-D MMO. Some other users have said "nope, nope, can't use Python. will have to use Java or C#.
Unfortunately they seem to have missed the precedent- EVE Online is a reasonably popular MMO Game and it is written entirely in Python. (Stackless Python, actually). So clearly it can be done and reasonably well.
Why do people say other languages are better than Python at making these types of games? It seems as if it's just as good if not better. And out of curiosity, would I need to add a Python download of some sort to an automatic installer? IIRC, Windows doesn't have it pre-installed.
Why do people say other languages are better than Python at making these types of games? It seems as if it's just as good if not better. And out of curiosity, would I need to add a Python download of some sort to an automatic installer? IIRC, Windows doesn't have it pre-installed.
Because compared to python, drawing graphics takes less effort (don't read too much into this, "less effort" is a bit subjective and in this instance I am mostly talking about how pygame and such handle vector graphics. Once you get into something a bit more complex than say, asteroids it gets a little bit messy) with other languages/frameworks. Personally, if someone were to make a 2D game I'd suggest LUA with something like Love for the simplicity of it. Though of course "simplicity" is such a personalized term, and things like XNA/mono with C# or SMFL or SDL with C++ are "simple" depending on how you view them.
But there is really so much out there, how much do you want to make 'from scratch', what kind of thing are you doing, what platforms, etc. etc. You can't really just say "a 2D game in x language is easy and a 3D game in x language is hard" because it's just not that simple. Languages are tools, not roads.
In general gamedevs learn many languages, not just the one or two. You kind of have to. For 2D one language will likely be fine, but once you get into other things and run into a problem that requires outside influence, you'll probably need to do a little dabbling in another language (for example, many python/lua/etc. games have a launcher made in C++).
In reality, for 2D it doesn't matter and everyone has their preferences. Now for 3D is where it gets super complex and I could honestly write a novel on the different options, headaches, and the difficulty/ease-of-use some things have. However this is not exactly to it being "hard" compared to being "easy", it's more just about how there are so many options out there for every language that it's a bit overwhelming.
Windows doesn't really have anything pre-installed. I am unsure if even newer .net or newer visual C++ runtimes are installed by default. The installer should add them automatically depending on what you use to create the installer. (If you ever notice steam games saying "installing directx" or "installing visual C#/C++ runtime v.x.xxx.xx.xxx." that would be what it is doing, just replace visual runtime with a python runtime).
Though there are some installers that simply use a wrapper for the game.
I see, so it just comes down to what you want to use and not "one is better than the other" I suppose. It seems as if you're saying that each one has it's ups and downs. And why do people always say C++ is so hard?
I see, so it just comes down to what you want to use and not "one is better than the other" I suppose. It seems as if you're saying that each one has it's ups and downs. And why do people always say C++ is so hard?
Java and C# are pretty restrictive and highly abstracted compared to C++, considering they don't allow raw pointers, preprocessor macros, manual memory management, etc. A lot of those bonus features you get with C++ aren't sorely missed, however, especially to beginners. C++ operates on many levels of abstraction, and even though it's a great general-purpose language for experts, it's unwieldy because of that.
Rollback Post to RevisionRollBack
i5 4670k @ 4.9GHz - Stock Heatsink - The rest is melted silicon but I think I have a graphics card in there somewhere It surprises me how many people on this forum can't read benchmarks.
I see, so it just comes down to what you want to use and not "one is better than the other" I suppose. It seems as if you're saying that each one has it's ups and downs. And why do people always say C++ is so hard?
Because "hard" to them is "complex".
It boils down to "why reinvent the wheel when there are wheels of all shapes and sizes freely available already?".
Everything has it's ups and downs, but none of them are really worth more or less than the others in that regard, only in how powerful the language is, and most languages are extremely powerful, to the point where you shouldn't worry too much about which language until you get so deep into something the language choice matters, and once you are at that level, switching to a new language is near effortless.
1. What is a good Python IDE? Is IDLE fine enough for starting out?
2. What is a good place to learn it? Youtube tutorials are fine, but avoid TheNewBoston.
Well for one written tutorials or books are much better than some video by an amateur teaching you to be an even worse amateur. I've yet to see a video of coding that was just floating around youtube that was actually made by a programmer competent enough to teach.
Second if you've been "coding" for six months and haven't learned anything then you need to stop watching and try actually typing out some code.
A billion years. Next i'll tell you when you're going to grow to be 8 feet tall.
Programmers learn many languages. I personally avoid Java, for game development its a pretty lame language.
Eclipse is certainly more standard, I don't even know what the second one is.
Performance? Engines and libraries? Community involvement?
Java is not a language used for games, besides Minecraft it is an almost utterly unused language for that purpose. C# has a huge popularity boost from XNA, Python is used a lot because of its simplicity mixed with pygame. C++ is.. yeah..
Why would you use Java if there are much better options available.
Though I'm not really sure what Java is used for anymore anyway since it is slowly becoming extinct in browsers due to a horrible security track record and there being much better things available.
Python is actually useful for game development? Isn't it a scripting language?
Python is something i've also been interested in learning, as it's very simple to me. Tell me more!
Any language can be used as a scripting language, it's a full fledged language you can run stand alone programs with through the interpreter.
Of course its performance is pretty bad unless you switch to something like stackless python but it definitely has a lot more game development interest than Java IMO. Just look into pygame.
What exactly do you mean stackless python? The normal default Python isn't great for game development by Pygame is? And are they much different from eachother or is Pygame just an "extension" to Python, and people who know Python can easily learn this Pygame thing?
Tons of questions I know, but this stuff confuses me a bit.
Every language is worth learning long term, unless it is long 'dead' outside of niche fields (C, assembly, basic) or is garbage and/or on it's way out (perl, possibly ruby/rails if trends I'm hearing are true).
Python is hugely versatile, ESPECIALLY if you go into back-end web development. Youtube uses it, yahoo uses it, reddit uses it (and you can look at the source here), gmail uses it, as does google maps and I'm pretty sure twitch uses it in some manner.
Java is just as versatile (a bit less so for web/backend) however it is slowly being 'replaced' by C# and .net for many, many reasons. Do not be fooled, C# is just as cross platform as Java is, being developed by MS means nothing. (PS4 runs on BSD for instance and the main language used for games is C#).
For other languages there are similar parables.
I see, so Python it is I guess. I'll learn Python as much as I possibly can, and get into Java (Which should be easier after learning Python) if I ever feel like doing some forge modding.
Everyone wants a .net dev right now, and I'd see it replacing java in 5 years time.
Plus the C# syntax is extremely close to Java, if you really wanted/needed to swap over it'd only take a little getting used to.
Ah, I see.
Python looks like it should be good for learning. Where do you think I should start learning? I'd prefer reading something than watching a video.
IntelliJ IDEA blows pretty much every IDE out of the water. Primarily because it's by JetBrains- the same guys behind PyCharm (Best Python IDE), WebStorm (Best PHP IDE) and Tools like ReSharper.
However, it's not Free, which I imagine takes it off the table for most.
I'm not sure I fully agree with this. The reason I say this is primarily because I think one of the reasons I got my current Job Is because I can recognize and use THEOS BASIC, partly because I recognized the Syntax from a 1985 College TextBook which covered VAX-11 BASIC. Now to be fair I never actually wrote anything in that Language, but I had 'experience' in that I was able to look at it and go "hey, this looks like VAX-11 BASIC". Apparently, most other applicants couldn't identify it as BASIC, let alone a specific dialect.
Point being that if somebody get's a development job, it is unlikely to ever be a game developer or some exciting application development. The main thing, especially for an entry-level position, is going to be dealing with legacy products, and trying to move them to a new platform. This requires experience in the new platform (eg. C#/.NET in my case) as well as the ability to read, understand, and get a good handle on the old (in my case, THEOS BASIC). You cannot simply turn your nose up at those older programming languages because they are still at the core of most businesses. Point -of-Sale, Inventory Management, Time Clocking, etc. are often done primarily with Software, and that software is often written for older systems. I wouldn't call more than half of the current C# development market a niche.
In terms of C#/Java. C# is a more powerful language. There really is no debating that, because C# has a far more succint language and better support for functional constructs. Eve, so, I think it's valuable to learn Java as well, because there are enough differences that you can actually see why C# is better. Good examples being implementations of language features they both have; such as Generics, which are done many times better in C# because it actually has run-time support. whereas Java just inserts typecasts between Object and the specified Generic Type. Other interesting differences surface when you work with reflection. Learning both can help you appreciate the design decisions behind both.
Then again, if you asked me when I learned Java I couldn't answer that, since I don't remember. I do know I had learned enough Java to read and write it reasonably before I even touched C#.
Now i'm interested, but anything similar that's free?
Also, is Python good for both making simple programs and game development?
Another edit: I'd want to start with making a 2D platformer, but would want to move onto doing online MMO styled gameplay (I know I'd need a potentially expensive dedicated server or two, but still something i'd like to do).
No idea only free thing for Python I'm aware of is IDLE, which I've not been very impressed by.
Python is OK for pretty much anything any other language can be used for. One of the nice things is that you can always choose a different interpreter or run-time based on what you need. For example, JPython can run Python on the Java Virtual Machine; IronPython can run it on the .NET CLR. Interesting side-note, next to PyCharm, I'd probably choose Visual Studio 2012, which has equal, if not better, support for Python (And I do mean pure python, not IronPython). Pretty neat. Main thing that makes me like PyCharm is the fact that it actually has good "intellisense" and autocomplete. This is pretty tricky to get with a language that doesn't use static typing:
It's smart enough to figure out the type that Zipval will be and provide me a list of methods on ZipFile, as well as their parameters/arguments. Pretty cool.
There is also Stackless python if you need coroutines or heavy use of concurrency, too.
What most people don't seem to realize about Python is that it's no more interpreted than Java/Scala/Clojure/C#/F#/VB.NET/etc. When you use the python interpreter it compiles your script and all it's imports into a in-memory .pyc file and executes that. You can use a bundling tool to group together the appropriate .pyc files. the .pyc files contain Python bytecode- which is very much similar to Java bytecode or Microsoft IL Code. It is also executed with a Jitter, like those two.
If you choose a language for performance reasons you aren't choosing it for the right reasons. That's premature optimization at it's most obvious, really.
For example, you want to make a 3-D MMO. Some other users have said "nope, nope, can't use Python. will have to use Java or C#.
Unfortunately they seem to have missed the precedent- EVE Online is a reasonably popular MMO Game and it is written entirely in Python. (Stackless Python, actually). So clearly it can be done and reasonably well.
But there is really so much out there, how much do you want to make 'from scratch', what kind of thing are you doing, what platforms, etc. etc. You can't really just say "a 2D game in x language is easy and a 3D game in x language is hard" because it's just not that simple. Languages are tools, not roads.
In general gamedevs learn many languages, not just the one or two. You kind of have to. For 2D one language will likely be fine, but once you get into other things and run into a problem that requires outside influence, you'll probably need to do a little dabbling in another language (for example, many python/lua/etc. games have a launcher made in C++).
In reality, for 2D it doesn't matter and everyone has their preferences. Now for 3D is where it gets super complex and I could honestly write a novel on the different options, headaches, and the difficulty/ease-of-use some things have. However this is not exactly to it being "hard" compared to being "easy", it's more just about how there are so many options out there for every language that it's a bit overwhelming.
Windows doesn't really have anything pre-installed. I am unsure if even newer .net or newer visual C++ runtimes are installed by default. The installer should add them automatically depending on what you use to create the installer. (If you ever notice steam games saying "installing directx" or "installing visual C#/C++ runtime v.x.xxx.xx.xxx." that would be what it is doing, just replace visual runtime with a python runtime).
Though there are some installers that simply use a wrapper for the game.
It surprises me how many people on this forum can't read benchmarks.
It boils down to "why reinvent the wheel when there are wheels of all shapes and sizes freely available already?".
Everything has it's ups and downs, but none of them are really worth more or less than the others in that regard, only in how powerful the language is, and most languages are extremely powerful, to the point where you shouldn't worry too much about which language until you get so deep into something the language choice matters, and once you are at that level, switching to a new language is near effortless.
Just don't use Perl. Ever. Forget it exists.