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.
Ah, okay. Know of any good Python IDE? I'd prefer free.
It is barebones for the mostpart if I remember right.
Though I am not familiar enough with other IDEs.
There is always notepad++ but I really don't like the program tbh.
I keep Notepad++ installed for the sake of editing some Minecraft stuff every once in a while.
I need to know which version of Python I should be using. I want to know Python 3.3, but there are few tutorials for it and all. I need some help here.
I keep Notepad++ installed for the sake of editing some Minecraft stuff every once in a while.
I need to know which version of Python I should be using. I want to know Python 3.3, but there are few tutorials for it and all. I need some help here.
I would learn Python 3.3 and use the tutorials you are able to find then just experiment and see what you can teach yourself. I also heard people use this website: http://www.codecademy.com/ Not sure if it's any good as I have not used it before.
Java and C# are pretty restrictive and highly abstracted compared to C++, considering they don't allow raw pointers, preprocessor macros, manual memory management
C# allows both raw pointers and manual memory management in unsafe code blocks.
using System;
class Program
{
unsafe static void Main()
{
fixed (char* value = "sam")
{
char* ptr = value;
while (*ptr != '\0')
{
Console.WriteLine(*ptr);
++ptr;
}
}
}
}
Preprocessor macros are more C style; C++ would be templates. Templates have their advantages and disadvantages. Compared to C# Generics, they can be more flexible, since you can really insert anything you want as the "type" argument; it doesn't even really need to be a type, that's just the convention. templates are good because they are a compile-time thing; each new call to a template generates a new class that is compiled. The disadvantage is a lack of introspection. Arguably, Java has this issue too, due to Type Erasure. With C# you can, using reflection, construct a Generic type- at run-time- entirely based on other parameters. This can be useful if your application is extensible and if you add new types that are applicable for usage with that gneeric type. Another advantage to Generics versus templates is run-time safety- this is again a advantage and a disadvantage:
template<typename T> Adder{
private:
T mFirst;
T mSecond;
public:
template<typename T>(T First, T Second){
mFirst = First;
mSecond = Second;
}
T AddThem(){
return mFirst + mSecond;
}
}
Advantage: You can use any type for the template argument here. the disadvantage is that if that type doesn't actually support the + operator, you can get a relatively cryptic compile-error (cryptic because it refers to the expanded template class). Worse case scenario is a run-time error if the type is another class that implements operator overloads and throws an Exception or causes an error of some sort.
The main problem with C++ is simply unnecessary complexity. I 'know' C++, at least enough to read it and to some extent write it (I doubt the above example would compile). C++ is needlessly complex, the "OO" is a joke, and it has so many hidden traps I'd be surprised if some missing persons couldn't attributed to being eaten by a C++ Compiler. Also, being a complete Superset of C was a good idea to try to win over C Programmers, but also means you get all of C's problems. such as the preprocessor and casting, and holdovers from incremental compilers (when memory was tight) with Header files and the like.
Current issues with C++ include a small standard Library, lack of introspection (reflection), no type inference. etc. the new version of C++ that is coming out slowly like slobber from a dribbling toddler fixes some of these issues.
Basically, Developing large software systems in C++ is like swimming across a lake with a ten kilogram weight strapped to your waist. If you are a strong swimmer you can succeed at the task, but it would have been easier without that damn weight.
C++ is needlessly complex, the "OO" is a joke, and it has so many hidden traps I'd be surprised if some missing persons couldn't attributed to being eaten by a C++ Compiler.
So you're saying Jimmy Hoffa is inside Visual Studio?
For now, I want to start with very simple games such as quick platformers and things of the sort. Would you recommend StacklessPython or PyGame? Note that I can't seem to find a 3.3.0 Pygame on their site.
For now, I want to start with very simple games such as quick platformers and things of the sort. Would you recommend StacklessPython or PyGame? Note that I can't seem to find a 3.3.0 Pygame on their site.
Platformers are not simple. Speaking from experience.
Start with pong, that will get you going. Then try a breakout clone. Then move on to a shooter like space invaders/asteroids/galaga. Then go on to something like a dual stick shooter with a map that is larger than the game window.
At this point you should be fine to start re-creating some old games (tetris, pacman, breakout, etc.) on your own. Note of warning that pacman is FAR MORE COMPLEX than you might initially think. Then you can move onto something like a simple topdown adventure game like the first LoZ. At this point, try experimenting with spritesheets, tile systems and map editors for said tilesystem (you should already have made a tilesystem for either the dual stick or LoZ-like game).
Then you can move onto a platformer, as you should have all the grounds covered. From that point you can go on to other areas but lets start with this for now.
The "simple" looking games are deceptively simple. And (many) complex games are deceptively complex looking.
Platformers are not simple. Speaking from experience.
Start with pong, that will get you going. Then try a breakout clone. Then move on to a shooter like space invaders/asteroids/galaga. Then go on to something like a dual stick shooter with a map that is larger than the game window.
At this point you should be fine to start re-creating some old games (tetris, pacman, breakout, etc.) on your own. Note of warning that pacman is FAR MORE COMPLEX than you might initially think. Then you can move onto something like a simple topdown adventure game like the first LoZ. At this point, try experimenting with spritesheets, tile systems and map editors for said tilesystem (you should already have made a tilesystem for either the dual stick or LoZ-like game).
Then you can move onto a platformer, as you should have all the grounds covered. From that point you can go on to other areas but lets start with this for now.
The "simple" looking games are deceptively simple. And (many) complex games are deceptively complex looking.
Yeah, I guess. I'll try to do something like Pong.
Also, how do I install 3.3 PyGame? is it installed 100% once I run the automatic installer? And what is a good 3.3 PyGame tutorial?
EDIT: Unintentional bump. Don't posts on these forums auto-merge?
Personally I found even Pong to be a huge undertaking. Then again I didn't make one where everything was hardcoded and 60 lines on one file.
I think people vastly underestimate the difference between making a polished game and a hardcoded simple game. The first one takes you an hour and if you want to change anything later it takes three hours to change one thing. The second takes a week or two to make and takes a few moments to change anything. It also provides reusable code for other projects.
IMO forcing yourself to make a "finished" game makes you feel very good afterwards, especially if you keep doing it and don't turn into a Notch.
Personally I found even Pong to be a huge undertaking. Then again I didn't make one where everything was hardcoded and 60 lines on one file.
I think people vastly underestimate the difference between making a polished game and a hardcoded simple game. The first one takes you an hour and if you want to change anything later it takes three hours to change one thing. The second takes a week or two to make and takes a few moments to change anything. It also provides reusable code for other projects.
IMO forcing yourself to make a "finished" game makes you feel very good afterwards, especially if you keep doing it and don't turn into a Notch.
Well, if I'm ever going to do a long-term game I will always improve upon, I'll spend a decent amount of my time optimizing and polishing it.
Ah, okay. Know of any good Python IDE? I'd prefer free.
Really? It looks kinda barebones. Well, so does Google Chrome at first glance.
Though I am not familiar enough with other IDEs.
There is always notepad++ but I really don't like the program tbh.
I keep Notepad++ installed for the sake of editing some Minecraft stuff every once in a while.
I need to know which version of Python I should be using. I want to know Python 3.3, but there are few tutorials for it and all. I need some help here.
C# allows both raw pointers and manual memory management in unsafe code blocks.
Preprocessor macros are more C style; C++ would be templates. Templates have their advantages and disadvantages. Compared to C# Generics, they can be more flexible, since you can really insert anything you want as the "type" argument; it doesn't even really need to be a type, that's just the convention. templates are good because they are a compile-time thing; each new call to a template generates a new class that is compiled. The disadvantage is a lack of introspection. Arguably, Java has this issue too, due to Type Erasure. With C# you can, using reflection, construct a Generic type- at run-time- entirely based on other parameters. This can be useful if your application is extensible and if you add new types that are applicable for usage with that gneeric type. Another advantage to Generics versus templates is run-time safety- this is again a advantage and a disadvantage:
Advantage: You can use any type for the template argument here. the disadvantage is that if that type doesn't actually support the + operator, you can get a relatively cryptic compile-error (cryptic because it refers to the expanded template class). Worse case scenario is a run-time error if the type is another class that implements operator overloads and throws an Exception or causes an error of some sort.
The main problem with C++ is simply unnecessary complexity. I 'know' C++, at least enough to read it and to some extent write it (I doubt the above example would compile). C++ is needlessly complex, the "OO" is a joke, and it has so many hidden traps I'd be surprised if some missing persons couldn't attributed to being eaten by a C++ Compiler. Also, being a complete Superset of C was a good idea to try to win over C Programmers, but also means you get all of C's problems. such as the preprocessor and casting, and holdovers from incremental compilers (when memory was tight) with Header files and the like.
Current issues with C++ include a small standard Library, lack of introspection (reflection), no type inference. etc. the new version of C++ that is coming out slowly like slobber from a dribbling toddler fixes some of these issues.
Basically, Developing large software systems in C++ is like swimming across a lake with a ten kilogram weight strapped to your waist. If you are a strong swimmer you can succeed at the task, but it would have been easier without that damn weight.
VS for C# and C++.
"Programmers never repeat themselves. They loop."
Start with pong, that will get you going. Then try a breakout clone. Then move on to a shooter like space invaders/asteroids/galaga. Then go on to something like a dual stick shooter with a map that is larger than the game window.
At this point you should be fine to start re-creating some old games (tetris, pacman, breakout, etc.) on your own. Note of warning that pacman is FAR MORE COMPLEX than you might initially think. Then you can move onto something like a simple topdown adventure game like the first LoZ. At this point, try experimenting with spritesheets, tile systems and map editors for said tilesystem (you should already have made a tilesystem for either the dual stick or LoZ-like game).
Then you can move onto a platformer, as you should have all the grounds covered. From that point you can go on to other areas but lets start with this for now.
The "simple" looking games are deceptively simple. And (many) complex games are deceptively complex looking.
https://bitbucket.org/pygame/pygame/downloads
3rd download should be it.
Thanks. +1 to you.
Yeah, I guess. I'll try to do something like Pong.
EDIT: Unintentional bump. Don't posts on these forums auto-merge?
I think people vastly underestimate the difference between making a polished game and a hardcoded simple game. The first one takes you an hour and if you want to change anything later it takes three hours to change one thing. The second takes a week or two to make and takes a few moments to change anything. It also provides reusable code for other projects.
IMO forcing yourself to make a "finished" game makes you feel very good afterwards, especially if you keep doing it and don't turn into a Notch.
Well, if I'm ever going to do a long-term game I will always improve upon, I'll spend a decent amount of my time optimizing and polishing it.