Choosing the right language/editor/engine (detailed requirements listed)

Started by
6 comments, last by padli 17 years, 8 months ago
First of all, hello to everyone on this forum. Hopefully, I'll be spending a lot of time here in the future. And now on to the issue at hand... I'm having trouble deciding on how I should approach game development. I've dabbled with The Games Factory as a kid, but later decided to move on to something serious, specifically C++, although I only began to really study the language recently. I was getting along fine, and was just about to move from pure basics to more advanced stuff, when I came to a realization: I was not sure whether C++ was what I needed. I realize that C++ is a very powerful language, but I'm not sure whether this power would really benefit me. I'm worried that writing my own games from the ground up would be too time consuming, because I also want to make other things (such as graphics, level designs and sound), not to mention that I have numerous other hobbies. What needs to be said is that I have no interest whatsoever in programming complex graphics (i.e. 3D engines). I am 100% positive that having an efficient way of programming 2D graphics will be all I ever need. So naturally, I need to set my priorities straight, and I was hoping you guys could help me make the right choice. Here are some of the considerations I've made, along with questions I might have about them. I would really appreciate it if you could comment on my thoughts or answer some of my questions to help me make my decision. 1.) Stick with C++ a.) Write games from scratch The problem with this option is that I really don't know what's ahead of me. I don't want to spend too much time with this language only to find out in the end that it's more than I'll ever need. I want to distribute my time among design, writing, graphics and music; I have no interest in specializing in programming only, especially if it doesn't give me any benefits over the other options. b.) Use an existing (open-source) engine or library I know using existing, pre-made engines will reduce my learning curve - I just don't know to what degree, or even which engine to choose (for making, say, a 2D platformer). Also, the idea of using someone else's unmodified code is just... wrong, to my mind. 2.) Learn another language. This seems to be the simplest solution, but I'm not really sure whether it's right, or which language to choose. I know languages like C# and Java are easier to learn and apply than C++, but I'm not sure to what degree. I don't care about the performance losses that languages using VMs incur, since I already know I have no interest in programming high-performance software. So the question here seems to be - which one to choose, and how much easier is it to use than C++? 3.) Use a "point-and-click" editor (such as Game Maker) This solution is probably pretty bad. I know from experience that The Games Factory is not even remotely right for me, since it's missing countless essential features (it can't even mirror sprites in realtime!) and is all in all terribly sub-optimal. I've yet to learn to use Game Maker, but somehow I get the feeling it's not going to be ideal. I'm not familiar with any other similar sofware. Well, that came out longer than expected. :) Anyway, if you've got any comments or suggestions, I'm all ears.
Advertisement
Depends on what you intend to do with your future? Are you looking for a future job in game development as a possibility? If this is the case, I would say learn an existing library or game engine. It's true that you won't know how everything works by doing so, but you don't really need to know how to re-invent the wheel. You simply need to know how to make a game. I would advise you get an existing engine and use it to develop games. Depending on the game type you are persuing I would say use something like HGE for 2D games and irrlicht or torque if you can afford it for a nice 3d game.

Learning another language will not by any means reduce the complexity of making a game. You still must implement the same algorithms and large time consuming tasks. The only difference is the language might be less lines of code and less complicated with memory management etc.

Point and click editors are okay, but are usually are used by people studying game design with not much programming experience. They allow you to make a game, without all the hassles of programming. So really this option is okay, but I wouldn't recommend it unless you think you are going to be one hell of a game designer. Which 90-100% of the time you won't be, after all why would anyone want to design your game when you’re new? You have nothing to show for yourself.
"Depends on what you intend to do with your future? Are you looking for a future job in game development as a possibility?"

Yes, I am potentially interested in a job in the game industry; but I have no interest in the the raw programming aspect, although I'd still like to learn something so that I have the resources to make games on my own.

However, I am primarily I am interested in game development as a hobby.

[Edited by - padli on August 18, 2006 7:53:07 PM]
Quote:Original post by padli
"Depends on what you intend to do with your future? Are you looking for a future job in game development as a possibility?"

Yes, I am potentially interested in a job in the game industry; but I have no interest in the the raw programming aspect, although I'd still like to learn something so that I have the resources to make games on my own.

