How to gain functionality in game engines?

Hey guys I have decided to pick up C++ as I want to move on from modding Minecraft and take the next step to developing games. My desire is to gain an extensive knowledge of C++ and Lua languages for the Outerra engine when it's Sdk is eventually available.I am starting from the very basics and I'll work my way up. The only coding experience I have is basic understanding of java syntax in relation to modding Minecraft.

My question is how do I apply my C++ code to a game engine to gain functionality such as Huds and Ai. Is a scripting language more beneficial for Ai. ?
Any help?
C++ is good to write complete game engines, because of its design and strength. You should learn how to use graphics APIs to work with game engines (OpenGL/DirectX), along with SFML/Qt/SDL...You can rather rapidly learn how to create simple maps. (in weeks). You can also make UIs with these APIs. But definitely you should learn C++ before, and write simple programs first. I think when you understand pointers, and a little OOP, you can start using these.
Thank you very much. So is there any websites or books you would recommend I use to help me study C++?
Cronin wrote:
My question is how do I apply my C++ code to a game engine to gain functionality such as Huds and Ai.


Any Game Engine worth anything will have the functionality already in it to for HUD's and AI. They will have dedicated libraries for both of those aspects of a game.

For example if we look at the new Unreal Engine 4 (Which uses C++) they have a dedicated framework for the UI of your games you create with it called Slate. This framework takes care of all the hard low level stuff for you so all you need to learn is how to use that framework to create your UIs.

So more then anything you will need to learn how to use the frameworks that the engine your are going to use provides you.

But since you have no experience with C++ I would say first before you go out and try and learn how to use them libraries to create your HUD's and AI, learn the basics and advanced topics of C++ first. Once you got a good grounding of C++ you can move on to learning how to use the libraries your Game Engine provides.

Cronin wrote:
Is a scripting language more beneficial for Ai. ?


Well it all depends on what you mean by beneficial. If you mean is programming the AI of a game in a scripting language better? Then yes most of the time it is.

A large portion of game's AI code is done in scripting languages now days. There is multiple reasons behind this but some of the main ones are that writing AI in scripting languages is generally a lot less work and quite a bit easier.

Also AI code is very very prone to changes and a lot of very minor tweaks happen over the course of development so not having to compile every minor change is a big plus. There is of course many other reasons but you can read about them online if you are interested.

Though if you are just looking to learn about AI then it really doesn't matter what language you learn because AI is very language independent. Just like with a lot of things in programming the core concepts stay the same no matte what language you are programming in.

So once you learned how behavioral trees, navigation graphs, steering behaviors, or whatever works you should be able to implement them no matter what language you are programming in.

Hopefully that helps a bit. If you have anymore questions just let us know. Game development is a passion for me also so would also be willing to help out when I can.

pandasd wrote:
You should learn how to use graphics APIs to work with game engines (OpenGL/DirectX), along with SFML/Qt/SDL


Actually unless he is going to be specifically dedicated to the graphics of the games he makes I would say his time is much better spent learning about the engine itself then openGL/DirectX.

Don't get me wrong it is good to have at least some understanding of how it is done at the low level but when working with almost every engine out there you very rarely have to touch openGL/DirectX code because the engine has already done that work for you by abstracting that away.

Yes you will still need to know the basics like matrices, and other 3D graphics related things but I think the time would be much better spent learning the game engines libraries then learning openGL or DirectX themselves.

As for SFML/SDL they area 2D game frameworks and there is no point learning them in my opinion since he already has decided to use another game engine I believe. Not really sure why he would need learn Qt either.
Last edited on
Thanks for your detailed reply.I plan on using the Outerra engine to make games in the future. For now my engine of choice is cryengine 3. Do you have any good starting pointers for me?
Topic archived. No new replies allowed.