I want Feedback from Epic about Mono for Unreal Engine

[=mxnko;197529]
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.
[/]

Could you give a quick overview on how it helps with coding c++ within UE4? I’m thinking of purchasing it.

Also, while I would love to have C# support, I also like the idea of learning more of the C++ side of coding. I don’t find the language a barrier (although it is hard for me), I find the API a nightmare. Trying to find what classes do what, which macros are needed where etc. It can be learned with a lot of and patience I suppose.

I do find blueprints quite hard to work out… And that is for exactly the same reason… The API is quite hard to figure out, but like I said, , :slight_smile:

Now… If there was a way to avoid header file () and also streamline the C++ workflow then I would just go -in with C++. Things like having to reload the editor when adding classes etc disrupts the flow you get when focussed intensely on a programming problem. Hopefully that will get better as the new versions come out, :slight_smile:

I have been paying for UE4 for around 6 months and I wouldn’t have it any other way, it’s worth it just for the tutorials from Zak! :smiley:

[=polomint;206810]
Could you give a quick overview on how it helps with coding c++ within UE4? I’m thinking of purchasing it.
[/]

I think you should try it your self
there is a one month trail version

[=ZraXesZ;206814]
I think you should try it your self
there is a one month trail version
[/]

Ah, excellent, thank you, :slight_smile:

[=;206534]
I just can’t see the point of blueprints, it is exactly the same thing as writing code, with less and more confusion. You declare variable, use get/set, call functions/events, pass parameters, where is the difference?
if you simply add some “decoration” to your code, like changing font and add some background color you will get the same thing! The only difference is that there is no point in learning it.

btw I choosed C# for the benefits I posted earlier, of course javascript/python/java or whatever language you want would be better than blueprints.

Nobody had any problem with unity C# and that’s a really old version of it, so you can’t say that designers are scared of it. Infact they won’t move from unity cause they don’t know either C++ or blueprints.
And you can’t say that “you can quickly test with blueprints” cause even the plugin for UE4 showed that you can have near-istant build.

it is not about “favorite language” but the best language for your goals, and not every languages have same the same features. @ since you are a .NET developer wouldn’t you like to be able to use LINQ and Tasks?
[/]

You really starting to sound like C# fanboy :stuck_out_tongue: Maybe video will help you understand sense of blueprint:

https://.com/watch?v=ZxrcwNGnXZc

Why do C++ <removed> always think that C++ is the only suitable language for game programming…

I started as a C++ programmer back in the days when I started to learn OpenGL and game programming.

At it was common to assume that C++ was the best language because it offers the best performances and a lot of control, which was needed to run bleeding edge games on consoles…

I was kinda proud of knowing a language that was also considered to be hard to , and that’s how I slowly started to become a C++ <removed>

I was simply ignoring other languages because they do not deliver as much performance as C++.

In my work I do a lot of prototyping, and one day I grew tired of maintaining my old C++ code, each new modification, refactoring would simply consume too much , I was always spending more working around instead of actually code the things I simply wanted to code…

So I decided to give a try to Unity and C#, and from day on I realized that performance was not the only factor in my coding, and that productivity is also essential.

Although Epic added a lot of syntactic sugar it remains C++ and you still have to live with the constraints that are bound to the language.

Furthermore, except for bleeding edge AAA titles, performances with .NET are not that bad and still allows to develop a lot a successful titles, after Unity3D has now became the game development tool n°1 in the world…

C++ would always remain the best option for code programming of the engine and everybody would understanding why, however for developing the game logic I don’t really understand why I should be limited by the constraints of C++ when much more comfortable languages also exist…

I love Unity and I hate it at the same , it is simple to use but because of stupid marketing decision the performances of the engine are rather disappointing.

I am embracing Epic’s values much more than Unity because they care much more about there consumers, and when I saw that Mono for Unreal Engine came out I thought: Great ! Finally I would be able to have good looking graphics AND to use the most comfortable coding languages I know…and I think it is a shame that Epic is not supporting project.

Please don’t hate us for loving C#, we just want to get some work done, the problem with C++ is not learning it (I did learn it and used it for years), the real problem is simply using it … Even with an advanced knowledge it would still not be as productive as coding with .NET and my experience is speaking.

tl;dr If would want to DEVELOP a engine do it in C++, if you want to USE an engine… don’t… there is simply no advantage in my humble opinion, only drawbacks.

