RC
|
|
« on: July 21, 2008, 06:48:39 PM » |
|
Lately I've been trying to learn C++, however, no matter where I look, everything I find seems to be overly complicated, I know C++ isn't an easy programming language, so I'm wondering if there are any other easier programming languages that can basically do everything C++ can do and possibly more.
I've been thinking about learning PASCAL, my main goal is to make games with whatever I learn, I'm currently using the program "Game Maker", but with that you're limited to just GML (Game Maker Language) unless you use a DLL.
So, can you make good games with PASCAL as you would with C++? Or do you recommend another language?
I hope you can help.
|
|
|
Logged
|
|
|
|
imaginationac
|
|
« Reply #1 on: July 21, 2008, 07:40:47 PM » |
|
You've probably heard this before, but it is not the programming language that's limiting, but rather the programmer's expertise and work. That and realistic memory contraints. That said I'd read this post: http://forums.tigsource.com/index.php?topic=49.0Personally, I work mostly with Java( Sun's Official Website for Java Wikipedia article on Java). I'd suggust it only if you don't want to learn about handling memory yourself. One of the downsides to Java is the slower performance that can occur with larger applications. It also would help if you set realistic goals for yourself. What exactly are you trying to make anyway?
|
|
|
Logged
|
|
|
|
RC
|
|
« Reply #2 on: July 21, 2008, 07:52:56 PM » |
|
Well, I have many ideas in my head at one time, when I write them down or type them up on the computer, they all just get lost somewhere. With that said, when I've tried to make them in Game Maker, I can't. But, Game Maker doesn't really make good 3D games, and that's what I want to make, my goal at the moment is to make a good 3D game, possibly either a FPS or an Adventure game.
It'd be nice to make a console game, but I don't really think that would happen anytime soon.
|
|
|
Logged
|
|
|
|
Ivan
Owl Country
Level 10
alright, let's see what we can see
|
|
« Reply #3 on: July 21, 2008, 08:00:15 PM » |
|
Python is a good alternative, as Python has bindings for alot of C++ libraries out there, so you can do most of what you can do with C++, but it's alot easier to setup and learn.
|
|
|
Logged
|
|
|
|
RC
|
|
« Reply #4 on: July 21, 2008, 08:11:54 PM » |
|
I'll look into Python.
|
|
|
Logged
|
|
|
|
muku
|
|
« Reply #5 on: July 22, 2008, 01:17:42 AM » |
|
For adventures, there's AGS: http://www.adventuregamestudio.co.uk/ Many great games have been made with it, so if you really want to make an adventure, you should try it. As for learning to program, Python certainly is a much better first choice than C++. There's also D, which is basically a cleaned up and simplified version of C++ which I currently use, but if you're just learning to program then the lack of good documentation will probably trip you up.
|
|
|
Logged
|
|
|
|
Ciardhubh
Level 1
|
|
« Reply #6 on: July 22, 2008, 08:04:49 AM » |
|
One of the downsides to Java is the slower performance that can occur with larger applications.
That is a very questionable argument. If Java is too slow for you, then there aren't many choices left beside C++ and assembly. Interpreted scripting languages are MUCH slower than Java. .NET languages are roughly the same speed as Java because they too rely on intermediate byte code. A lot of the "Java is slow" argument is a myth. The biggest companies are using Java for their high-load servers. Of course C++ is faster than Java and if you want to one day work for a major studio, you'll have to learn it. Java might be a good start to get into that direction, if you consider C++ to be too time-consuming in the beginning. You won't be able to make a AAA game with Gamemaker or a scripting language. It all depends on where you want to go. If you are looking for a hobby, pick one with a large community and lots of available information/libraries. If you want to develop games professionally, you'll have to focus on what companies expect; which is predominantly C++ and occasionally Java for the server-side, scripting languages are more or less added bonuses (of course this only applies to game development and not software development in general).
|
|
|
Logged
|
|
|
|
Hideous
|
|
« Reply #7 on: July 22, 2008, 08:28:05 AM » |
|
I'll also say that if you plan on making 3D games, watch out for math. It's scary and it will bite your head off.
|
|
|
Logged
|
|
|
|
muku
|
|
« Reply #8 on: July 22, 2008, 08:41:31 AM » |
|
One of the downsides to Java is the slower performance that can occur with larger applications.
That is a very questionable argument. If Java is too slow for you, then there aren't many choices left beside C++ and assembly. That's true. Java has had a lot of brainpower poured into its JIT compiler in the last few years and has really caught up a lot in that regard. Then again, Python with Psyco isn't that much slower than Java either (typically by a factor of 2 or 3, if the language shootout can be believed... yeah, I know, microbenchmarks). Contrast that with the fact that Python is a vastly more expressive and less verbose language than Java, and Java's niche in game development starts to become very cramped. If you want to go the professional route and need all the performance you can get, you are going to choose C++ anyway; if performance doesn't matter that much and you just want to get something done as quickly as possible, you probably don't want to use Java for that either. The only valid reason I can see to use Java for indie game development is if you already know the language very well; then of course you save some time learning to use new tools. On the other hand, I would never recommend learning it to someone who's just starting out with game development.
|
|
|
Logged
|
|
|
|
Decipher
Guest
|
|
« Reply #9 on: July 22, 2008, 08:52:43 AM » |
|
But, Game Maker doesn't really make good 3D games, and that's what I want to make, my goal at the moment is to make a good 3D game, possibly either a FPS or an Adventure game. Ahhh... Yet another one, let's try. First of all you should really realize that the outcome of your first attempt won't be anywhere near your goal if on a scale what you mean by "good" is somewhere close to Half-Life 2... Interestingly every single person who has an interest in programming games would start with the expectation that he/she can create Half-Life 2 or Doom 3 or FarCry or even worse Crysis. This will almost certainly not happen (exception being if you happen to have a genetic linkage with John Carmack). In fact, as Hideous mentioned the mathematics involved in 3D games can get way too complicated even on the most basic stuff if you're not familiar with it. Consider gimbal lock with certain camera implementations. On the other hand, it's completely wrong to think that C++ will give you the "tools" you need to code your own overkill 3D game. You should really consider what you might need before you pick a language, do you really need OOP, polymorphism, inheritance or template-metaprogramming? If not, C++ is not quite the right language then. So I'd suggest you to read on languages, their pros and cons from different point of views (try to pick different game developers expressing their ideas on a certain language for instance). And moreover, make sure you're stubborn enough for it. The magic won't happen in a single night. You won't go to sleep and wake up as a godness of C++. Indeed, it might take tens of years to perfect your knowledge and understand every single bit of what they talk in C++ Committee Meetings or DRs. So to summarize, I highly suggest you to aim for something simpler in the first place, how about a nice Tetris or PacMan clone? Add your own creativity into it, and on the second time, try to create something independent than currently existent games. After a few years I'm sure you'll be realizing that you're glad you didn't start with your overkill 3D project because in the end most of the people who do it end up giving up, totally... Which is a pity. But let's not forget that after you master your skills with the language of your preference you can try your 3D game idea, and you'll see that you couldn't do it if it was your first project. And in that case it's a huge source of motivation. Hope this helps a bit.
|
|
|
Logged
|
|
|
|
PaulMorel
|
|
« Reply #10 on: July 22, 2008, 11:40:20 AM » |
|
ok, everyone in this thread needs to stop bickering about personal preferences and ante up with some real suggestions for this guy. The question boils down to this: What are the options for people who want to make games, but don't think they can do C++?The answer is complicated. Unfortunately, as others have pointed out, the language of choice is really the least complicated thing about game development. Really, having the organization, dedication, and math skills necessary to write software on your own is much much harder than learning a language... of course, I am a programmer, so I am probably biased. The one suggestion that I could come up with for you is Panda3d - http://panda3d.org/Panda3d is a powerful, but easy to use engine that integrates smoothly with common 3d tools like Blender. It is the engine used in Pirates of the Caribbean Online, and the other Disney MMOs. Most Panda3d code is in Python, which is marginally 'easier' than C++, but similarly powerful. Finally, the best thing about Panda3d for users like you is that the manual is bountiful and gentle. It guides you slowly through the process for creating a 3d game. Has anyone else used Panda3d? What about other 3d engines that this person might try?
|
|
|
Logged
|
|
|
|
Ivan
Owl Country
Level 10
alright, let's see what we can see
|
|
« Reply #11 on: July 22, 2008, 12:18:51 PM » |
|
If he has never written a game, or worse yet, has never programmed, he shouldn't be trying ANY 3d engines, but instead learning programming and game development basics in simple text-based or 2-dimensional frameworks.
|
|
|
Logged
|
|
|
|
PaulMorel
|
|
« Reply #12 on: July 22, 2008, 12:20:23 PM » |
|
If he has never written a game, or worse yet, has never programmed, he shouldn't be trying ANY 3d engines, but instead learning programming and game development basics in simple text-based or 2-dimensional frameworks.
True, I missed that 'never written a game' thing.
|
|
|
Logged
|
|
|
|
RC
|
|
« Reply #13 on: July 22, 2008, 04:45:43 PM » |
|
I actually have written over 30 projects, well, started on them. I have previous programming knowledge if you take Game Maker Language as a programming language, which it is. I've understood that Game Maker can be quite powerful when using DLLs with it, my only problem is the I never finish any of the projects I start, and I've figured out this problem.
When I didn't have internet for over two years, I made a shit load of games and actually had the motivation to finish them, but now, I'm trying to create games for other people and I'm trying too hard to make the game perfect, fun and good looking, thus making it too much for me to complete and I lose all interest in building it, the major problem is after seeing all of the other game makers' games, I've been trying to compete with them and make them better or equal to them in every single aspect.
I obviously can't do this, and I was hoping by moving to a programming language other than GML, I would have more options and opportunities to choose from. I've been making games since 2003, since then I've became a more skilled programmer in GML, but like I mentioned above...I don't really know if anything can help me achieve my goal.
I've had web programming experience such as MySQL and PHP, not that that really matters at this point.
|
|
|
Logged
|
|
|
|
joshg
|
|
« Reply #14 on: July 23, 2008, 08:58:24 PM » |
|
Not to sound abrupt, but the best place to look for answers to this question is probably the Programming Languages thread that's already stickied on this forum. http://forums.tigsource.com/index.php?topic=49.0The list highlights some unique languages such as BlitzBasic and Processing that are specialized towards games and/or interactive visual stuff. It also lists a bunch of resources for more general-purpose languages such as Java and Python that'll help you get a head start if you decide to try one of those. As for an actual recommendation, I've had good experiences with BlitzBasic and Processing, and I've heard enough good things about Python that it's on my list of languages I should learn at some point so it's probably a good choice too.
|
|
|
Logged
|
these are from an actual radio shack in the ghetto
|
|
|
Decipher
Guest
|
|
« Reply #15 on: July 23, 2008, 10:01:30 PM » |
|
I actually have written over 30 projects, well, started on them. I have previous programming knowledge if you take Game Maker Language as a programming language, which it is. I've understood that Game Maker can be quite powerful when using DLLs with it, my only problem is the I never finish any of the projects I start, and I've figured out this problem. This is not that much of a problem to be honest. It's just you're a perfectionist and you must learn when to say "enough". How do I know? I am quite the same... Though, for quite some time I can finish whatever I started. So, my advice to you is to declare yourself goals, but not limits. Working on a platformer? Cool, have a todo list, accomplish each task individually then you're done; AND don't change the project while you're working on it until you take your control back from... yourself. So, what I mean is, finish something, doesn't matter what just finish something. The pleasure you get out of it is even better than an orgasm so you'll have motivation for your next project. I don't think you have any problems with the programming language, you have problems with motivation and concentration. Don't expect your first complete game to be something everyone will love, all of those developers you compete with didn't come to that point like that, they sucked in the beginning like all of us did. Thus, just try to finish something really small. Screw 3D, nowadays everyone goes there... Coding 3D games won't give you this "airy" feeling, it will just take more time to code and most likely make the task a harder one to accomplish.
|
|
|
Logged
|
|
|
|
RC
|
|
« Reply #16 on: July 24, 2008, 07:10:18 PM » |
|
Yeah, I do try to make everything perfect, and looking at the other developers games does make me feel like I need to try my best and make a great game, I've partially finished a couple of games, but never released them, I can't now since they're on my old PC.
|
|
|
Logged
|
|
|
|
Cymon
|
|
« Reply #17 on: July 25, 2008, 02:14:25 PM » |
|
You could always start simple so you don't feel overwhelmed.
|
|
|
Logged
|
|
|
|
GlingGling
|
|
« Reply #18 on: July 25, 2008, 08:25:36 PM » |
|
Close your eyes, spin around until dizzy, point, and then open your eyes. Whatever language you are pointing to is fine.
Obviously it's not quite that easy, but it's not a big deal where you start. Start somewhere that looks like you can make something that you want. Progress in that environment until you can't make the things you want in the amount of time you want to make them.
Almost every programmer I know that has been programming for over 4 years doesn't use the programming language they started with.
It's probably best to start somewhere friendly (unless you reckon you're smart enough). Any of the game makers are good. Processing is fun to start with. Some of the game frameworks are friendly. What you'll find on this site is that everyone uses and swears by something different.
As long as you get on the road and start moving you'll be fine.
|
|
|
Logged
|
|
|
|
increpare
Guest
|
|
« Reply #19 on: July 26, 2008, 01:35:02 AM » |
|
What you'll find on this site is that everyone uses and swears byat something different.
|
|
|
Logged
|
|
|
|
|