Tech Visual Studio 2017 and unreal engine questions~

Welcome to our community

Be a part of something great, join today!

TorturedBlazerFan

Well-Known Member
Joined
Jan 31, 2018
Messages
19,824
Likes
23,357
Points
113
I've been looking for an answer to these on places like stack-overflow, unreal's forums, reading the documentation, google searches and haven't found a great answer so I'm hoping with any luck I can get some help here.

So recently I decided to check out the unreal engine for some 3d applications that other engines, including the in house one we've developed haven't been able to perform very well for, for various reasons but we've ran into a few issues.

First unreal seems to have a hard time compiling C++ code with polymorphism's, is that normal? I was under the impression that unreal compiles in what amounts to visual studio 2015 standards, so all code compatible with those standards should work. I know that unreal has a visual programming thing called blueprints, but i'm about 90% sure that will mostly be actor behaviors, and more video game type stuff. My application will be AI, database (SQL) driven, so I don't think blueprints will work for that. So the specific problem is that most of the functions that we have method overrides for dont work. I get one option to show up in VS2017 and the other options don't show up, and when I try to use them I get compile errors. My header files all look fine, and I have also tried forward declarations to get around the problem (no such luck as of yet).

The 2nd problem is much simpler I think. Unreal on two my computers works fine with VS2017, on the third PC (which sucks because it's the main unit), unreal doesn't recognize that I even have a compiler, I get a no compiler error and can't start projects. Tried most of the basic, uninstall's reinstalls, repairs, etc any ideas on that?
 
I've been looking for an answer to these on places like stack-overflow, unreal's forums, reading the documentation, google searches and haven't found a great answer so I'm hoping with any luck I can get some help here.

So recently I decided to check out the unreal engine for some 3d applications that other engines, including the in house one we've developed haven't been able to perform very well for, for various reasons but we've ran into a few issues.

First unreal seems to have a hard time compiling C++ code with polymorphism's, is that normal? I was under the impression that unreal compiles in what amounts to visual studio 2015 standards, so all code compatible with those standards should work. I know that unreal has a visual programming thing called blueprints, but i'm about 90% sure that will mostly be actor behaviors, and more video game type stuff. My application will be AI, database (SQL) driven, so I don't think blueprints will work for that. So the specific problem is that most of the functions that we have method overrides for dont work. I get one option to show up in VS2017 and the other options don't show up, and when I try to use them I get compile errors. My header files all look fine, and I have also tried forward declarations to get around the problem (no such luck as of yet).

The 2nd problem is much simpler I think. Unreal on two my computers works fine with VS2017, on the third PC (which sucks because it's the main unit), unreal doesn't recognize that I even have a compiler, I get a no compiler error and can't start projects. Tried most of the basic, uninstall's reinstalls, repairs, etc any ideas on that?

Have you posted this to reddit? Their nerds are better than our nerds.
 
I have not done C++ in years (thank <insert your deity of choice here>) but your compile issues sounds like some kind of language/environment settings with language versions and Microsoft is pretty good at hiding flags in unusual places - so I would go and look at these first. Good luck, but this is the wrong place to ask, we are modern nerds here - we do not deal with compilers if we can avoid them ;)
 
I have not done C++ in years (thank <insert your deity of choice here>) but your compile issues sounds like some kind of language/environment settings with language versions and Microsoft is pretty good at hiding flags in unusual places - so I would go and look at these first. Good luck, but this is the wrong place to ask, we are modern nerds here - we do not deal with compilers if we can avoid them ;)
Python runs on an interpreter, but doesnt it have a compiler as well?
Javascript I guess doesnt use a compiler at all.
Just trying to think of languages (that I know anyways), that dont get compiled to machine language.
The knowing it part is the real conundrum lol.

I know, C#, Javascript (and all the web stuff css/html/xml, node, and JSON), python, sql, C++, and C. Those are what Im comfortable with.

Im working on smart factory, robotics and automation applications so weve used various 3d engines and have had various results, I dont know if any way to do without a compiler, of you have a suggestion I love learning!

Anyways I think I found something this morning and I am trying to fix it.
 
Python runs on an interpreter, but doesnt it have a compiler as well?
Javascript I guess doesnt use a compiler at all.
Just trying to think of languages (that I know anyways), that dont get compiled to machine language.
The knowing it part is the real conundrum lol.

I know, C#, Javascript (and all the web stuff css/html/xml, node, and JSON), python, sql, C++, and C. Those are what Im comfortable with.

Im working on smart factory, robotics and automation applications so weve used various 3d engines and have had various results, I dont know if any way to do without a compiler, of you have a suggestion I love learning!

