[=;205684]
I am a professional .NET developer, I’ve been using the blueprints for a couple of months now and im thinking on giving C++ a . Still I don’t quite agree with your statements and I’m looking for someone to debunk my belief ^^
here is what I think about the C# thing (correct me if I am wrong!):
- C# is not just more enjoyable, it is far more productive. Anything that can be done in C++ can be done in C# in less .
- The reason why people still use C++ it is because they already have existing huge library that they would need to rewrite (costs too much).
- Blueprints needs to be learned like C#, so it is effectively another language but it is useless outside of UE4
- You already have the entire documentation and answer hub splitted in 2 (one for blueprints and one for C++), I think that the goal should be to replace blueprints with C#, not to add a third option.
- Roslyn (the new compiler) is open source, cross-platform, and it will be released really soon, and with a partership (either with microsoft or ) I think you could get what you need.
- .NET framework (or still the mono version of it) makes a lot of things easier, just think about working with a file system, a database, HTTP messages, Cloud services
- Does C++ has these features? LINQ, PLINQ, async/await, Dataflow
- What about unit testing and dependency injection? it is at the same level?
I think that many of the people that talks about C# are actually talking about the Unity C# support which is missing 90% of the stuff.
The point isn’t “is C# better than C++”? but “is C# better than blueprints?”.
and of course, IT IS, in any way (even easier to learn).
[/]
I agree with most of what your saying. I’m in the same boat, an experienced C# .net developer. From what i have experienced so far is that the C++ learning curve just adds to the existing learning curve of UE as a Tool, Blueprints and Game development in general. Having C# would be a great way to put aside some of that complexity until your more familiar with UE and the API’s. I’ve had a play around with Mono for UE and while its still very much an alpha (or maybe pre-alpha) i was far more productive working in C# than i was in C++. C# has great tooling support like Resharper that also helps you discover what you need to learn as you code. C++ at the moment greatly lacks in the area of tooling. (good news is jetbrains is making resharper for C++)
The other thing that makes C# a great entry point is the fact that its very similar to other languages in syntax, Java, JavaScript and even PHP have similar syntax. So chances are if you know one of them it will be easier to pick on C#. I look at some of the C++ syntax and go WTF is that?
In terms of C# replacing blueprints i think that’s a bad idea. Blueprints still has its place, Its a great place to start for someone with no programming skills at . And they complement the programming languages well.
To me Mono for C# is about breaking down the complexity of learning so i can focus on learning what actually makes Unreal Engine, and that’s how the parts fit together. Its also about being able to work in a development environment that helps you to right cleaner, better code. If Mono for C# was a mature product i would defiantly be using it right now as a starting point. That’s not to say i won’t learn C++ once i’m more comfortable with making games in UE. But having the easier to use language as an option opens up many doors for people. I put of learning UE because of the huge learning curve for a long , until Unity screwed me over and now i’m glad they did. Its a far more enjoyable experience.
The argument about performance i don’t think is a real. You can right poor performing blueprints and even poor performing C++ code. In the end its situation. There are always going to be restrictions that you need to be aware of. If you know performance is critical to you then stick to C++. Otherwise pick the method that will make it easier for you to learn and develop in. That might be Blueprints, C++ or C#. But for a lot of people out there its C#.
i say is lets look at what it does bring to the table. A bigger audience never hurts.