How is C# in UE4 using Xarmain?

As the title says I heard you can use C# in UE4?

I have done a lot of C before in my University but never did C++ or C#

I found C to be a relatively easy language to learn but not sure how C++ and C# is compared.

c, which you already did is closer to c++ than c#. Unreal c++ has garbage collection, like c#, and the engine functions and macros are defined in c++. I believe this project with xamarin was cancelled, but i can tell you c# is a full object oriented language, has better support for generics, exception handling, delegates(function pointers in c++, but unreal also has built in delegates in c++), and reflections system. But you can try unreal c++ has a well developed framework to interact with the engine, many with simmilarities of the c# language. Im no expert tough, just learning, so maybe someone can give a better explanation than me.

C# in UE4 is no more.
Dropped by Xamarin many months ago.

Thanks everyone

Alright from the looks of it Unreal C++ should be learn-able in a month of 2 to have a game going. I have decided on UE4 for my first engine. I might aswell since it has much more integrated for free as compared to Unity.

You might as well learn these concepts from c# or c++ documentation, since i think its kinda gruesome to learn it from unreal documentation, i use the game engine documentation to apply them in the game.

Good choice but 1/2 months or life long? :stuck_out_tongue: C++ never gets easy when designing games.
For instance it just isn’t anywhere nearly as simple as Unity and componentized C# etc…
And you need to learn the components first, the actor system, the building blocks…
You may be better off doing that with something simpler like Blueprints at first imo.
Otherwise you’re looking at twice the complexity / fighting on two fronts! Just a thought…

Interesting

So its safe to say its easier to learn Blueprint then UE4 C++?

Unreal’s C++ is not so hard like pure C++;
But Blueprints are way, waayyy easier to get results quick.

i wonder if anyone has ever created a game entirely out of blue prints as yet? would be interesting to see what the results were

Many ppl have created small games entirely based on Bluprints.
They are small not because Blueprint, but because are very small teams like the ones for the Game Jams.

Blueprints lets you learn the engine / components free of dealing with syntax…
You can try stuff out without a deep or full understanding, and see what happens.
You will lose time dragging nodes around, arranging things so its more readable.
And in time C++ will serve you better, but to begin, to learn the building blocks, yes.

I never thought of it like that, in that Blue Print is like a stepping stone? that makes learning C++ and Game Programming in general easier?

Am I correct?

Yes, That is correct. :slight_smile:

By learning Blueprint you are learning the Unreal C++ API. My advice would be to learn BP for about a three months back to back. Then start to go into C++. My 2 cents :slight_smile:

Thanks clot really appreciate it :slight_smile: We shall see by the end of the year what I have made with UE4.

Hey welcome - I look forward to seeing what you make :slight_smile:

BP is far more than just a stepping stone… You probably won’t ever use C++ 100% exclusively.
Its too early to say what will happen with BP alternatives like SkookumScript and Unreal.JS too.
But when a game is intricate, having a high-level scripting system is often critical to productivity…

The general rule of thumb of using C and C++ , is DON’T

both C and C++ are horrible langauge for different reasons , C lacks OOP , C++ has a terrible OOP implementation, both are doing manual memory management.

Learning languages is easy, that applies to C and C++ , it usually take a few weeks max to learn enough to be dangerous but using them is another matter altogether. The problem with those 2 languages is that they leave memory managments to the hands of coder which is disaster waiting to happen. People make mistakes, memory leaks happen. However the problem with memory leaks is that are notoriously difficult to fix. The reason is that a memory leak is still valid code, so there is no error from the compiler , the only thing it does is crashes the app. Finding memory leaks is a pain in the ***.

C lack of OOP is a problem, Object Orientated Programming is not the holy grail but it does excel at managing big complex code, so its not a surprise that large enough C apps tend to implement their own kind of OO, just way more…well… frankesteinish

C++ does have OO but since its designer never understood what OOP is all about, and being also a really bad designer, hence C++ had several revisions to compensate for these problems, which end up making the language looking even more horrible.

However C, C++ are extremly popular language because they were created in a time period that people were still coding in Assembly. Performance back then was extremely important , with processors not exceeding 40mhz C and C++ became popular because well, they looked better than Assembly. Of course everything looks better than Assembly , but lets ignore that for now. Nowdays we dont need performance orientated languages because we have quad cores at 3 ghz and GPUs that can outperform them 10 times.

But since 3d graphics tend to push the envelope even on a quad core, it stand to reason why C++ is the defacto language for high end 3d games.

The good news is that Unreal has gone to great lengths to improve the C++ experience by adding GC which makes manual memory management a lot less necessary and with improving OOP through reflection which is a standard feature for every self respect OOP language. So Unreal C++ is not that terrible but its still C++.

So, what happens in this cases is this, a coder generally , even when it comes to performance crtitical code will prefer the easiest to use language, he then profiles the code so he can pipoint down to micro and nano second how much time each line of code consumes and when he find that some code is slow he will do the following:

a) Make sure its not his fault, and if it is he will optimize the code, usually that means dont do any uneccessary computions or a lot of I/O but there are many other ways to optimise too
b) If its language problem (interpretation , VM startup, GC , dynamic types etc) then he will move the code to C++ and call that code back to the easy to use language which preferably is dynamic one.

In case of Unreal that easy to use language is Blueprints, not as good as python , lisp and smalltalk, but its ok and being visually its more attractive to non coders though for the wrong reasons.

So the rule of thumb here is use as much Blueprints as you can and only when its absolutely neccessary move to C++. Of course never forget to do the 3 important steps:
a. Profile
b. Profile
c More Profile

C# is doing a better job than Unreal C++ in terms of OOP , GC and ease of use but still nowhere close to Blueprints.

If you absolutely look for C++ alternative, I have not tried it but Unreal.js seems ok, javascript is no beauty either but next to C++ she looks like a super model.

But yeah even if you are a pro coder, stick to Blueprints. You will be far more productive.

Do you realize how wrong you are ?

http://lists.dot.net/pipermail/mono-ue/2016-September/000333.html