Skip to main content
GameDev.net gamedev.net
🔒 Locked

C++ Programming - What IDE to use ?

Started by _unreal Mar 13, 2013 at 6:10 PM 23 replies 27k views
Original Post
_unreal
_unreal

Just starting with my 3D game engine and i'm wandering what would the best IDE to use:

I have at the moment the following;

- Visual studio 2012 (with added plugins)

- Code-blocks

I'm just wandering is there something i'm missing that could be better, i personally prefer Visual studio at the moment.

So what i wan't to know any other possible IDE's i could use

Thanks in advance

GeneralQuery
GeneralQuery

If there was such a thing as the "best" IDE then there would only be one on the market (and everyone would be using it). Clearly this isn't the case and each have their own pros and cons. VS is a mighty fine IDE but of course it's Windows only so if you were working on multiple platforms then it might be more convenient to use a cross-platform IDE (of which there are a few). However, you state that you personally prefer VS so unless you have other requirements not stated in your OP then I see no pressing reason to switch to another.

Kny069
Kny069

Maybe Eclipse or Netbeans? It's more for Java but also C/C++-support. Now i'm using Eclipse atm

Dunge
Dunge
If you do Windows development, Visual Studio all the way. Others are not even close.
renega_666
renega_666

From your recent posts I see that you plan on working with Direct X so I guess you only target windows. If I'm right, I suggest you to continue with Visual Studio. I personally think its the best C++ IDE for windows, mainly because of its fast and reliable debugger (especially if you ever need to do remote debugging, using gdb for remote debugging is a pain in the ass...).

If you plan on going cross-platform, Qt Creator + CMake is a nice setup. The IDE is cross-platform, modern and provides a lots of tools (refactoring, code completion, gui designer with Qt -> nice for the engine's tools) while CMake give you a lots of flexibility and gives you a way to easily package your software across all platforms.

maxgpgpu
maxgpgpu

CodeBlocks for Linux development.

VisualStudio2010 or CodeBlocks for Windows development.

If you're creating both Linux and Windows applications, CodeBlocks alone is fine.

Eclipse is very slow and extremely annoying in certain ways.

Janissary
Janissary

So you are going to develop a 3D game engine but you are asking what is the "best" IDE to use.

Stroppy Katamari
Stroppy Katamari

- Visual studio 2012 (with added plugins)

If I recall correctly, VS Express doesn't have plugins, so you have the Professional edition... right?

VS is clunky out of the box, but with plugins it can become pretty nice. (Even if it still kind of sucks at editing text.) If you don't have Visual Assist X already, get it. It's not too expensive for what it does.
MichaBen
MichaBen
 

Others are not even close.

 
I wonder with this statement if you even used other IDEs. Or you must mean that other IDE don't come close because they are already far ahead. But when it comes to code editing, Visual Studio is probably the least innovative and modern IDE you can think of. The main strong point of VS is the debugger, but for writing code it's horribly unproductive to work with VS (at least with the basic product without plugins).

Some things I'm missing from Visual Studio that for example QtCreator has natively:
- Smart indention (copy/paste a piece of code into a scope with different indention and it automatically adds or remove tabs for you, rather then manually select all lines and press tab several times).
- Pointer recognition (press . after a variable that is a pointer and it is replaced with -> automatically).
- Automatic closing quotes/brackets for literals/function calls/scopes/includes.
- Hotswap between cpp/header (VS only has this for cpp>header using context menu).
- Hotswap between declaration/implementation (VS only has separate go to definition/declaration that is still slow and buggy with large projects).
- Syntax highlighting is still limited in VS without plugins, although it's catching up with 2012.

Basically, when it comes to writing code, I find using plain old Visual Studio without third party plugins bad for your productivity.
Nypyren
Nypyren

Some things I'm missing from Visual Studio that for example QtCreator has natively:
- Smart indention (copy/paste a piece of code into a scope with different indention and it automatically adds or remove tabs for you, rather then manually select all lines and press tab several times).
- Pointer recognition (press . after a variable that is a pointer and it is replaced with -> automatically).
- Automatic closing quotes/brackets for literals/function calls/scopes/includes.
- Hotswap between cpp/header (VS only has this for cpp>header using context menu).
- Hotswap between declaration/implementation (VS only has separate go to definition/declaration that is still slow and buggy with large projects).
- Syntax highlighting is still limited in VS without plugins, although it's catching up with 2012.

Basically, when it comes to writing code, I find using plain old Visual Studio without third party plugins bad for your productivity.

None of those things would be particularly hard to implement (on top of the intellisense engine they already have, anyway). I think the only reason Microsoft hasn't added them is because they would put Visual Assist X (which includes all of your bullet points) out of business.
superman3275
superman3275

You could try QtCreator also. From what I've heard it has amazing syntax highlighting and can be very useful.

I use Visual Studio for C++, and Eclipse for Java. CodeBlocks is very good also, however when I used it (was my first IDE), the syntax highlighting would get in the way a lot.

Cheers :)!

