Mikesoft![]() Member Posts: 20 From: London, England Registered: 05-28-2005 |
Hi, I have been using game maker to design games for far to long now and I really want to learn a new language. What language should I start to learn? I really want to make 3D games. |
Jari![]() Member Posts: 1471 From: Helsinki, Finland Registered: 03-11-2005 |
C/C++ seems like a good option because you know GM's scripting language. But VB is probably easier. ------------------
|
Brandon![]() Member Posts: 594 From: Kansas City, Mo, USA Registered: 02-02-2004 |
I'd agree with Jari that C++ would be a good language to learn. But if you just want to make a 3D game, then maybe do your first few with something like Blitz3D or 3D Game Studio What I did was started off in 3D games in Blitz3D, it really helped me to learn the concepts of 3D, animation, textures, billboards, etc.., and how they all worked together. Also, I will mention that I knew C++ a few years before I even tried to make 3D games. And I was still very confused by DirectX, and OpenGL I didn't even consider. Actually being a designer and artist at heart, I still use Blitz3D quite a bit. BlitzMax is looking pretty sweet too. But I'd wait until the 3D module is out before looking at it seriously. Also the Torque Game Engine is a great engine to have. I don't have it. But from what I've seen and heard it is very capable. 3D Game Studio is definitely a couple steps up from Blitz3D. It may take some internal control away from you, but it also has a level builder with so many cool features. And it comes with the C-Script language which is basically Java, a class crazy C++ language. It's a good introduction to object oriented programming. ------------------ [This message has been edited by brandon (edited June 03, 2005).] |
Seven7 Member Posts: 50 From: USA Registered: 03-16-2005 |
Depends on how far you want to dig into game development. If you want to
Visual Basic and C# should not be considered for 3D games. Visual Basic
|
GUMP![]() Member Posts: 1335 From: Melbourne, FL USA Registered: 11-09-2002 |
Actually, C# can be used in libraries where the overhead is neglible. I definitely wouldn't recommend it for the core framework of the engine nor the graphics library nor any function that is used thousands of times per engine tick. But it can be used for scripting and gameplay code and AI where the language allows you to quickly put together functioning code. |
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
quote: As a fan of C#, I feel compelled to reply to this statement. I realize you have more experience than I do, but I think C# is really good for designing OO structures. I could see C# being comparable to Java in terms of popularity for game development. I don't think many *engines* will be written in C#, but I can definately see the advantage of having a C# front-end to an engine. For examples, check out things like Axiom (which is a port of OGRE to C#) and RealmForge. Especially with the power that C# offers with things like reflection and real-time compilation of scripts that can be written in any CIL-ported language (such as C#, VB.Net, Managed C++, Delphi.Net, Python, Boo, etc), I think there is a lot of future in C# development of games. Granted, I agree that a lot of the *engines* will still be written in C and C++ for performance. But as for a front-end, I think that things like C# and Java are a good middle ground. Respectfully, ------------------ |
Mikesoft![]() Member Posts: 20 From: London, England Registered: 05-28-2005 |
Is java an easy language to learn? How does it compare to php in terms of difficultanise (is that in the dictionary?!)? |
Jari![]() Member Posts: 1471 From: Helsinki, Finland Registered: 03-11-2005 |
quote: In my opinion java is much harder to learn than php and somewhat harder than c++. Java is much more object oriented than c++ and everything is inside classes while in c++ you can have global functions like in php. ------------------
|
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
Really? I find trying to do good object oriented programming in C++ to be much harder. I mean, there's the redundant method definitions (you need to define them in the header and then define the implementation), and there's hokey things like multiple inheritance, etc. C# forces everything to be in classes, just like Java. While some people like the global/procedural programming of C (which C++ allows), I think it's much easier to fall into bad programming practices. I have friends who *love* Java but can't stand C -- so from them I hear that Java is actually easier. Java and C# are incredibly similar -- I don't think there's much difference between them as far as a language goes -- they're almost identical syntactically. C and C++ are good to learn, don't get me wrong. But the difference between things like C/C++ and Java/C# is that the latter only allow for pure object-oriented code to be written, and the former allow for procedural. Respectfully, ------------------ |
Seven7 Member Posts: 50 From: USA Registered: 03-16-2005 |
You need to ask yourself "What are the requirements for my game?" before settling on a language. C# might be the language you'll want to use or it might be Java. You can pretty much design a game in any language including assembly, but the majority of games are written in C++. Granted, everyone has there favorite language and they stick to that language, but C++ is a very common language in the gaming industry because of special design techniques that can not be used in any other language, or is very difficult to mimic in another language. What you will find in games are issues such as "cooperative multitasking" (not to be confused with threads) and "Events". Both of these concepts are better suited using C++ rather than C#, Visual Basic or even Java. Implementing either of these concepts in another language would be difficult or impossible. HanClinto is right about using C# as a base line engine code, it does not quote: Every language has its own learning curve. C/C++ and java have much lower learner curve compared to Assembly Language. HTML has a lower learning curve than C/C++ or Java (Since I'm from the old school, I have a big problem calling HTML a language!) Game developers need direct access to 'pointers' and although Java does not support explicit access to pointers, (it does support implicit access contrary to popular belief). Therefore, Java is another language that is not considered when developing 3D games. I would google and check our some examples and play with them to see how you like the language. quote: google java then google php and compare the two. I think you'll find out that they are not the same. PHP is HTML with BASIC thrown in. (Not entirely accurate, but I think you might get the point.) PHP sits on the server and not on the client machine. You can not "execute" a PHP file. PHP uses an interpreter to execute PHP commands from the server side only. PHP was designed for database information retrieval and can not do any of the "heavy lifting" that other languages do. C++ and Java are based on the UML (Unified Modeling Language: which is a standard for object orientated concepts) Think of UML as a set of design concepts for a language and implemented in C++ and Java. PHP is not an object orientated language. PHP does not understand the concepts of objects, classes, inheritance, polymorphism and other UML design concepts. Again, PHP is designed to sit on a server and retrieve database information and that's all it does and knows. What it all boils down to is my proposed question: "What are the requirements for my game?" It also boils down to preference. Some people
[This message has been edited by Seven7 (edited June 03, 2005).] |
GUMP![]() Member Posts: 1335 From: Melbourne, FL USA Registered: 11-09-2002 |
Java would probably be an option if developing games for certain models of cell phones, PDAs, and PC Tablets. Games for cell phones is supposedly going to be a rapidly expanding market (according to a Game Developer article from a while ago) and is already popular in Japan. Web-based games with OpenGL is another option and ATI and Nvidia and PowerVR already have 3D accelerators for PDAs and cell phones. Also, the JRE has improved to the point that the overhead isn't nearly as bad as it used to be. But all this is probably way over head right now, Mikesoft. Just go with a mainstream language like C/C++ for now. [This message has been edited by Gump (edited June 03, 2005).] |
Mikesoft![]() Member Posts: 20 From: London, England Registered: 05-28-2005 |
Thanks for all the help everyone! |
Mikesoft![]() Member Posts: 20 From: London, England Registered: 05-28-2005 |
I have started to learn C++ but I need a compiler to test my code. Does anybody know any easy to use free compilers? |
Jari![]() Member Posts: 1471 From: Helsinki, Finland Registered: 03-11-2005 |
One would be DevCpp for windows at http://www.bloodshed.net/devcpp.html. I recommend to download the version 5 which is still beta but worked for me and was clearer than the previous versions. Another option that I know would be a borland compiler but I haven't ever used it really so I don't know if its easy to use or not. ------------------
|