No, Blueprints are a visual interface. There are certain solutions/problems that are just trivial in a visual workflow. You will always need BP. Has nothing to do with languages. Just the next obvious step in creating something on a computer.

Any C# support would come at cost of BPs. the effort required to support C# would probably be enough to push BPs forward enough that a lot less folks would need to use UE C++ at and UE C++ would have been improved too.

Any improvement to BPs helps users of UE be more productive the .
Any improvement to UE C++ helps users of UE be more productive the .

C#? No. Need basic UE C++ to debug/research on your own terms. The C# user still needs BPs for what they bring to table.

Lets not get off topic guys. Its really not about which language is better. It is always situational. C++ and Blueprints bring their own keys to the table. The question should be what does C# add to UE?

To me adding support for C# either directly or indirectly by Epic is about a couple of improvements

  1. Adding support for the language of one of your direct competitors opens the gates to be able to win over some of their market. To many Unity is the first preference because they find C# to be their preferred language. For what ever reason. Having C# as an option now gives people a second choice, they’ll take a harder look at Unreal and being in that same boat i can say the working environment and epics values are far more appealing that Unity. So not having that potentially key aspect that is holding people back would be good.
  2. The overall usability and productivity provided by c# tools like Visual /Resharper is very appealing to many developers. For many its about how picking the right language and tools will make their every day lives easier. C# excels in .
  3. Reducing the amount to learn to get started developing games is a good thing. The programming language used it key to getting any game functioning. There is already a huge amount of things you need to learn that do not include a programming language and api’s. Being able to focus on the apis/editor/methodologies in an environment your familiar with is beneficial.

Agreed.

Even if you are a C++ fanatic, you must to realize that some other languages are far more productive than C++ itself, and supporting just one of them would be very valuable for UE4.

Although the solution is not to simply replace C++ by C#, would be a mistake in my opinion.