Khatharr
Khatharr

Man up. angry.png

Use notepad.

Nah, VS is best for windows dev. Once you get it to install correctly you can just install the DX SDK and the two should link up automagically.

void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.
Khatharr
Khatharr

Im inclined to disagree I think OpenGL is much easier to understand for newcomers, and you can't make anything cross platform with DX so good luck getting it on any iStore or anything.

OpenGL is not an IDE.

void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.
j-locke
j-locke

Im not really sure, I'd have to say codeblocks even still, because you can use a cross platform wxWidgets toolkit for GUI stuff which does allot more than .NET framework controls. It can do MDI and allow docking floating panels, it also has a Scintilla wrapper, which is like a code editor with the line numbers and stuff and it can be customized and parses pretty much all of the known languages, being XML HTML C# C++ Java Basic you name it. But if you really just want an easy to use game programming IDE and language for only Windows development, use XNA & Visual C#.

I think you're confusing a lot of different concepts into this discussion. There is a question about what IDE to use on the table but most of your responses have been why cross platform solutions are better than Windows solutions (which may be perfectly valid, but just seems a bit off topic). OpenGL was something you mentioned, that can be used with any IDE. wxWidgets is a valid toolkit suggestion for GUI stuff, but again, that can be used from any IDE.

Visual Studio doesn't limit you to the .Net framework and CodeBlocks isn't the only avenue to wxWidgets.

I think the OP has gotten the best available suggestions available on IDEs so I have nothing new to add on that front.

21st Century Moose
21st Century Moose

Im not really sure, I'd have to say codeblocks even still, because you can use a cross platform wxWidgets toolkit for GUI stuff which does allot more than .NET framework controls. It can do MDI and allow docking floating panels, it also has a Scintilla wrapper, which is like a code editor with the line numbers and stuff and it can be customized and parses pretty much all of the known languages, being XML HTML C# C++ Java Basic you name it. But if you really just want an easy to use game programming IDE and language for only Windows development, use XNA & Visual C#.

I've said this before and I'll say it again.

When somebody is starting out, learning things for the first time, ambitions of being cross-platform should be the last thing on their minds, the bottom of any concievable priority list.

They have enough to be doing as it is. There's a huge body of knowledge that they need to build up on just one platform; multiply that out by the number of possible platforms they may wish to hit and you've a recipe for failure. No, libraries and toolkits aren't good enough - there are still enough platform-specific quirks that they fail to abstract out fully. Learning new stuff, making it work, dealing with mistakes and misunderstandings, and having to do it all over again for each aditional platform - that's just not gonna fly.

There's nothing wrong with aiming to go cross-platform, but just not for the first project. Recommendations to (paraphrasing here) "use OpenGL because it will help you get on the iStore" are neither helpful nor constructive here, nor are they even remotely on-topic with respect to the question actually being asked.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls. 
Genert
Genert

As previously said, I also suggest Visual Studio, it is great on Windows OS, well it is the best I know...

If you ever go to other platforms ( for example Linux ), then I suggest to use QtCreator, it has a really good debugger and the usability is awesome, but it really feels a bit strange to use it for "normal" C++ code. But there is a good alternate too, like Code::Blocks. wink.png

However, if you consider making something big and multi-platform ,it is better to use cmake or other build tools instead the internal project management of Visual Studio or qmake( it's not bad, but not useful for non-qt development ).

How do you suppose certain knowledge in past times was suddenly there?
Luck, chance, coincidence? 
*cough* Elite Family *cough* 
21st Century Moose
21st Century Moose

Did you not read my last sentence? That is why I suggested XNA and Visual C# if he really want's something basic to start out with. But if he really wants to learn 3D programming the real technical way (DirectX/OpenGL) I would suggest he learn OGL it is much better I think to learn with than DirectX, plus it saves him from wasting his time learning DirectX. I would start with OGL and then learn DirectX, allot of DX code is pretty archaic and it is nowhere as safe as OGL programming.

Personally I would suggest he use something like Unity3D or Game Maker, or more specifically the open source free Game Maker that I am a developer for.

Strikes me that it's a LONG time since you've last had experience of D3D code (and the arguments you're making can be quite easily destroyed, but save them for another topic, which - I more than half suspect - the mods will shut down in pretty short order).

The core point remains - the question was relating to an IDE, not an API or framework.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls. 

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.