Advertisement

Modifying an open source game engine for your needs:Where should I start

Started by November 26, 2013 11:06 PM
31 comments, last by Nathan2222_old 11 years, 2 months ago

Hi all.

I'm new to the forum so my question.

At first, i wanted to create a gta style game because i loved it so much. Searched the web for information and i gathered as much as i could. Game engines was a real pain because none were meeting my requirements. Unreal, unity, blender game engine, Bethseda, source engine and even cry engine. Cryengine did come really close but it had some problems.

1. the unknown license

2. the face that i don't get the source code

3. the fact that cryengine 3 is more optimized than 2 thereby not allowing for really big open world games because of floating points accuracy.

SO which engine did i find, the younger not so popular sister of cry engine, TORQUE 3D. It had almost all what i needed without the crazy license and access to the source code. Now, after going on search the net leave for awhile, watch dogs demos came. I'm watching them as I'm writing this. It is supercalifragilistically awesome. My needs increased because watch dogs has so many things i haven't seen torque do so please i would really want to modify this engine to perfection(almost) and use it.

I can't really seem to find c++ tutorials or maybe i haven't searched enough. I want to modify the torque 3d engine to be really good because it has some faults with the AI, lip synching, the way plants look water physics and physics is really a must for me.

I am not sure where to start but i have this image gotten from the game engine architecture book. Unfortunately i don't and can't afford the book, yet.

Can someone please point me in the right direction.

Thanks.

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy


I can't really seem to find c++ tutorials or maybe i haven't searched enough

Does this mean you don't know how to program? If so, starting your programming career with modifying the engine to be "really good" is just going to frustrate you.
These engines (including TORQUE 3D) are horribly complex and have taken teams of highly skilled people ages to put together. If you want to make a game using a prebuilt engine, it's probably in your best interest to just use the engine as it is - and even then it's going to take a lot of work.
If you're still looking for C++ tutorials, try www.cplusplus.com. It's not going to tell you how to modify to the source code of any game engines, but if you're just starting out, you're probably months (or more likely years) of full-time study and practice away from understanding enough to make the changes you want.
It's a hard truth, I know, but one you're going to have to live with.


Advertisement

Hi,

I agree with Peter.

Releasing a new version of a game engine takes the development team months or even years. They have all the original tools, documentation, and experience with the game engine, yet it requires much time and thousands of lines of coding.

I don't mean to hurt your feelings, but have you estimated the amount of coding that you must search in a game engine? In the range of 100,000s to 1,000,000s of lines of coding must be searched and parsed.

Added to this, there is the issue of the range of coding to be examined, too. There is low and high level coding, as well as branches. Truly only an expert in said game engine, working with a team, could hope to complete a new version in less than a couple of years.

Everything that you need with a game engine can be accomplished by simply scripting a game source code of your own. The game engine might allow Python, C#, Lua, Java, C++, or whatever, and most of them are designed for a particular workflow pipeline of software and applications for most efficient development.

Go trekking into the jungle of a game engine alone if you like, but it is best to follow the proven and beaten path made for the beginner.

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer

What PeterF and 3Ddreamer said is very true, so I won't go into more detail than what they already said.

It's kind of hard to judge if you're new to programming or not due to the vagueness of that in your post. I'f you're new to programming, you should really sharpen up that skill first before you want to dive into existing game engines and alter them for all the reasons (and more) already stated.

In my opinion, the best thing you can do, provided you do have a proper programming knowledge is perhaps not to jump in a fully fledged game engine, but take a render engine and extend on that with the things you want/need. This is a pure speculation, but with the time you're going to invest in making a full fledged game better by adding or altering stuff (and very likely break stuff), it's probably worth more your time and effort to freshly build upon said render engine.

Take a look at Ogre3D or Horde3D. They're both opensource and have plenty of resources to get you started. I would personally go that road instead of learning an entire engine and break it down.

Good luck though :)

Well,

It looks like you want to modify a C++ engine without prior knowledge of C++.

If that's the case, you'll need to get a grasp on C++ first. This will probably take weeks of really hard work (or months without classes or a good book).

But tutorials won't cut it; you'll need a better resource. Try to search wikibooks for a good C++ programming one.

If you already know C++, great!

1 - The second thing to do is to define what you need that the engine can't do. Write down the names of the features, or descriptions. You really need to do this step, if you can't name and describe your needs you probably don't know exactly what you want; nor if the engine can do it or not.

2 - Then you should describe why the engine can't do what you want. You'll probably discover some could be done in the engine.

3 - If even after this there's still missing features or capabilities you can go ahead and edit the code for the engine. If you really gone through step 2, you'll probably know what code you need to edit.

Out of curiosity, could you tell us at least one thing Torque3D can't do that you need?

Okay lots of points to address here.

Regarding CryENGINE:


1. the unknown license


Free for noncommercial, negotiated for commercial, with provisions for indie games.


2. the face that i don't get the source code


Most things you would add would be in the Game layer anyway. Also, in CE3 most systems are separated into discreet libraries and interacted with through somewhat COM-inspired abstract interfaces, so it's possible to swap some functionality with your own implementations in some cases as long as you program to the interface.


3. the fact that cryengine 3 is more optimized than 2 thereby not allowing for really big open world games because of floating points accuracy.


64x64 sqkm is generally the recommended maximum size of a terrain in CE3. San Andreas was 36 sqkm. You've got a massive team to fill all that space with content, do you?

