Jump to content
  • Advertisement
Sign in to follow this  
hiroshisan

Engines and Languages, in general (LONG POST)

This topic is 4834 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Before I start, I want to say this is not a rant, but I may be inclined to state my less than optimistic feelings for some of these choices. Disillusionment is probably the best word. I have been browsing the forum for about 2 hours now, and there's all kinds of helpful details for x number of programs, however what I failed to find was a general opinion thread about different engines and programs themselves. So I just had a few questions. Professional engines are out of the question for me (I can afford about US$12.87 worth of software), so I was trying to find other engines that were free or thereabouts, and I found some nice ones such as Nebula and Torque. Only, well, I can assume they're nice, because they have nice screenshots, but when I downloaded Nebula it came with documentation that had near no details on how to do anything. Lots of online help, they say. I looked, and found lots of pages that assume you already know everything. I have been using 3D Game Studio since high school, and I know C-Script like the face of an old, familar friend, but I only have V5.12, and I would be willing to save my money to get the pro edition of V6 simply because the people there don't assume that you were born and raised in C++land. On the downside, C-Script is not as versatile and 3DGS is supposedly more limited than other engines. So I would get another engine, but the thing is, you can't get much more limited than an engine that doesn't do anything, can you? And then you've got the matter of programming it. Programming languages are one of my strong points, but I have yet to learn C++ because all of the compilers (or IDEs, or whatever terminology you want to use...programs that make C++ get off it's ---) that I have found are ridiculously obscure, half the time just command line instructions that take what you've written in some text-editing program, and...you get the idea. I mean, I would love Visual C++, but, yeah. Seriously. It's like the game design industry is so exclusive not because everyone wants to do it (well, that too), but mostly because if you don't have the bells and whistles, you won't get hired. And if you can't afford bells and whistles, you're stuck. So, what this winds down to, is what engine is the best? Opinions, obviously, but valuable opinions. And what IDE/compiler would be good for a small budget? I got a book called "Game Programming All-in-One," but that assumes you can afford or have Visual C++. It also came with the DirectX SDK, but DX is a toolset, not an engine itself, right? If I could use that by itself, it would just be a matter of finding a good development environment. Thank you in advance for any advice.

Share this post


Link to post
Share on other sites
Advertisement
Well, I've only tried one game engine so far (other than that I've been trying to make my own), but it's more of a library than a game engine (even though it has Game Engine in its name).

As for compilers, I would recommend either Microsoft Visual C++ 6.0 or CodeWarrior (both of which you can find on ebay for less than 100 dollars). If you want to use DirectX9.0c, then don't get MSVC++ 6.0 (the DirectSound headers won't work with it).

DirectX isn't really a toolset, its an SDK (software development kit), so it's more like a library than an engine. You can use DX, but you have to program the rest of the classes yourself (don't ask me what they are, I'm still trying to figure that out myself).

Hope that helps!

Share this post


Link to post
Share on other sites
Quote:
Original post by hiroshisan
It's like the game design industry is so exclusive not because everyone wants to do it (well, that too), but mostly because if you don't have the bells and whistles, you won't get hired. And if you can't afford bells and whistles, you're stuck.

Absolutely untrue. Especially nowadays, you can get everything you need to become a really good programmer without spending a dime. The real reason is that many (most ?) beginners are trying to run before they can even walk. Don't even think about using (or worse - writing) a 3D engine, before you can use the very language it is written in. Of course a C/C++ 3D engine is going to be difficult to understand, if you don't understand C or C++ ! What else did you expect ?

You already have experience with 3DGS. Good, that's a start. But now, you have to build up your knowledge in small steps. If you want to go into 3D engine programming, then you'll have to learn a decent high level language first: C, C++, C#, Java, Python - pick yours. See it as a real life analogy: your 3DGS experience is like you knowing how to drive a scooter. Trying to write a C++ 3D engine using DirectX with your current experience, is like trying to fly a 747 with your scooter-driving experience :) It just won't work, because you lack the intermediate knowledge required. You will get frustrated, and give up.

Quote:
Original post by hiroshisan
And then you've got the matter of programming it. Programming languages are one of my strong points, but I have yet to learn C++ because all of the compilers (or IDEs, or whatever terminology you want to use...programs that make C++ get off it's ---) that I have found are ridiculously obscure, half the time just command line instructions that take what you've written in some text-editing program, and...you get the idea. I mean, I would love Visual C++, but, yeah. Seriously.

Visual C++ is no different. This is how it works in the realms of actual programming (ie. not integrated packages such as 3DGS): you have several command line tools that are used to compile and link your code, libraries, etc. The IDE just assembles them together in a more user friendly way, but it still boils down to you writing code in some editor, and command line utilities being called onto it.

A further difference is, that C/C++ is a language standard, and not tied to one specific compiler. It doesn't matter how obscure one compiler might be (and eg. gcc can in fact be daunting, if you try to use it on the command line directly), it won't affect the language which just stays the same from one compiler to the next. Learn the language, and you'll be able to use it on any standard compliant compiler you want.

Quote:
Original post by hiroshisan
So, what this winds down to, is what engine is the best? Opinions, obviously, but valuable opinions. And what IDE/compiler would be good for a small budget?

