Jump to content

Dev C++ or Visual studio


btgames
 Share

Recommended Posts

Thinking about purchasing the engine and i see the tutorials are all for visual studio. I am very comfortable with dev c++, do i have to use visual studio with the engine or can i stick with what i have? Might be a crazy question but was just wondering

Link to comment
Share on other sites

You can use whatever editor you wish. Only catch is that you'll need to setup Dev C++ on your own, while the LE wizard generates the required project files for VS automagically.

Programmer, Modeller

Intel Core i7 930 @ 3.5GHz | GeForce 480 GTX | 6GB DDR3 RAM | Windows 7 Premium x64

Visual Studio 2008 | Photoshop CS3 | Maya 2009

Website: http://srichnet.info

Link to comment
Share on other sites

Won't it require a special dll compiled with GCC in order to be able to use LE with DevC++?

Besides that, a Devc++ project option should be added to the project wizard. It would be cool indeed since GCC gets along pretty nicely with Opengl. This would make the Linux port more feasible :)

 

EDITED: NM my comment about the project wizard; I just read what DJDD mentions about it.

Win8.1 Pro X64/ Intel core I7 @ 3.5GHz / 32GB DDR3 SDRAM / GeForce GTX 660+760/ VC++ Express 2013/ Blender /Unwrap3dpro3 /Modo 8

Link to comment
Share on other sites

You can use the same dll with any programming language, so it's the same also which C++ compiler you use.

A Linux port would be very interesting, since currently LE is compiled using MinGW C++, which is a GNU C++ port to Windows, but it's much slower than the real GNU C++ under Linux. Under Linux, BlitzMax uses the real GNU C++, which makes about 400% (=5 times) faster code than BlitzMax under Windows, if you do the math: MinGW is 2.5 times slower than VC++, VC++ is 2.5 times slower than GNU C++.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

You can use the same dll with any programming language, so it's the same also which C++ compiler you use.

A Linux port would be very interesting, since currently LE is compiled using MinGW C++, which is a GNU C++ port to Windows, but it's much slower than the real GNU C++ under Linux. Under Linux, BlitzMax uses the real GNU C++, which makes about 400% (=5 times) faster code than BlitzMax under Windows, if you do the math: MinGW is 2.5 times slower than VC++, VC++ is 2.5 times slower than GNU C++.

 

MinGW is 2.5x slower than VC++? Do you have any benchmarks to show this, I haven't seen that myself, but of course it probably depends on the code. Were you using equivalent compiler options? If MinGW really is that much slower, then why is LE built using it then?

Windows 7 x64 - Q6700 @ 2.66GHz - 4GB RAM - 8800 GTX

ZBrush - Blender

Link to comment
Share on other sites

Yeah, I have the benchmark programs still somewhere, but I could rerun them for the current versions of MinGW/VC/GNU to see if anything has changed. I used all possible optimizations also, and got some more speed out of MinGW too than with its default settings.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

Since you're a source owner, I'm assuming you could recompile the engine using VC++ (assuming there's not TOO many things you have to change to make VC++ happy) and check actual framerate difference on a scene. If you suddenly find yourself w/ an excess of free time and no way to fill it, knowing if using VC++ would increase the engine speed could benefit the community a lot if the engine.dll runs significantly faster. Is there a lot of assembly that would be a pain to modify in there?

Windows 7 x64 - Q6700 @ 2.66GHz - 4GB RAM - 8800 GTX

ZBrush - Blender

Link to comment
Share on other sites

It's not that simple. I would also need BlitzMax C++ compiler (bcc.exe) source code in order to compile LE with VC++. It was available earlier, but I think it's not available anymore. However, I've played around with converting few functions to C++, but it's a huge job to convert everything to native C++.

 

Meanwhile, I reran all the speed tests again, and Debian GNU C++ wins!

I remembered wrong, VC++ was not 2.5 times slower than GNU, but still a lot slower.

Currently MinGW is 1.902 times slower than VC++, and VC++ is 1.315 times slower than GNU:

MinGW default:

Speedtest 1.0 © 2008 Siipi

Counting 10 billion floating points...

Done. i=1410063201, n=100000.000003, time=41.594000s.

Creating and deleting 1 billion class objects...

Done. i=100000000, time=16.937000s.

Total time=58.531000s.

 

 

VC default:

Speedtest 1.0 © 2008 Siipi

Counting 10 billion floating points...

Done. i=1410063201, n=100000.000003, time=41.609000s.

Creating and deleting 1 billion class objects...

Done. i=100000000, time=15.469000s.

Total time=57.078000s.

 

 

VC -O3:

Speedtest 1.0 © 2008 Siipi

Counting 10 billion floating points...

Done. i=1410063201, n=100000.000003, time=41.593000s.

Creating and deleting 1 billion class objects...

Done. i=100000000, time=15.453000s.

Total time=57.046000s.

 

 

MinGW -O3 -mtune=i686:

Speedtest 1.0 © 2008 Siipi

Counting 10 billion floating points...

Done. i=1410063201, n=100000.000003, time=37.437000s.

Creating and deleting 1 billion class objects...

Done. i=100000000, time=15.766000s.

Total time=53.203000s.

 

 

VC IDE default:

Speedtest 1.0 © 2008 Siipi

Counting 10 billion floating points...

Done. i=1410063201, n=100000.000003, time=15.078000s.

Creating and deleting 1 billion class objects...

Done. i=100000000, time=12.953000s.

Total time=28.031000s.

 

 

VC IDE -O3:

Speedtest 1.0 © 2008 Siipi

Counting 10 billion floating points...

Done. i=1410063201, n=100000.000003, time=15.078000s.

Creating and deleting 1 billion class objects...

Done. i=100000000, time=12.890000s.

Total time=27.968000s.

 

 

openSUSE 11.2 GNU -O3 -mtune=i686:

Speedtest 1.0 © 2008 Siipi

Counting 10 billion floating points...

Done. i=1410065408, n=100000.000009, time=16.060000s.

Creating and deleting 1 billion class objects...

Done. i=100000000, time=5.310000s.

Total time=21.370000s.

 

 

Debian 5.0 GNU -O3 -mtune=i686:

Speedtest 1.0 © 2008 Siipi

Counting 10 billion floating points...

Done. i=1410065408, n=100000.000009, time=16.650000s.

Creating and deleting 1 billion class objects...

Done. i=100000000, time=4.620000s.

Total time=21.270000s.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

Thanks for the info, it is enlightening. Just for fun you might want to throw Sun Studio 12 into the mix :) Not that it would be applicable to LWE at this time. I didn't realize that the core engine was actually written in BlitzMax, I thought it was just a supported language. Or is it just required as a dependency for the BlitzMax support?