However, I am primarily I am interested in game development as a hobby.


If your not interested in the programming aspect what are you interested in?
Quote:Original post by DevLiquidKnight
Quote:Original post by padli
"Depends on what you intend to do with your future? Are you looking for a future job in game development as a possibility?"

Yes, I am potentially interested in a job in the game industry; but I have no interest in the the raw programming aspect, although I'd still like to learn something so that I have the resources to make games on my own.

However, I am primarily I am interested in game development as a hobby.


If your not interested in the programming aspect what are you interested in?


I should reword that: I'm not interested in dealing *solely* with programming, which I feel is what using C++ may lead me to due to its complexity, as I've explained in my original post. I do wish to learn programming on some level, otherwise I'd not have opened this thread.

In simpler terms, I need to find some middle ground between using a point & click editor (too simple, too little control) and using an actual programming language to build games from scratch (too complex, more control than I need).

I've checked out the HGE website, and it looks great, and seems to be a solid solution to my problem. However, I'd still like to learn what advantages I'd have using a higher level language.
You didn't really answer DevLiquidKnight's question I think.
If you are interested in getting into the game industry, you will need to specialize first.
You can't start out directly as Creative Director or Game Designer, you would need to show your competence first in either programming, 3d/2d art, animation, concept art or music composing (just a quick overview).

And even if you are going to keep it as your hobby only I don't think C++ will hurt you.
You said you already know the basics, if you want to program your own 2d games you could start learning SDL and approximately in 2 days you could start working on your own platform-game.

Even with other languages it won't get much easier than that and with C++ you would always have potentially the better option to go for 3d by using one of many established APIs/wrappers/engines.
My Blog
The question here is: what things do you want to learn first?

If you choose C++ as your language, you will first have to learn about memory management techniques and guidelines (and several C++ quirks, such as the lack of a module system) at length, and only then actually start programming a game. If you start with C# or Java, you can learn how to code games first, and then learn memory management techniques and guidelines using unmanaged code or by moving to C++. You'll probably still end up learning both, so which one do you want to learn fully first?

Either way, for a beginner C# and Java are the fastest ways to develop interesting things (small games, as opposed to Yet Another Linked List to learn pointers). C++ is a good second language, but I see no point in starting with it — by the time you're skilled enough to get in the industry, you'll have had time enough to learn both C# and C++.

Other than that, neither C# nor Java use a VM anymore, instead relying on JIT compiling (that is, the code is compiled and optimized when you launch it, and then runs almost natively). I would rather advise to use C# instead of Java, because of the SDL.NET bindings (SDL is an excellent 2D graphics library).

Of course, you could also try ActionScript, which is good for 2D games available online, and has an included graphics library.
Quote:Original post by kiome
You didn't really answer DevLiquidKnight's question I think.
If you are interested in getting into the game industry, you will need to specialize first.
You can't start out directly as Creative Director or Game Designer, you would need to show your competence first in either programming, 3d/2d art, animation, concept art or music composing (just a quick overview).


Yeah, I realize this. You guys have correctly observed that I clearly have *no* specific direction in mind, which is why the prospect of focusing on programming right away seems intimidating. I'm also *not sure* about whether I want to work in the industry (which is why I may have avoided the question a little), so let's assume I'm just in this as a hobby right now.

My plan is to first make one specific project: a 2D platformer. I want to do all the artwork, music and level design on my own, even if this means having to limit the game or extending development time. But since I can already make pixel art graphics, and I can already compose music, the only element that is missing is programming; since I wouldn't want someone else to do it, I have to find a solution of my own. As I've pointed out earlier, the point-and-click engines don't really work for me (at least not the ones I know), so some lower-level solution would seem to be more appropriate.

Anyway, from the info you've provided, I've decided on finishing my C++ studies, then looking into HGE and Kyra, or maybe SDL. Once I get a game up and running, I'll see where that leads me, and focus on the development elements I'm good at. Only *after* I specialize in whatever aspect I find most appealing will I consider learning it to the point where I could use it professionally.

Anyway, if you have any other thoughts on this, I'll be happy to hear you.

This topic is closed to new replies.

Advertisement