Anyways I think I found something this morning and I am trying to fix it.
I always thought Java was an interpreted language and not compiled but the answer these days seems less clear.
Javascript is a different beast that I know nothing about.
 
I always thought Java was an interpreted language and not compiled but the answer these days seems less clear.
Javascript is a different beast that I know nothing about.
I believe thats correct in Java but I have very little experience with it. Javascript AFAIK does not get compiled.
 
I believe thats correct in Java but I have very little experience with it. Javascript AFAIK does not get compiled.
I know nothing about Javascript except that it's entirely different than Java.

I use to be quite familiar with C, C++ and Visual Basic, Visual C and Visual C++ but that was a long time ago.

My first programming experience was programming a PDP8 using toggle switches. Next was Fortran IV using flow charts.

Hey, there was a nightclub near the Tektronix campus on Jenkins rd. that was digitized and run by a PDP (8 or 12?) called Earthquake Ethel's. Ethel's was near the intersection of Cedar Hills Blvd. and Jenkins. THAT'S WHERE I WORE MY LEISURE SUIT.
 
Python runs on an interpreter, but doesnt it have a compiler as well?

Technically, everything is compiled - it is just a question if it is compiled on the fly during runtime or pre-compiled. It was a joke, really.

Im working on smart factory, robotics and automation applications so weve used various 3d engines and have had various results, I dont know if any way to do without a compiler, of you have a suggestion I love learning!

Language features not working when moving from one version of a compiler to another usually sound to me like setting issues - some flag somewhere that tells the compiler to work in one way instead of another, that's why I made this remark - because this is my experience with these kinds of issues. Obviously, not knowing specifics there is as much a chance that this is wrong as it being right.

I will just say that it has been many years since I had to deal with C++ - and I am pretty happy about it.
 
Technically, everything is compiled - it is just a question if it is compiled on the fly during runtime or pre-compiled. It was a joke, really.



Language features not working when moving from one version of a compiler to another usually sound to me like setting issues - some flag somewhere that tells the compiler to work in one way instead of another, that's why I made this remark - because this is my experience with these kinds of issues. Obviously, not knowing specifics there is as much a chance that this is wrong as it being right.

I will just say that it has been many years since I had to deal with C++ - and I am pretty happy about it.
C++ is great. I have no idea why you would be having trouble with it. Perhaps you just haven't used it enough or don't quite understand it.
 
Technically, everything is compiled - it is just a question if it is compiled on the fly during runtime or pre-compiled. It was a joke, really.



Language features not working when moving from one version of a compiler to another usually sound to me like setting issues - some flag somewhere that tells the compiler to work in one way instead of another, that's why I made this remark - because this is my experience with these kinds of issues. Obviously, not knowing specifics there is as much a chance that this is wrong as it being right.

I will just say that it has been many years since I had to deal with C++ - and I am pretty happy about it.

So I believe the issue is that unreal requires a library to be included in visual studio 2017, that forces it to do checks on if its compatible with visual studio 2015. I had to screw around with crap in visual studio for quite a while but it seems to be working at the moment.

Anyways I realized it was a joke, but it got me thinking lol.

Im self-taught with all this stuff, and a ton of online courses so no formal college (except a couole years of college thats irrelevant lol).
 
C++ is great. I have no idea why you would be having trouble with it. Perhaps you just haven't used it enough or don't quite understand it.

C++ is my favorite programming language that Ive done so far. It can be annoying with namespaces from time to time, but its fast, easy to read and its just solid on most fronts imo.
 
C++ is great. I have no idea why you would be having trouble with it. Perhaps you just haven't used it enough or don't quite understand it.

I am not having any trouble with it (because I do not use it, zing) - but honestly, my belief (and it has been for a very long time, and I worked with C++ for a long time in the past) is that this is a language that people just threw everything they could think of at - which made it too big, too complicated for too little ROI. It went from a tool that was supposed to modernize C with object-oriented stuff into a beast where people would put too many esoteric things for too little benefits. They lost the forest for the trees.

In a way Java suffered the same fate (it is still much more popular than C++) and it was only saved because it was the default language of Android.

There is a reason C++ has gone from being among the most popular languages out there in the late 90s to being an after-thought today. There are too many tools and languages that give you all the benefits for much less headache. It has become a niche language. Good ole Jeff Atwood pointed it out way back in 2007 - https://blog.codinghorror.com/the-problem-with-c/
 