Windows 7 x64 - Q6700 @ 2.66GHz - 4GB RAM - 8800 GTX

ZBrush - Blender

Link to comment
Share on other sites

LE is partly written in BlitzMax, some functions are in C++ (newton.dll is completely written in C++), but most functions are written in OpenGL and GLSL. I guess in future more and more functions will be written in C++ to replace the BlitzMax functions, since it can be done on-the-fly, as BlitzMax can compile BlitzMax, C/C++ and Assembler code directly.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

Lumooja, with Irrlicht there are 2 separate dlls of the engine according to the IDE+Compiler you use (1 compiled with MSVC and the other for Devc++/Codeblocks compiled with Migw/GCC), however, if you start a project in Msvc and use Mingw's dll the program will crash when running it, and same thing occurs viceversa. Are you sure we can just use the dlls included in LE and start a project manually either in MSVC or Devc++?

 

I'll give it a try :D

And when you guys talk about compiling the source, is the source included when we update the SDK?

 

regards,

Alvaro

Win8.1 Pro X64/ Intel core I7 @ 3.5GHz / 32GB DDR3 SDRAM / GeForce GTX 660+760/ VC++ Express 2013/ Blender /Unwrap3dpro3 /Modo 8

Link to comment
Share on other sites

Yes, I'm absolutely sure, since LE's dll uses stdcall convention, which is the standard calling convention for any and all Windows programs. Heck, you could even use LE with Fortran, Lisp, ADA or COBOL :D

 

I've played around with Irrlicht also, but I don't know why they can't manage to unify their code. Well, it's not as clean as Ogre, but it has better model support (which a game engine doesn't even need). Irrlicht has also a custom software renderer, which is nice, but the visual quality is quite horrible :P

 

The source of LE is not included in the SDK. It's a special license, from which the only public information is that such thing exists. Many other engines have a similar convention too, source is not officially marketed, but when asking about it, you will find that there is indeed such an option. Source owners don't usually do anything with it, they just need it as a business backup in case the original manufacturer is not in business anymore.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

ahhhh got it! :D cool to know that. Or unless you use a specific MFC thingie that will bound your program exclusively to MSVC, right? Otherwise and as long as your code remains standard C++ you can cross compile your apps? coolies! :P

 

So I definitely gotta try it out. Then...that Linux version is much closer than I thought! The only issue here would be compiling the toolset for Linux. Interesting...interesting...mmmhhh mmhhhh. ;)

 

ps. I'm very fond of Irrlicht since it's the one that got me started in the pretty basic C++ stuff I know. I agree its model support is great, it's easy to learn and use through its tutorials, but I haven't got a clue about code cleanliness, heheehhe ;) Still you're right, there are many things to update to keep up with today's standards but the team is working hard on it.

 

cheers and thx for the explanation! :D

Alvaro

Win8.1 Pro X64/ Intel core I7 @ 3.5GHz / 32GB DDR3 SDRAM / GeForce GTX 660+760/ VC++ Express 2013/ Blender /Unwrap3dpro3 /Modo 8

Link to comment
Share on other sites

A Linux version is actually as close as me getting the first cup of coffee with milk on the coming Saturday, and pressing the compile button when I multi-booted into Debian (I need to do some preparations first, like installing the newest BlitzMax for Linux (had some problems with openSUSE earlier since it conflicted in the GNU C++ version, but Debian might just work fine)). We'll see what happens, at some point there were some Windows specific bindings (like the TTF font function, but that has been long gone since), but at the moment I can't recall any, so it might just work :D

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

The Newton module has to be edited to support Linux/MacOS, and the OpenAL binding needs some small changes, but other than that everything should compile and run the same on all platforms.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...