Forget about the engine right now. Concentrate on the language. A good free IDE is Dev-C++ from Bloodshed. It uses the MingW compiler internally (the Windows port of the well known GCC). About learning the language, well, there are many online resources and ebooks available for free download. Here is a good start.

Share this post


Link to post
Share on other sites
Well for a compiler you can use the VC++ Toolkit which gives you the C++ compiler that comes with VS.Net 2003 Pro (though not the IDE). Code::Blocks is an IDE which you can easily use the VC++ toolkit with. There's also the VC++ 2005 Express Edition Beta which you can get here, though this will stop working at some point as it's a beta product, when it is finally released it should be rather cheap ($50).

As for an engine to use what's wrong with 3D Game Studio? If you can do what you want with it then there's no reason to stop using it. If you're looking for an engine to use with C++ Irrlicht is pretty simple (though I am personally not particularly fond of it's architecture).

Share this post


Link to post
Share on other sites
Thanks for all the help, everyone.

So you can get results without an engine? I mean, I got the command-line compiler I was using to make the typical "hello, this is my first program" script, but I figured all you could do without an engine is text-based stuff like that.

I am already familiar with components of scripting (variables, strings, arrays, etc.) so (hopefully) it will just be a matter of learning the C++ syntax and stuff exclusive to that language (C++ is the language I've been after since forever). But what exactly can I do without an engine? Naturally, I need experience with the theory before the practice, but...then again, as mentioned earlier, I shouldn't get ahead of myself.

So again, thanks for all the help (I'm downloading devcpp right now, in fact...) and hopefully I should get along pretty well with that.

BTW...how do I write C-plus-plus? The preview window just keeps cutting it down to C...

Share this post


Link to post
Share on other sites
Oh, and monder...

From a design standpoint, I love 3DGS. It is simple yet intuitive enough that you can write scripts without having to bang your head on the keyboard too often.

HOWEVER (there's always a HOWEVER, isn't there?), it is not too versatile on the visuals side. I could make a great game with it, but it would lack the overall pizazz of many of the newer systems. Not that I expect to make games like Project:Snowblind or Halo overnight, but I want (one day) to be able to make my games specularly spectacular and stuff.

In all, 3DGS is great to learn the basics on, but it really is just too limited, when you think about it.

Share this post


Link to post
Share on other sites
Quote:
how do I write C-plus-plus? The preview window just keeps cutting it down to C...


Just type C++, the preview window is pretty new so it's a bit buggy which is probably why it cuts it down to C.

Quote:

So you can get results without an engine? I mean, I got the command-line compiler I was using to make the typical "hello, this is my first program" script, but I figured all you could do without an engine is text-based stuff like that.


Well seeing as the majority of engines you'd use with C++ will be written in C++ themselves, yes you can get results with getting an engine from somewhere. However if you're going to be making anything complex you'll end up writing what amounts to an engine anyway and as a beginner you'd be far better off using a engine written by someone else rather than writing your own.

Though you want to start small, you can write little text based games. A simple example is a guess the number game where you generate a random number and then the user has to guess it, when they give a guess the program gives them some feedback on how close they are to the number (e.g. it could say too high or too low). Another simple example would be a quiz game where the user is asked multiple choice questions, you could load in questions from a file and save a highscore table somewhere to give you practice with file I/O.

Then when you want something a bit more graphical you can take a look at a simple 2D API such as SDL or Allegro and start making games like Pong, Breakout, Tetris, Pacman etc. After you've written some reasonably large 2D games you could make the jump to 3D (you could jump straight into 3D but then you'll have to contend with learning all the theory behind 3D graphics as well as learning how to actually build games, 2D graphics are a lot simpler generally so 2D games give you one less thing to worry about). At this point I would recomend the use of a 3D engine rather than trying to build your own, unless of course you don't actually want to make games and are far more interested in making technology in which case you may enjoy making engines more (just don't expect to get anywhere for a long time or ever have time to actually make a game).

This may seem like a lot of work which will take a lot of time but learning how to program, learning C++ (note that learning C++ and learning to program are seperate activities) and learning all the stuff you need to make games takes a long time.

Share this post


Link to post
Share on other sites
Dev-C++ was a good choice. YOu can download the book Teach yourself c++ for free. Just google for it. There is also some good tutorials at cprogramming.com

Share this post


Link to post
Share on other sites
Quote:
Original post by hiroshisan
And then you've got the matter of programming it. Programming languages are one of my strong points, but I have yet to learn C++ because all of the compilers (or IDEs, or whatever terminology you want to use...programs that make C++ get off it's ---) that I have found are ridiculously obscure, half the time just command line instructions that take what you've written in some text-editing program, and...you get the idea. I mean, I would love Visual C++, but, yeah. Seriously.

It's like the game design industry is so exclusive not because everyone wants to do it (well, that too), but mostly because if you don't have the bells and whistles, you won't get hired. And if you can't afford bells and whistles, you're stuck.


Well, you can go a long way on free tools, especially these days. It wasn't really the case 5 or 6 years ago, so this is a second golden age for the hobbyist programmer. But the other side of the equation is this - programming is hard. So hard that most people in the industry went to university and specialised in it for several years. It's not deliberately kept hard, it just happens to be a complicated matter. Working with text files and feeding them to a compiler - well, that's just one of the things you learn. When you come to debugging programs you'll probably end up working with even more esoteric output. It's just something you have to take the time with.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!