Please work with Xamarin to make Mono for UE a reality

I personally havent ever done that, but if you look at the pull requests on the main repo, there are tons from other developers, who are constantly improving the engine themselves and passing the hard work off to Epic. Which makes every other developers work(Including you, assuming you use UE4) alot easier without even knowing they helped.

https://github.com/EpicGames/UnrealEngine define “tons”

Why should a developer works on fixing an engine instead of using it?
If you are planning to sell a plugin or an engine feature great, but if you are just making games you do not need the source code.

I think people need to be less scared of the source, we are in the business of making games, this does not mean we should be limited by what is provided, that is the beauty of what Epic has given us, unlimited potential. What if you were working on a game that had a feature where you wanted volumetric lighting? Would you just go “Okay UE4 can’t do it, so I wont try”.

I can tell you right now, the game I am working on, would not at all be possible without source access, I have already made, I would say, hundreds of changes to the engine to accommodate my vision. I am glad that Epic provided us with the source code, and I would not want it any other way. This is what has stopped me from using any other engine so far.

And just to clarify, this has nothing to do with fixing the engine, none of the changes I have made to the engine were to fix a bug, it was to add a feature that I wanted for my game.

Also if you want to see the full list of developers who have contributed to the engine in one way or another, just open the credits list in the UE4 editor, there are quite a few.

therefore the source that you need is the GAME source, not the engine one.

what about the old going to the competitor?

Unlimited potential works well if you have unlimited money, cause if you are in the “business”, usually people get payed.
You can’t go to your boss saying “hey, do you know the technology that you are paying for? There was a feature missing and I implemented it for free, I mean… free for them, not for you who are paying me”.

or even better https://github.com/EpicGames/UnrealEngine/graphs/contributors

If you limit yourself to writing game source, then you can only operate in the limits of the engine.
Thats the difference with UE4, you have **no **limits there. If something doesnt suit you, just make it your way.
It needs a bit more knowledge, true, but there is the possibility to do it. Cant say that for other engines (without paying upfront).

That’s what an engine is, if you needed more, you would use a library or a framework.
You use an engine specifically because you just want to focus on your game, otherwise what’s the point?

Lets say you come up with the greatest idea ever for a game which sadly needs a high poly morphing object for example.
All the engines you tried just sucked at this task because they didnt give you the access you need to transform your object and you had the right solution already worked out, just couldnt implement it, because it would mean to change the engine at some low level vertexbuffer management thingy.

UE4 gives you this kind of access.

Not sure about you, but I use an engine to save time on creating my own, does not mean I cannot cater it to my needs none the less.

Sure, you can do basic extension like you can with Unity if you have reasonable understanding. But no one man bands or even teams will ever understand everything about how the core engine works in either UE or Unity, because you’re essentially trying to reverse engineer 100’s of engineers work over several years which is impossible and impractical…

So if your plan is to make a game, I wouldn’t even try unless there’s a problem that needs to be solved. Games are hard enough, never mind anything else…

Did you read my last post? last on page 2? in UE4, game is part of technically part of engine. UE4 is not library that you can ignore what is inside of it

Thats matter of skill then budget, i’m alone (well i help one artist :p) and kind of understand some inner works of engine, if i want to figure what something work in engine i can do that.

uh? it is a framework, you use it like every other framework and no, the game that you make is not part of the framework.

Formally yes, game is not part of framework, but the way UE4 works you build game on top of engine it’s just fundaments. I explained that in that post i mentioned. Even with blueprints you just adding another class to pile of other classes that already engine has and they as same as valid as engine class.

uh? it is an open source framework, what’s your point?
The API are exposed for a reason, you don’t need the source code in order to make a game and yes you can totally ignore “what is inside of it”.

No, you can figure out a miniscule portion of it which may be enough (How do I know this?)… Even Epic developers will only work on a specific portion of the engine and will specialise in certain areas, if it was a matter of skill and budget then the engine would only be any use to a AAA company… No one man band or small team, or even mid sized teams will ever understand how it works end to end in a reasonable timeframe and it’s not really a matter of skill… Because if you worked in a team of 75 with a bunch of dedicated engine dev’s, you’d build your own instead of trying to constantly reverse engineer what someone else has done. Again in near enough every scenario it’s impractical if not improbable to rip the engine to pieces…

Luckily enough UE is quite indie friendly.!

Small teams can stack their own stuff sure, they might even be able to add modules and expand the engine like again you can do in Unity via plugins. But game development != engine development they are two completely separate things although they share common ground.