Each language (C++, C#, Blueprints) have their own advantages and they could perfectly coexists in one single environment.

C++ should be use to develop either on the Engine’s side, to develop plugins, or to simply develop game logic functionality that are very demanding in terms of performances, theses functions could then be exposed to Blueprints and C#afterwards.

C#/.NET should be used by average lambda-coders that simply wish to develop the game logic without having to worry about the limitations of C++. is mostly about getting things done quickly with far much more performance and comfort than with the Blueprints. Should anyone encounter limitations in terms of performances, then simply develop the critical module in C++ and expose it to C# / Blueprints.

One could argue that any other scripting languages would fit for job, however C# with the .NET syntactic sugar would be the most efficient for me in terms of productivity (just try using System.LINQ once in your life and you will understand what productivity means). One could also employ one of the numerous .NET third-party libraries available out there. Python would also be a good contender in my opinion, however I would opt for C# simply because it should perform faster than Python.

Finally, Blueprints should only be used by people who are not comfortable with text-based coding (designers, artists) and still wish to develop games nevertheless. However, anyone with good coding skills would understand why it is not the best solution for them to code in Blueprints…no need to really argue about .

Now what Mono for Unreal suggests is to have those three languages coexisting with each other in UE4, in the exact same workflow as described above.

Also what the plugin essentially does is searching in UE4´s C++ code the functions that have been exposed to Blueprints and exposes it to C# too. means that there is not need to get rid of Blueprints at , simply maintaining it would also indirectly maintain the C# exposed functions.

The only task which is left is maintaining the plugin with new iterations of the Engine and also maintaining the Documentation.

Unity´s decision to have 3 different scripting languages (C#, Js, Boo) is rather silly because there is not clear advantage of choosing one language instead of another. However with the combo C++/C#/Blueprints UE4 would have the potential to reach absolutely every type of person that are willing to make games, and that would clearly be a benefit for both users and also Epic.

Stop complaining and create C# bindings then. Noone is stopping you.

We just don’t want resources to being diverted from flag ship features (C++ and Blueprints), to something that most people don’t care (C# and other languages bindings).

If you really can’t create gameplay code using C++ in unreal versions, I don’t think you will have any big success creating gameplay code using any other language.

[=matmuze;207383]
However with the combo C++/C#/Blueprints UE4 would have the potential to reach absolutely every type of person that are willing to make games
[/]

Except it wouldn’t.

What about the people who loves to Lua?
What about the people who loves to use Python?
What about the web-dev people who primarily know JavaScript?

Are they not ‘people willing to make games’?

[=;207388]
Stop complaining and create C# bindings then. Noone is stopping you.

We just don’t want resources to being diverted from flag ship features (C++ and Blueprints), to something that most people don’t care (C# and other languages bindings).

If you really can’t create gameplay code using C++ in unreal versions, I don’t think you will have any big success creating gameplay code using any other language.
[/]

No thank you I already have a job, which keeps me pretty busy :slight_smile:

I am perfectly able to create a game with C++, I could also probably make one in assembly code, I just don’t want to because I know my productivity would suffer in the end.

C++ should be only used when needed, and when coding simple game logic it is totally not needed, sorry to break your C++ fanatic dreams…

I see that you are concerned about Epic wasting resources for the so called “Flag ship” features… Let me explain you a basic mathematical principle that can also be applied to marketing:

C# will bring more users, more users = more $$$ = more money to invest on your dear “Flag ship” features…

You see it is not so hard to understand, maybe if you were not too busy learning C++ you would have had to realize that.

C# is a turtle compared with blueprints. The programers of my work use unity and I in my house use unreal and i spend minus in similar tasks. Btw one day i did make a game with unity and i used java because you dont need write void.
Write code is a complety Medioval thing. Blueprints is amazing jump in gamedevelop.

kind of thread again …

Instead of losing doing threads like guys better learn a bit of C++… UE4 C++ implementation is super. If you claim that you know so good C#, C++ isn’t hard to learn then. Seriously, are you guys real programmers or what?

One professional and big company uses Unreal 4 may bring more reputation, money and everything than 100.000 standart users.

Did I really read someone asking Epic to replace Blueprints for C#?!
Hahaha… Hell no!

.Net software is so easy to hack and reverse to source code, it’s not even funny.
Cheaters just love games made on top of .Net.
And it is not more productive, you are just lazy to learn something that is new to you, while for many othes learning something new is simply a joy. Just quit being lazy and learn new things!

[= ;207518]
Did I really read someone asking Epic to replace Blueprints for C#?!
Hahaha… Hell no!

.Net software is so easy to hack and reverse to source code, it’s not even funny.
Cheaters just love games made on top of .Net.
And it is not more productive, you are just lazy to learn something that is new to you, while for many othes learning something new is simply a joy. Just quit being lazy and learn new things!
[/]

+1…

[= ;207518]
Did I really read someone asking Epic to replace Blueprints for C#?!
Hahaha… Hell no!

.Net software is so easy to hack and reverse to source code, it’s not even funny.
Cheaters just love games made on top of .Net.
And it is not more productive, you are just lazy to learn something that is new to you, while for many othes learning something new is simply a joy. Just quit being lazy and learn new things!
[/]

No one wants to replace Blueprints with C# don’t worry, they could perfectly coexists.

[= ;207518]
Did I really read someone asking Epic to replace Blueprints for C#?!
Hahaha… Hell no!

.Net software is so easy to hack and reverse to source code, it’s not even funny.
Cheaters just love games made on top of .Net.
And it is not more productive, you are just lazy to learn something that is new to you, while for many othes learning something new is simply a joy. Just quit being lazy and learn new things!
[/]

Well being lazy is a good thing in my opinion, it allows to be much more productive actually…

I’d rather like to spend coding actual game logic rather than spending most of my describing how to do it to the computer…

If everybody was thinking like you we would still be coding in assembly code…

Frankly, started because a handful of people came from Unity where they invested to learn C# and now they are complaining there’s no C# in UE4.

Well, the easiest solution is for five (six?) of you C# programmers to band together and write your own C# plugin for UE4, or just go back to Unity (really, if you think it’s better there because of C#, by means, go). Just stop trying to cram down your personal holier-than-thou beliefs of C# onto else. :slight_smile:

I can’t believe I actually subscribed to thread hoping for some value (I’ll correct right away by unsubscribing).

[=amigo;207537]
Frankly, started because a handful of people came from Unity where they invested to learn C# and now they are complaining there’s no C# in UE4.

Well, the easiest solution is for five (six?) of you C# programmers to band together and write your own C# plugin for UE4, or just go back to Unity (really, if you think it’s better there because of C#, by means, go). Just stop trying to cram down your personal holier-than-thou beliefs of C# onto else. :slight_smile:

I can’t believe I actually subscribed to thread hoping for some value (I’ll correct right away by unsubscribing).
[/]

Thank you for the constructive feedback, bye !