I want Feedback from Epic about Mono for Unreal Engine

[=ayretek;194761]
I think you need to use Mono http://mono-ue.github.io/ and give it a if that’s what you want. put your efforts there or are they not answering your concerns like UE has?
[/]

I’ve tried Mono for Unreal already, but the tool is simply not mature enough yet because they lack the man-power to develop it, therefore I think it is up to Epic to take responsibility because the potential is simply enormous, for both Epic and – just think one minute how popular it would be if every Unity user suddenly started to use Unreal Engine instead.

Epic wants to allow level-designer and artists to script the game play via Blueprint, and that is the proof they want to open game development to a larger group of potential users, in that case it would also make sense to open it to lamba-developers, don’t you think ?

[=ayretek;194761]
So again, if I offended anyone in any way, my apologies. And Epic/UE4 you make me proud to be a part of community! I still don’t want C# tho’, not today anyway! :stuck_out_tongue:
[/]

You don’t want C#, fine, some people do not want Blueprints either and yet there no one is making a drama about it.

[]
The C++ in Unreal is not C++, I mean it is, but it isn’t. The layer of Unreal over the C++ makes it almost a different language entirely
[/]

And I wish there would be something like a primer or a fundamental documentation on UE4.
A little tour of the code that really starts with the most priimitive classes that are derived directly from native C++ classes.
Having a little tree that illustrated the class hierachy would be most helpfull :slight_smile:

[=;194798]
The C++ in Unreal is not C++, I mean it is, but it isn’t. The layer of Unreal over the C++ makes it almost a different language entirely. Switching to C# isn’t going to make programming easier on Unreal, because the ‘Uneral Layer’ will still be overtop the C#. If people want to spend their making a wrapper, fine, but quit bothering Epic with these request. Their is better spent doing QA on the features we need and have, rather than catering to a crowd who refuses to learn a industry standard language.
[/]

The fact that C++ is a"industry standard language" and other languages are not is a very subjective remark, not every body would agree with that.

C++ in Unreal makes me think a bit about Qt, and I am glad to see that they made efforts to improve usability of C++ coding, however it would never reach the ease of use of C# and the nice syntactic sugar, ever, there is not point arguing about that.

Thanks I’m really pleased to hear from you guys, and to hear that you are also listening to want users want.

Here a few comments to what you said…

[= Fricker;194715]
We actually love scripting languages, and we want developers to be able to use the right tool for the job. We designed the scripting layer in Unreal Engine to be totally extensible through a pluggable API that uses the same surface area as our own Blueprint language. So you guys are free to use whichever language you want or create your own!
[/]

Fair enough to defend Epic’s position by saying “if you want it just do it”…

However I find argument a bit too easy IMHO, then why would Epic keep on implementing new features if users or 3rd party could develop it instead…

Open-sourcing is great but you guys should not rely on too much for such important features and between you and me, we both know that if it’s not officially supported by Epic, scripting solutions are quite unlikely to reach a very mature state, and users will never use it.

[= Fricker;194715]
As said, we do require that language extensions to the engine to be totally free and open source. We believe is in best interest of the Unreal Engine community. Just as an example, if a huge number of developers suddenly adopted using Google’s GoLang for their projects, we would want to be able to make Go a built-in and support it at the same quality level as Blueprints (sample games, documentation, templates, video tutorials) and ensure developers could release projects on platforms without restriction.
[/]

Well that’s a step forward…I’m glad to hear that you are open to scripting in UE4. I agree that C# should not be prioritized over more wanted scripting languages.

What about creating a community-based poll in order to decide which language should be supported in the future ?
And the most favorite language would then get Epic’s attention for a built-in support (A real one, not like the LUA plugin…).

[= Fricker;194715]
We do certainly keep an eye on .NET and other languages. We talk to Microsoft frequently and we’re pleased they’re opening up the core .NET code.
[/]

Well that’s interesting news…tell us more :slight_smile:


[/]

[=matmuze;194678]
Thanks , for that clarification.
What about Blueprints ? You are not very constant in you argumentation since one can develop its own game-play via another programming paradigm than C++…

