Advertisement Jump to content
Sign in to follow this  
Krynnymuffin

So, I want to make a game engine...

This topic is 1863 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

Yosa, I hope that kind of title in the For Beginners forum didn't freak you out that much. But it is true, I want to make a game engine. Oh, no, not right away, mind you, but I do want to work my way up to that.

 

See, I'm still on phase 0 of my multi-phase engine building plan: learning programming languages. I do understand the basic logic of pretty much all programming languages, like loops, strings, variables, etc. but the only really programming language I know is Javascript. I need to know more.

 

I want to make a game engine for a game that could simply be put in the RTS genre, but I want to mix in some aspects of multiple other game genres. I AM going to learn C# ('cos I'm a Microsoft Fanboy), and Java ('cos I'm a Minecraft Fanboy too), but I'm not sure which would be best for an RTS game.

 

So my two questions to you, Readers, are: what programming language do you think is best for making RTS games, and what other programming languages would you advise me to learn?

 

I might post again about how to actually make a game when I've learned a couple languages. Until then (and after then because it'd be rude to withdraw just because I posted again), thank you all who reply!

Share this post


Link to post
Share on other sites
Advertisement

Having a "taste" of different languages is indeed an excellent idea.

I'd personally stay away from Java. It's just too verbose and HTML5 can do many, perhaps even most things Java excels at. The library is quite verbose and system integration is, in my opinion, still lacking.

However, no matter what you do, you will never be able to build an engine (in the sense of multi-game shared platform) without writing a few games first, possibly from different genres. Your resulting design would just not interact well with the gameplay constructs or the data flow involved.

So, next step in your path to engine design is: write an engine (in terms of logic for a game).

Share this post


Link to post
Share on other sites
In my opinion C++ is a good tool, JS is a good tool too! Basically every language can do everything, all you need is imagination. As mentoined above, it is good to start with smaller projects like clonning the old classics or small JRPG games just to get the feeling of how a game loop works. You can jump to higher projects as you get the feeling of the code. When you feel you can do it you should google for RTS design guides, this will pretty much help you. Start with 2D first, their coding is more friendly, then you can proceed into 3D. I hope I was useful.

Best of luck,
Teckpow

Share this post


Link to post
Share on other sites

I would advise you to break your goal up a bit here - I understand the want to make a game engine.. Its not really about reinventing the wheel to have a wheel to use, its more about reinventing it to understand how it works.

 

My advice - try to make a 2d rendering engine first.. don't worry about the networking and sound and all that stuff - once you get that working then add sound support and make a couple 2d games using it - if you really want to get fancy you can add a toolkit for it that allows you to make maps or levels

Share this post


Link to post
Share on other sites

Earlier given advice by the others is perfectly valid.

 

Personally, if the aim is to make a game I would take the "make games, not engines" approach. This doesn't mean you won't make the engine though. Just start off with getting something on the screen, as in, make a basic 3D render engine (or 2D if that's your aim). From there on out, focus on what you need for your game (collisions, physics, sound, etc) and build that. Build it with re-usabilty in mind. Pretty much what EarthBanana said. :)

 

In the end, you will have a couple of building blocks that make up good start and basis of your engine and on top of that, you have your game.

 

You will find flaws in your systems, things you will want to do differently next time, make (stupid) errors and everything else wrong. But that's something one will always have, even the best still make mistakes, but on a different scale, so never let that be a motivation killer.

 

Just keep in mind that getting the game engine is a long term goal and that you should learn from making it, whatever way you choose of making it. It's best to look at it as an iterative process.

 

Good luck! :)

Share this post


Link to post
Share on other sites

I started off with Basic back in the day and then I moved onto Turing and then in high school I learned Pascal.  Once I got to university I picked up C/C++ and then I found that learning other languages was pretty easy like HTML, JavaScript, PHP, ASP etc.  So if you want to be a coding guru, I highly recommend learning C++, it seems like other languages are much easier to learn after you have a good grasp of how C++ works.

Share this post


Link to post
Share on other sites
Learn C++, clone games starting from the simplest, use a pre-existing game engine (unreal, unity, torque), make a good number of your own games with the engine you're using, read up on the features that make up a game engine (graphics api, physics engine, audio, AI etc.) when you've become good in C++, game dev and know what makes an engine tick, start building the game engine (don't forget to use pre-existing libraries like ogre for render, physx for physics etc. except you are ready for serious work and supernaturally good in maths and c++, then you can make everything from scratch) and keep making it better (that's my advice and i'm a beginner like you that want's to make a c++ game engine so that's also my plan)

Share this post


Link to post
Share on other sites

Might I suggest looking in to SOLID principles. I'm currently in a team working on a game engine, and things got a whole lot better when we stuck to SOLID principles; obviously they're not the be all and end all however they're certainly great habits to get in to.

Share this post


Link to post
Share on other sites

A "3d" engine is code that does a lot of 3d math.  A language is simply the embodiment of a programming paradigm. C++, C#, and Java are object oriented languages, but it's perfectly feasible to write a game engine in visual basic or C. Languages aside, you need to have a good grasp on 3d mathematics. Unless you plan on writing your own 3d graphics library as well, you're pretty much using opengl or directx -- and we're not even talking shaders yet. Then there's the matter of assets to consider. Is it going to be single or multi-threaded? Take a look at this site: Game Institute

Edited by Code_Grammer

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.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!