+ 2
Which programming languge is best for 3d Games??
22 Answers
+ 13
Learn C# and then start with unity engine for 3d games.
Happy coding
+ 6
[Response B: Part 2 of 3]
I'll share what I understand about Unity3D and how I believe it differs from the points presented in your _general_ explanation.
1. The Unity3D Game Engine is more like a low level abstraction wrapping the code that needs to be super optimized such as the graphics rendering engine, physics engine, and serving other game specific cross cutting concerns such as game objects, lighting, particles, smoke, meshes, lifecycle game loop events, collision detection, interactions, multithreading, networking, etc.
2. The Unity3D Game Engine is completely decoupled from game logic, design, rules, etc. It's about as barebones as can be aside from providing an empty 3 dimensional space. Game objects, when added, are initialized as simple cubes with solid, gray meshes.
3. The Scripting API and development environment are used to specify everything via C# code used as the scripting language.
4. The only language that can be used for developing games in Unity3D is C#. The ability to use C++ to extend and recompile the proprietary game engine for any specific game is not an option.
5. Unity3D game developers only need to be familiar with the Unity3D development environment, C#, and the Scripting API.
In my limited experience, the other game engines I've worked with also appeared to follow a similar model acting more as runtime frameworks with game development entirely managed via scripting languages.
+ 4
for 3D can use these engines:
*Unity --> C#
*UE4 --> C++
*CryEngine --> C++
*Godot --> C#, C++, Python
+ 4
[Response A]
Martin Taylor Do you mind expanding on these statements?
----
"The confusion about learning C# for Unity is because Unity uses C# as a scripting language."
"The scripting language should not be confused with the language that the game engine is written in."
----
In the context of this question, it seems that people are properly recommending the OP learn C# to build games in Unity. Are you disagreeing with this recommendation?
Or did someone remove a post claiming that the Unity game engine was built in C#?
BTW... I'm not disagreeing that the Unity runtime is built in C++ or that C# is the scripting language.
I'm just trying to understand your response in the context of this specific question and the current answers.
+ 4
[Response B: Part 1 of 3]
Martin Taylor Ah... I think I see where you're coming from as the relationship of game engines and scripting languages are likely different across the board. I assume the game engines you've personally worked with were implemented in the manner you've described.
For me, on the otherhand, much of your explanation doesn't fit my understanding of the few game engines I've personally explored. In particular, I've become quite familiar with Unity3D since 2015 and have only casually tinkered around with Unreal Engine, PyGame, and Roblox Studio.
For that reason, my _general_ understanding might be limited based on my narrow experiences.
That said...
+ 3
It's more about the Game engine than the language I think.
+ 3
[Response B: Part 3 of 3]
Additional Interesting Information about the Unity3D Compiler:
1. Currently, C# first compiles to IL/.NET byte code; then to C++ using IL2CPP; and then into native code that is loaded by the game engine runtime.
2. Over the past few years, the core game engine development team has been building a new proprietary compiler called Burst for the new Unity Data Oriented Tech Stack (DOTS) for extreme game performance. Unity DOTS is a fascinating, complex, massive, and exciting technology stack for so many reasons.
3. The interesting point for this discussion is Burst is shifting away from C++ in the game engine to a proprietary C# variant known as HPC# (High Performance C#). Additionally, the Burst compiler converts the IL\.NET bytecode into native code using LLVM. Therefore, in Unity DOTS, both the runtime and scripting language are/will be written in the same language. It's still a hybrid mix of both C++ and HPC# today. But, they're slowly converting it all to HPC#.
At this point, I must apologies for going way off track for this thread.
I hope this was as interesting to others as it is to me. For those interested in digging deeper into the more complex details, I've provided a few links I highly recommend.
DISCLAIMER: These links may be a bit advanced for most beginners.
https://lucasmeijer.com/posts/cpp_unity/
https://blogs.unity3d.com/2019/02/26/on-dots-c-c/
https://medium.com/@nikolay.karagyozov1/getting-started-with-unity-dots-part-3-burst-compiler-7d639274ca1e
https://gametorrahod.com/analyzing-burst-generated-assemblies/amp/
https://github.com/nxrighthere/BurstBenchmarks
https://www.raywenderlich.com/7630142-entity-component-system-for-unity-getting-started
https://levelup.gitconnected.com/a-simple-guide-to-get-started-with-unity-ecs-b0e6a036e707
+ 2
David Carroll its cause that caused confusion in previous threads, its just a preventive clarification
+ 2
Martin Taylor the other langs can be used with GDnative, but its support its not official as with C# Mono
+ 2
David Carroll heard about Data Oriented Programming
Im curious about this new programming paradigm that will displace OOP in some fields
+ 2
Kiwwi# The following articles were helpful to me in transitioning from GameObjects / Monobehavior to ECS pattern and understanding the underlying improvements.
https://www.raywenderlich.com/7630142-entity-component-system-for-unity-getting-started
https://blogs.unity3d.com/2019/03/08/on-dots-entity-component-system/
https://unity.com/dots
+ 2
David Carroll thx 4 the feedback
Im actually interested in Godot engine, but Im not 100% sure between it and Unity.
But Im surely interested in C#
+ 2
Kiwwi# I haven't personally looked into Godot. I may make some time this weekend to check it out.
+ 1
and also C++ for unreal engine.
+ 1
David Carroll some say that will disrupt the game engine industry just like its happening rightnow in 3D with Blender.
Got MIT license, its opensource, can build toolkits and other stuff, got an interesting entity build, and many more.
+ 1
C# for unity , then you will get a good idea of making games and C languages, then go learn C++ for unreal engine :)
0
Hello,
Many game developers use a 3D engine, like Unreal or Unity. Both engines are written in C++, which is fast. (Also, some parts of Unity are written in C).
C++ is especially fast when written by specialists with many years of 3D graphics experience under their belts, like the Unreal or Unity engineers.
Those of us with less 3D graphics experience may not get great performance, no matter what language we use.
C# is used in Unity. It’s well-designed and clean. Like Java that’s actually good.
GodotScript is used in Godot. Godot is a nice little engine great for indie games. It looks a bit like Python.
To be honest, I don’t think you should care that much. If you know the basic programming concepts, languages are interchangeable.
I hope this will help to you