[/]

I can answet that, qith question. Did you saw game made by Epic which is done fully in blueprint, except ?
While blueprints are , nice, and it’s best thing since sliced bread(no arguments!), I don’t think most people even consider making serious game fully in them.

As an end point they are great (connect few nodes, like 4-6 and buf! you have new gameplay element, which just call to pre setup C++ interface) or as for prototyping, I can hardly imagine someone making fully big game with them.

Just because there is hammer around laying, doesn’t mean you should use it to kill flies.

The same is going for other non C++ languages. With even less benefits. Blueprints are fairly easy to understand by virtually anyone. While written languages, are not. For me it doesn’t make any difference. But people who never wrote line of code, doesn’t care if it C++, C#, Go, Visual Basic. It’s the same arcane magic beyond understanding at first glance.

Aside from that. There is no real reason to implement anything else. Hardness of C++ (especially in wrapped version in UE4) is mainly based around prejudices, not any facts. Look, there are people around forums, who are artists, and yet know how to code in C++ ;).

[]
However I find argument a bit too easy IMHO, then why would Epic keep on implementing new features if users or 3rd party could develop it instead…
[/]

They add features, that most people want(and what they need). As you can easily judge, people around don’t want scripting integration from Epic. More over most people seems to be clearly opposed to such thing.
Because it would take resources, which could be used to add new features, that are actually needed, or improving existing ones.

C++ API in UE4 is great and I like it very much, but there are some features just impossible without some form of scripting on mobile platform, like hot-code-updating without going through AppStore. Nearly every online game in China is using technique to facilitate super fast iteration (commonly 1 to several updates everyday, which is impossible with the slow review process of AppStore), so having is crucial to be competitive on market. For now the market is dominated by Unity, I’d be very happy to see UE4 to take over.

Blueprint is great in small scale scripting and prototyping, but I don’t see the benefits in real production of complex games, the graphs in TappyChicken are way too CRAZY and FRIGHTENING for such a simple game!

[]
But people who never wrote line of code, doesn’t care if it C++, C#, Go, Visual Basic. It’s the same arcane magic beyond understanding at first glance.
[/]

Well, I have quite a background as a Delphi programmer and still C++ is somewhat “weird” to me.
Take for example the string handling. Im used to have a string as a basic data type. Now I started reading through the C++ primer, but still cant figure out how to concatenate strings mixed with integers (and storing it in a string variable. im not talking about cout << “text” << x << “more text”; here)…
So C++ is perhaps not the most intuitive language.
One reason why so many people like C# is the fact that it borrowed some nice stuff from Pascal, syntax-wise and also conceptionally.
Today I wouldnt use the original Turbo Pascal anymore either, but Pascal is equally strong as C++.
So introducing C# would offer a compromise between the two worlds.

[]
C++ API in UE4 is great and I like it very much
[/]

Can you then recommend good reading material that explains the specific parts that Unreal introduces to C++?

[=matmuze;194227]
Come on guys, again, is not the right thread for a debate C++ vs C#.

[/]

I disagree. You want them to spend integrating C# which takes away from relevant development, there would have to be a good reason why they should put their into letting you use C# over C++. I don’t think there’s a good reason.

FYI in your original post you are already debating .

As a programmer you need to adapt and learning C++ in EU4 will benefit you in the end.

[=;196630]
Well, I have quite a background as a Delphi programmer and still C++ is somewhat “weird” to me.
Take for example the string handling. Im used to have a string as a basic data type. Now I started reading through the C++ primer, but still cant figure out how to concatenate strings mixed with integers (and storing it in a string variable. im not talking about cout << “text” << x << “more text”; here)…
So C++ is perhaps not the most intuitive language.
One reason why so many people like C# is the fact that it borrowed some nice stuff from Pascal, syntax-wise and also conceptionally.
Today I wouldnt use the original Turbo Pascal anymore either, but Pascal is equally strong as C++.
So introducing C# would offer a compromise between the two worlds.

Can you then recommend good reading material that explains the specific parts that Unreal introduces to C++?
[/]