As for Torque3D, nice engine actually difficult to make work for a GTA clone. No asset streaming. This can be worked around a bit by cleverly chopping the world to make the zoning load screens happen in logical places, but imposes some restrictions on level design.

I will also point out your complaints about lipsync and AI are off base though, lipsync quality is determined by the quality of your dataset and your character rigging.

AI development can be assisted by some built in state machines, goal system, communication system etc provided by some engines, but that don't inherently mean that having those features (or not) makes the difference between "good" and "bad" AI, it just speeds development.

Anyway, have a look at the Grit Engine. An open source engine designed specifically for large streaming worlds.

Advertisement
Hi people.

I was too blown away by what i saw in the watchdogs video that i forgot what i wanted to ask.

@PeterF: I do know how to program but not C++. Unfortunately i started with VB.NET and can make simple programs, dabbled with "some" C# and when i decided to use visual C++, i couldn't find anything because everytime i clicked debug nothing shows and that really didn't help.
Is codeblocks any good cuz visual C++ doesn't seem natural.
And it won't take me years to learn C++. I learn pretty fast. My estimation is anything from 6 months to 18 months depending, it could be less.
Even if it is horribly complex, my needs won't let me not to really tweak the engine because of what i want. I am ready to learn anything so far as it will help me in this aspect but i can't buy books because i ...

@Rld: Um where would a render engine come in.

@dejaime: Torque can do almost all i want with the exception of lip synching except you have any video showing a lip synched game made with torque. Now, while torque can do most of what i want, it doesn't seem to do how i want it. For instance, if you check videos, you will see the plants looking unreal and that doesn't loo right to me. Water physics in torque is really not that good, in fact i was advised on their forum to use the triton wake generator for anything water related because torque's water physics system isn't that good. Comparing the triton wake generator water to the water i saw in the watch dogs video is like comparing a bicycle to a power bike, i.e. they both do it but one looks better. SO i will have to work on that.
Another thing is cloth physics, actually, i haven't seen any cloth physics so that's that.
I really want everything to look very good, like really and cryengine could do that but it has it's problems.

@xenobrain: Are you sure its 64x64 and not 8x8 or 6x6 because when i asked on their forum, the response was that anything after a 4x4 world would start behaving really weird (physics failing etc.) and since we don't have access to the code like torque, there is no way of changing that. The said this problem wasn't there in cryengine 2 but came in cryengine 3 because of how demanding the crysis game was on hardware so.
As for torque working for my game (it's no longer a GTA clone but rather a game that looks at all the flaws in games and makes sure none of that is there, Pieces of gta, watchdogs, need for speed, splinter cell, call of duty etc.) it should be alright or better after i learn c++ and refurbishing it.

Like i said, i searched game engines for like a 2-3 months or more and i came across the grit engine. It's being developed by gta modders but it is so far away from doing what i need. They haven't even added npc's into the game engine, only cars. I joined their forum so.

As for the license, i am not so ready to call a company like that to ask for their prices when there are others around. It is said you have to show them what you have before they negotiate so imagine me making the game on cryengine 3 only to here that the license is $5,000-$100,000 because on their site they group games differently and my game will probably fall into the serious games group. Too risky.

The game will be for pc, using the c++ language.

If you checkout watchdogs videos, you will see the physics simulations i am referring to. Water, cloth, vegetation and it's fire looks a bit better than gta V's. One thing that didn't feel right was the driving, it didn't look good. \other than that you can see things that are not as represented in gta v. hugging on streets, using of pc's, throing stones at camera's etc. Remove the hacking and the repitiveness and you've got a great game.

I found one video that talks about the disrupt engine and what makes everything in the game move so real because of the wind.. Watch it to the end and you will see. It starts wierldly though so please ignore the first 3- 10 minutes
[video]http://www.youtube.com/watch?feature=player_embedded&v=V8vq07Ep8mA[/video]

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy

This is the water i saw in the video and it moves like real water for a game. How hard will it be for me to accomplish these things

1370953939_wd_screenshots_relaunch_beaut

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy

If I knew C++ you can bet I'd be modifying the engine I am using which is free and open source and the license is very clear on that.

I can only use the Lua scripting right now, but when I buckle down and apply myself to learn C++ this is the engine I will be using. It is called Maratis 3D.

As for your screenshot, I actually do think that such a look is very capable in Maratis, although it doesn't offer a lot of tools to help make it easier (you'd have to make it yourself.) I have to bake in my color and ambient occlusion before I enter Maratis.

To get the water to look like that you could use an animated normal map (which I have yet to do in Maratis, although I have done animated textures to make water).

Someone has also simulated fog in Maratis. As for the buildings I would use Google Sketchup (this is my software of choice hands down when it comes to environment modeling). My main hang up is all the time it takes to texture all the buildings (although I am finding a workflow for doing such a thing.)

Here is a link to my showcase on what technical things I was able to do with Maratis:

http://forum.maratis3d.com/viewtopic.php?id=738

I also have other posts on the site as well with more photos.

They call me the Tutorial Doctor.

You're a really good modeler. i really like the characters.

Maratis is based on blender game engine which i plan on using. You say it can create that kind of water which torque can too but can it create the waves. The waves are important.

The UI doesn't look nice.

I'm gonna stick with torque.

Can somebody please watch that video in the link i pasted and tell me if it's possible to add that functionality in the torque engine, i.e. the part where they start talking about disrupt engine

UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32

--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy

This topic is closed to new replies.

Advertisement