No offence but if you think that having source access to the framework that your actually using, and being able to apply additional framework code to the framework that already exists, which is a blessing, then you must not be creating very complex games.
Not to mention having source access allows you to figure out the inner workings of the engine, yes it may take some time to figure out exactly how to add a feature to the framework, but when your boss asks you if you can add a feature that lets say Unity doesnt support out of the box, you would have to tell him “No, i cant do that cause Unity doesnt support it ;(”, where as with unreal, you can say “Yeah, i can possibly add that feature to the game, i just need to edit the engine a little to be able to add that functionality”. Which one of those sentences do you think would make him more happier? :stuck_out_tongue:

no complex game existed before ue4

replace “if you can” with “how much” and he will understand the answer “no”

And then i’m informing AnwserHub people what inside the engine since they kind of lost by ignoring :stuck_out_tongue: In fact first versions of API Reference contained code snippits on virtual functions, so you know what do you exactly overriding. I don’t know why Epic removed that. Again read my last post in page 2, i explain why you extending engine not even knowing about it, i don’t want to double post.

I disagree to that, there game devlopers that don’t use engine at all and they not always call there fundamentals “engine”

Again engine is not just about graphics as it is current common misconception, engine is all about providing fundamental code for your gameplay and render it state on screen (it can even be text output on command console). Keep in mind this engine bears name of “Unreal” only because initially it was made for single game called “Unreal” and it was primarly made for that game, Epic at that point didn’t even knew (at least i assume) they gonna share it with others (they never shered Jazz Jackrabbit 2 engine, even thru it also had fancy editor but without any scripting). The if you use any external engine, “engine code” becomes part of you “game code”, and if you don’t understand “engine code”, atleast how it is structured and how it behaves you gonna be lost… in your own game. Not to mention from your “Game code” you can extend engine same as plugin does + extend editor, and it not engine feature that allows you to do that, it because in C++ you write your own engine module and you can do everything that any other engine module can do, engine don’t classify modules by game or engine… for it it’s just code module, so it’s not “completely separate things” and they both share common ground entirely as you module is eqile to any other engine module. I think thats fundamental thing to understand when you start developing in C++ on UE4. And even by blueprint and potentially C# you technicly extending engine (not to mention people talking like they want to extend engine with potential C# support), you adding classes to ready pile of classes that engine has and they technically no different (other then way they are coded)

Also i’m not saying you need to know everything about engine it’s too big to grasp it alone, but if you want change something, you study it and modify it or do that in less invasive way by overriding things if thats possible (thats only way you can extend engine from plugin). For example you need to know how what CalcCamera() does in order to properly override it.

you are pointing out the lack of proper API documentation and Intellisense.

no you can’t

Yes they do

no you are not

No I don’t

Not only… also API reference is complete (atleast it was i notice it start missing entries). If you want to see what specific function do, whats stopping you from checking that in source code? you can easily do that in VS.

Yes you can, you simply not aware of it yet, which i guess is because you never tried

Go to engine directory, to bineries, what do you see there? lake of modules similar to module you compile… because they work exact same way, they just distributed in diffrent way for convininace. Technically UE4 could work without project system (in fact this is how UE3 worked, you didn’t have any projects you put everything directly on engine, go check UDK)

Plugin system only classfies runtime and editor module, but thats just so engine knows how to package the game, you can also place editor only code in runtime module if you put recompilation conditions)

Open class viewer, search for your blueprints there, maybe that view on classes will enlight you. Btw that was default view on programable object before UE4, UE4 kind of hide it in favor of content browser (which also existed before), which is mistake as lot of people don’t see blueprint as a class and complitly misunderstands how to use them (thats why i did tutorial linked in my signature)

Well, maybe? still if you do Super call and update camera positioning reference, you only wasting performance to search camera component positioning which you will overwrite anyway

You would be in-correct, the “fundamental code” is a framework not an Engine. Of course you could just build a “framework” around OpenGL select your platform and just derive all your pre-made math libraries, Vector / matrices / transforms / animations / particles / sound libs etc. from it, it’s something I’ve done a few times… When we start talking large tool sets, multi-platform support and abstraction, content editors etc. etc. (like UE and Unity) then it becomes an engine. Sure the GL / DX fundamentals are the same no matter what you do, but again a framework can’t be compared to an engine…

That’s not to say engine frameworks can’t be bolted on top of (like in UE), we all know it can. But that’s not engine development, it’s tool extension. I suppose semantically speaking I changed the “engine” in Unity when I changed the square inverse falloff for lighting and I changed how shadows etc. worked, when I fixed cooking issues in Unreal Engine that’s “engine” development as a framework would be packed directly into an executable… But as I’m paying or a service (or will be eventually) it’s not really for me to fix, not that having access to the core infrastructure is a bad thing as we can just fix things quickly without waiting for Epic in some instances. They are different, there’s no doubt about it… Whether it matters or not is a different question.!

The whole point of using an engine is to provide abstraction, to speed up exponentially what would take years when you’re building your game from it. To not need the expensive resources you’d usually require to even put a “framework” together and that’s a must for Indies / mid sized teams alike… Have you ever tried to build an engine (even a basic one)? Do you understand the amount of work involved in it? Even for a large team?!

If you’ve ever built a framework for a game, then tried to turn it into a proper editor and engine solution… This wouldn’t even be a conversation, there’s so much additional you have to do in an engine that you’d never bother with in a framework.

P.S I’m kind of lost as to what the point of this is? :smiley: wasn’t we talking about C#??