I am not having any trouble with it (because I do not use it, zing) - but honestly, my belief (and it has been for a very long time, and I worked with C++ for a long time in the past) is that this is a language that people just threw everything they could think of at - which made it too big, too complicated for too little ROI. It went from a tool that was supposed to modernize C with object-oriented stuff into a beast where people would put too many esoteric things for too little benefits. They lost the forest for the trees.

In a way Java suffered the same fate (it is still much more popular than C++) and it was only saved because it was the default language of Android.

There is a reason C++ has gone from being among the most popular languages out there in the late 90s to being an after-thought today. There are too many tools and languages that give you all the benefits for much less headache. It has become a niche language. Good ole Jeff Atwood pointed it out way back in 2007 - https://blog.codinghorror.com/the-problem-with-c/

I believe C++ will see a resurgence in the coming years as c# and java will be too slow to do real time (or as close to it as possible) algorithms for automation, security, even games, etc. As the HW gets better and speed becomes more of a problem C++ will be in demand until something else comes along thats better.

Agree with most of what you said though!
 
I believe C++ will see a resurgence in the coming years as c# and java will be too slow to do real time (or as close to it as possible) algorithms for automation, security, even games, etc. As the HW gets better and speed becomes more of a problem C++ will be in demand until something else comes along thats better.

I think you got it wrong - as hardware becomes better - speed is less of an issue and people will move to more abstraction. Hack, smartphones started with much more limited hardware than PCs and yet C++ was not used on them. On iOS machines they started with Objective-C - and now that the hardware is more powerful they moved to Swift which has more abstraction than it. For Android it was Java and they are moving to Kotlin - which again has more abstraction. When the hardware becomes more powerful - the languages that give you better productivity are the ones that are used, not the ones that give you more speed and control at the cost of complexity. On both hybrid applications written in Javascript in a Webview using stuff like Cordova or Ionic are very popular - there is no need for the complexity of C++.

On the other hand, the explosion of real cheap ioT devices that have very little hardware - people still write C - it has all the low-level functionality without the overhead and complexity of C++.

C++ was great when you wanted to give people that were comfortable with C and object oriented language for managing large, complicated projects. But, this task has been moved to Java, Javascript and other modern solutions while C++'s increased complexity and size removed it from the low-end of hardware projects. My guess is that if you have projects that are large scale and need extra performance - you are more likely to see technologies that take Javascript and Java and compile them into machine-language and native stuff instead of C++ - simply because there are so many more developers used to them - and compiler technology has advanced to allow you to do it.

C++ is the modern world's Cobol. I am sure there will be places where people will still be able to be paid to do it (just like there are still places where people are being paid to maintain Cobol projects) - but the trend for C++ is not going to change.
 
Last edited:
I think you got it wrong - as hardware becomes better - speed is less of an issue and people will move to more abstraction. Hack, smartphones started with much more limited hardware than PCs and yet C++ was not used on them. On iOS machines they started with Objective-C - and now that the hardware is more powerful they moved to Swift which has more abstraction than it. For Android it was Java and they are moving to Kotlin - which again has more abstraction. When the hardware becomes more powerful - the languages that give you better productivity are the ones that are used, not the ones that give you more speed and control at the cost of complexity.

On the other hand, the explosion of real cheap ioT devices that have very little hardware - people still write C - it has all the low-level functionality without the overhead and complexity of C++.

C++ was great when you wanted to give people that were comfortable with C and object oriented language for managing large, complicated projects. But, this task has been moved to Java, Javascript and other modern solutions while C++'s increased complexity and size removed it from the low-end of hardware projects. My guess is that if you have projects that are large scale and need extra performance - you are more likely to see technologies that take Javascript and Java and compile them into machine-language and native stuff instead of C++ - simply because there are so many more developers used to them - and compiler technology has advanced to allow you to do it.

C++ is the modern world's Cobol. I am sure there will be places where people will still be able to be paid to do it (just like there are still places where people are being paid to maintain Cobol projects) - but the trend for C++ is not going to change.

You could be right. I dont think C++ will go away, and its still like 3rd for most ‘requested’ -this depends on where you look -programming jobs. In the industries that I have experience in c++ is basically required. We cant rely on the IoT because the cloud is not yet dependable enough and in many cases were shut off from it completely, ITAR regulations, security issues, etc.

Just curious are you a java developer? or software engineer?
 
Just curious are you a java developer? or software engineer?

I am a software engineer / architect for large scale projects.

Our projects in the last several years were mostly Node.js on the backend (Javascript) in the cloud, Hybrid Apps on the front-end (Cordova) within a modern UI framework (We are moving our old Apps from jQuery to Vue) or just plain Javascript apps for the Web. There is some Java used for administration - but if we were to start from scratch, would probably do it in Node. The nice thing about Node is that it can also be used in Lambda on AWS for serverless back-ends. Our use of AI is encapsulated so we do not need to use Python - we can just use tools like AWS's machine-learning APIs from our Node apps.

