Hello, everyone. So, not long ago did Unity Technologies release the engine’s source code on GitHub. Well, after days of planning, I’ve decided to embark on a journey of my own and to create a new, private game engine. Now, I’m not trying to make it a rip-off of Unity. I just want a heavily modified version of the engine that suits my needs. With this being said - is there a chance of me being able to accomplish this? I am a seasoned programmer and graphic designer, with a wide knowledge of the games industry. Additionally, I’d appreciate any advice I can get on making a game engine. Thank you for your time and have a nice day!
The terms of service for the Unity source code prohibit copying as you suggest. You could much time to create the equivalent game engine that might be better spent developing your game itself, but it’s up to you!
Short answer: No.
https://blogs.unity3d.com/2018/03/26/releasing-the-unity-c-source-code/
The source code Unity released is only the C# API, not the full engine. Besides, Unity is very extensible, so ‘modifying to suit your needs’ is usually possible without modifying the engine itself.
I’m pretty sure the unreleased C++ parts are where Unity is hiding their secret sauce
Any seasoned programmer would understand the limits off the provided code by Unity. Not to mention the enormous effort that it would take to heavily modify an existing product as complex as a Unity game engine. (Even if it was allowed) It would be less effort to start from scratch but even then it is an impossible task for a single developer to make such an impressive engine as Unity or Unreal etc. You could of course make a simpler one that fills your personal needs. I made myself a very basic 2D Game engine once (Back in the early 2000 i think) with directX6 in C++ and if i remember correctly that took pretty long time (6 months or so) before it could be used to write an educational program for youngsters. And that was for one bloody platform. The trick was you had to cut the sprites up for DirectX to show sprites that where only partially on screen Not to mention the many other compatibility problems back in the day.
But feel free to proof me wrong! I have been wrong many times and will be wrong many times more.
But by the time you have finished this enormous task ill be probably be long dead.
I am curious however why you would heavily modify Unity in the first place.
Side note:
I say sprites but in the old days sprites where very different objects that where screen resolution independent elements that where put over the play screen. (Like on the C64 and Amiga) What we now call sprites back in the day where called Bobs. (Blitter objects) as they where part of the screen output rather than the sprites that where not and had very limited capabilities like size, resolution and color count.
You’re better off purchasing a Unity subscription that allows you access to their source code, so that you can create custom versions of Unity. Although I don’t know the extent of that access. I worked for a person that was so helpful and fixed so many Unity bugs that they gave him free access to their source code. I don’t know if that same level of access can be purchased, or must be earned, but you should at least get some limited visibility into the deepest nooks and crannies if you have the right membership level.
Also, I didn’t even need to read Unity’s terms of service, much less see the first response to know that making an entirely new game engine from Unity source code is a pretty bad idea from a legal perspective. You should definitely look over the various levels of open source, and what they generally mean. Linux; go nuts. Do what you want. They love it (As long as you don’t pretend you made Linux and all that code all by yourself). But most source code is proprietary still, despite you being able to modify it and use it.