String handling in C++ proper is awful, but in Unreal there’s FString which operates a lot like C# strings. std::string is also pretty easy to use, but not as much as it could be.

Here’s a intro to c++ in Unreal: A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums

[]
String handling in C++ proper is awful, but in Unreal there’s FString which operates a lot like C# strings. std::string is also pretty easy to use, but not as much as it could be.

Here’s a intro to c++ in Unreal: A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums#If_Not_for_::
[/]

Thanks :slight_smile: I hope reading through will lessen the culture shock…

I don’t know why Epic needs to comment over , they didn’t made source code just for people to watch it, they didn’t make plug-in system only for there own use, they did that so people can extend engine as they like without need of bothering them. If people want C#, people can implement C# if they wish… and is what happening, so i don’t see point of discussing over and over again.

Also fact that Unity uses C# does not mean every engine in the world is obligated to implement it. Unity is also written in C++, it could also let you use C++ to extend and code game, not because to make your life harder, but because it’s simply easier way, but because Unity developers don’t want you to even see Unity source code they actually needed something like C# to let you make more serious development on that engine yet keep the source code in there hands, i bet you would not see C# in Unity if not that fact… why they would struggle with licencing issues otherwise?

Personally I believe that once Epic overhauls C++ documentation in more detail and code examples, the initial fear of learning C++ that some people have right now would be alleviated.

Eventually roads will lead back to C++ because that’s what the engine is written in. The fact that we have access to the code warrants one has knowledge of C++ for advanced features.

Unless plans to remain a beginner/intermediate UE4 user? :slight_smile:

I was hoping for some kind of Unity like solution, but it appears that is just re-packaging their mono license with . For one man team licensing at $83/m for visual support is a bit too much.

I develop game logic/server with F#, which rocks, but I am fine without it for now. Maybe .NET open sourcing move will give way to free versions of .NET, until then I’ll use C++.

[=]
I was hoping for some kind of Unity like solution, but it appears that is just re-packaging their mono license with . For one man team licensing at $83/m for visual support is a bit too much.

I develop game logic/server with F#, which rocks, but I am fine without it for now. Maybe .NET open sourcing move will give way to free versions of .NET, until then I’ll use C++.
[/]

exactly. I’d love to use .NET until I hit a hotspot that needed to be in C++, but right now that’s not feasible. Here’s hoping Microsoft’s moves lead toward a free cross platform .NET.

keeps talking about open sourced C# from M$, but as far as I recall they only opened up portions of the platform (.NET) so it’s not really that everything is open for free use.

[=;197464]
exactly. I’d love to use .NET until I hit a hotspot that needed to be in C++, but right now that’s not feasible. Here’s hoping Microsoft’s moves lead toward a free cross platform .NET.
[/]

Hey, forgot to mention, Visual Assist X (plugin for Visual ) makes C++ almost as smooth as C# when it comes to intellisense and auto completion. I’ve used it with Cocos2d, it completely changes the game for the better.

[=amigo;197528]
keeps talking about open sourced C# from M$, but as far as I recall they only opened up portions of the platform (.NET) so it’s not really that everything is open for free use.
[/]

They open sourced everything but WPF and some other layers we can live without. Core framework is OSS. Their bet is now to suck to host their apps on azure and use their overpriced cloud services.

http://blogs.msdn.com/b/dotnet/archive/2014/11/12/net-core-is-open-source.aspx

I may repeat / or lost the plot.

EPIC / Unreal - who ever you are angry about;

There is a choice, if I ran a company and a great suggestion came up, but it would not work, then I would turn it down.

is made the way it is, and it works. Good for me.

.

[= Sweeney;194593]
Text
[/]

Wholefully agree, I’m happy that is the consensus on the matter at Epic. My concern was the divide that bringing another language to the foyer would bring.

The divide between Blueprint and C++ Programmers is actually incredibly narrow considering how ‘different’ (for the user at least) the languages are, but the last thing I want to see is developers programming in different languages and making the barrier to programming even higher. If the engine is written in C++, it stands to reason that you’ll get the most power and proficiency out of is by using it’s native language. C# can never be more than an interface between itself and the engines C++.