Before that - when we had stand-alone UI (that did not run in a web browser / web view) we used a lot of Delphi (Object Pascal) for the front-end, we had C++ and Cobol for the back end. Glad these days are behind us. Delphi was a hybrid of C++ (power and capability) and Visual Basic (ease of use, integrated UI) - but even it feels really old fashioned compared to modern stuff.

I agree that C++ is not going anywhere. But I do not think the trend of it becoming more and more niche is going to change. In a world that is built on cloud computing low-level languages only make sense for edge devices which are either very low-hardware ioT devices (Not C++) or within the tools that the higher-abstraction use (V8, Chrome and Node's Javascript engine is partially built in C++ - so we can do real-time in Javascript because 99% of what is needed for Real-Time is already implemented down the chain, and we can use a higher abstraction tool).

I am honestly not a fan of Java - as I said, at some point it became very popular and started to become too big and complicated (like C++) - but for large scale projects that you do not want to use Javascript - I would use Java every day of the week over C++. A lot easier to live with it and a lot harder to get into real trouble.
 
I am a software engineer / architect for large scale projects.

Our projects in the last several years were mostly Node.js on the backend (Javascript) in the cloud, Hybrid Apps on the front-end (Cordova) within a modern UI framework (We are moving our old Apps from jQuery to Vue) or just plain Javascript apps for the Web. There is some Java used for administration - but if we were to start from scratch, would probably do it in Node. The nice thing about Node is that it can also be used in Lambda on AWS for serverless back-ends. Our use of AI is encapsulated so we do not need to use Python - we can just use tools like AWS's machine-learning APIs from our Node apps.

Before that - when we had stand-alone UI (that did not run in a web browser / web view) we used a lot of Delphi (Object Pascal) for the front-end, we had C++ and Cobol for the back end. Glad these days are behind us. Delphi was a hybrid of C++ (power and capability) and Visual Basic (ease of use, integrated UI) - but even it feels really old fashioned compared to modern stuff.

I agree that C++ is not going anywhere. But I do not think the trend of it becoming more and more niche is going to change. In a world that is built on cloud computing low-level languages only make sense for edge devices which are either very low-hardware ioT devices (Not C++) or within the tools that the higher-abstraction use (V8, Chrome and Node's Javascript engine is partially built in C++ - so we can do real-time in Javascript because 99% of what is needed for Real-Time is already implemented down the chain, and we can use a higher abstraction tool).

I am honestly not a fan of Java - as I said, at some point it became very popular and started to become too big and complicated (like C++) - but for large scale projects that you do not want to use Javascript - I would use Java every day of the week over C++. A lot easier to live with it and a lot harder to get into real trouble.
I dont mean this as a shot towards you at all so dont take it that way. I always find it funny that every sw emgineer seems to have a different opinion as to what languages suck, which are great, which ones are dying, which ones are amazing.

The biggest fights weve ever been in, internally have been over what languages to write stuff in. My perspective is they all have pro’s and con’s but you can do just anout anything with any good language its just a matter of making it work. As you can tell there’s still some strife, which is why I was sent off to check out unreal / c++ and report how things worked out lol.

My thoughts in general on C++ is that its an awesome language to know, and it does a great job of making you, “think” like a computer while still being a oop language, c# and js for example I feel like ‘cheat’ a lot and our easier to work with, but bad code works far too often. Whereas bad code in C++ is likely going to break.

I actually find C++ less complex because of the fact that my code always ends up ‘reading’ better, because I had to actually think through what I was doing, where as in other languages I cruise through it.

Im sorry for dragging this convo out too long, its nice to have someone to talk too about this stuff lol. I really, really, like software and designing it and systems and making a bunch of text all work together to do awesome things is so much fun to me Id do it for free (please dont pass that on to my boss).
 
I dont mean this as a shot towards you at all so dont take it that way. I always find it funny that every sw emgineer seems to have a different opinion as to what languages suck, which are great, which ones are dying, which ones are amazing.

I have no problems with preferences - but there is no doubt that C++ usage is on a downward trend - this is just facts. I also have no problems with people liking C++ - clearly everyone should use whatever works for them and their projects. Personally, I am glad that my C++ days are behind me. Our current project provides twice to 3 times the functionality of our old one and maintenance is orders of magnitude easier compared to our old one with the same size of crew. Clearly for our needs, Node and hybrid UI is a much better solution.
 

Users who are viewing this thread

Back
Top