Jump to content

  • Log In with Google      Sign In   
  • Create Account


Best Multiplatform IDE?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
28 replies to this topic

#1 AniMerrill   Members   -  Reputation: 198

Like
0Likes
Like

Posted 27 February 2013 - 01:09 AM

This is probably a repost, so sorry about that.

 

Right now I'm trying to find the best multiplatform solution and I keep getting a bunch of mixed answers from Google searches. I've decided to download and develop on Ubuntu so I can test the multiplatform capability between the Ubuntu half of my computer and the Windows half, that way I'll pretty much know that my game runs on at least two different OS. So I've narrowed it down to a couple Linux IDEs:

 

*Code::Blocks, which I've tried before but didn't really like... not sure how good it really is

*Eclipse (at least the C++ specific version), but I hear it can become pretty slow since its Java based (same for NetBeans)

*Qt Creator, which I've heard a lot of good things about but it makes me nervous that its based around a specific SDK

 

I just wanna make sure from the get go that my IDE won't leave me hanging somewhere later close to release. I narrowed it down to these three because they all had relatively good things said about them and each seems pretty close to having a working version of Clang ready for them which seems invaluable for the debugging process. Is there something I'm missing, or should I just suck it up and straight up use vim with the normal GCC compiler and just do everything by hand because I'm so paranoid XD

 

Thanks for your help.


AniMerrill, a.k.a. Ethan Merrill


Sponsor:

#2 patrrr   Members   -  Reputation: 866

Like
2Likes
Like

Posted 27 February 2013 - 02:10 AM

You don't really need a multiplatform IDE, you could just pick the CMake build system which can generate project files for Visual Studio, Makefiles and a bunch of other editors and build systems. Qt Creator can even read CMakes directly. And you can definitely use Qt Creator for non-Qt stuff.

 

PS: emacs rocks.


Edited by patrrr, 27 February 2013 - 02:14 AM.


#3 AniMerrill   Members   -  Reputation: 198

Like
0Likes
Like

Posted 27 February 2013 - 02:19 AM

You don't really need a multiplatform IDE, you could just pick the CMake build system which can generate project files for Visual Studio, Makefiles and a bunch of other editors and build systems. Qt Creator can even read CMakes directly. And you can definitely use Qt Creator for non-Qt stuff.

 

PS: emacs rocks.

 

Okay that's a little relieving, I might take at least a look at Qt Creator then. I've sort of made a vow to get away from Microsoft products, because I'd really like to get into and support the good open source tools out there because... realistically indie gaming would be very lost without them.

 

What's emacs like? I've heard it compared to vim (which I know little about), is it basically the same thing? Like just a text editor but... not?


AniMerrill, a.k.a. Ethan Merrill


#4 patrrr   Members   -  Reputation: 866

Like
0Likes
Like

Posted 27 February 2013 - 02:44 AM

It's also a good idea to learn different ways of doing things just to get a broader perspective. Also, spreading your skills over a greater number of technologies makes sense as a security measure/future-proofing.

 

In that regard, I guess emacs is like vim. Without the hassle of modal editing, and better customization I guess. But it takes time to become fluent in emacs.



#5 Samurai Jack   Members   -  Reputation: 125

Like
0Likes
Like

Posted 27 February 2013 - 04:41 AM

What about Slick Edit? As PRO as it gets: http://www.slickedit.com/



#6 Bregma   Crossbones+   -  Reputation: 4358

Like
4Likes
Like

Posted 27 February 2013 - 07:55 AM

What's emacs like? I've heard it compared to vim (which I know little about), is it basically the same thing? Like just a text editor but... not?

Emacs is an OS shell.  One of its features is a built-in text editor.  You can even get vim mode plugin for the editor, and there are extensions to, for example, run a web server within emacs to test out your server-side code on the fly.  It uses a LISP variant as its programming language.  Emacs runs everywhere.  You need to memorize a bazillion multi-key combaintions (control-meta-alt-butterfly) and function names to use emacs effectively.

 

Vim is a text editor with enough add-ins and extensions that it can be used as a OS shell.  It has a smaller footprint (memory and disk space) than emacs and its programming language is procedural.  Vim runs everywhere.  The vi interface is modal, you need to fully grok that and memorize a gazillion bizarre keystrokes to use vim effectively.

 

The difference between something like vim or emacs and an IDE is the IDE is more rigidly structured (which limits its functionality, a mixed blessing) and an IDE tends to use clicky-clicky pictures where vim and emacs use text (which you can often click on).  An IDE is generally easier to learn, but like many things that are 'easier' they will limit your full power and make it harder to do the last 10% of the stuff you find you need.

 

QtCreator is the slickest free multi-platform IDE I've seen in a long time.  It's fast and responsive, easy to install and learn, and works the same everywhere I've run it.  It even has a vim mode for its text editor.

 

It's a matter of personal choice.  If you truly want a free development environment that feels and works the same on POSIX (Mac OS X, GNU/Linux) and WSA (Microsoft Windows) you should either choose emacs/vim or QtCreator.


Stephen M. Webb
Professional Free Software Developer

#7 nife87   Members   -  Reputation: 516

Like
0Likes
Like

Posted 27 February 2013 - 09:05 AM

*Code::Blocks, which I've tried before but didn't really like... not sure how good it really is

 

Just out of curiosity, what did you not like about it? Maybe you have encountered some of the more buggy builds.

 

I have used it for quite a few years for cross-platform development and, compared to the alternatives, I find it more flexible/low-level (you can customize about anything, including its build process) and "light-weight" (always responsive and you can trim any fat/plug-ins).

For beginners, there are IMHO better alternatives, such as QtCreator, which I find it too bloated (do not get upset - just my opinion).

Of course, you have to switch IDE (try out the others) from time to time anyways to form an updated opinion (which I do every few years).

 

BTW. If you have used CB nightly builds (and you almost have to if you want an updated version), especially those from 4-6 years ago, there are always bound to be some more-or-less buggy builds. If I encounter such buggy build, I just report the bug(s) and step one version down until the next build is released (and usually they have fixed the bug(s) by then).



#8 AniMerrill   Members   -  Reputation: 198

Like
0Likes
Like

Posted 27 February 2013 - 10:53 AM

QtCreator is the slickest free multi-platform IDE I've seen in a long time.  It's fast and responsive, easy to install and learn, and works the same everywhere I've run it.  It even has a vim mode for its text editor.

 

It's a matter of personal choice.  If you truly want a free development environment that feels and works the same on POSIX (Mac OS X, GNU/Linux) and WSA (Microsoft Windows) you should either choose emacs/vim or QtCreator.

 

Thank you for this post. I was actually starting to feel punked because I was reading the tutorial that comes with emacs and kinda... under appreciating it I think. I mean, I'm twenty something, so every computer I was old enough to remember using had Microsoft Notepad included so, to me, emacs just seems like a really... bad text editor. I guess instead of reading the basic text editor tutorials I should maybe look up specific stuff, like how to use it to make C++?

 

Either that or just use Qt Creator since I don't really see how it would hurt me, at least with the main production process which will definitely be the hardest part I imagine. As long as I can eventually port it to the main trinity of OS without much of a headache I think I'll be happy with that.


AniMerrill, a.k.a. Ethan Merrill


#9 Cornstalks   Crossbones+   -  Reputation: 6882

Like
0Likes
Like

Posted 27 February 2013 - 11:16 AM

Thank you for this post. I was actually starting to feel punked because I was reading the tutorial that comes with emacs and kinda... under appreciating it I think. I mean, I'm twenty something, so every computer I was old enough to remember using had Microsoft Notepad included so, to me, emacs just seems like a really... bad text editor. I guess instead of reading the basic text editor tutorials I should maybe look up specific stuff, like how to use it to make C++?

Can you play Tetris, Snake, etc. in Notepad? Nope, but you can in Emacs (for example, M-x tetris (that is, Escape, press x, then type tetris). Just a small sample of Emacs. If you watch someone who really knows Emacs, it's like watching someone do magic.
 

Either that or just use Qt Creator since I don't really see how it would hurt me, at least with the main production process which will definitely be the hardest part I imagine. As long as I can eventually port it to the main trinity of OS without much of a headache I think I'll be happy with that.

I'd personally suggest using Qt Creator. Emacs is cool and all, and I use it (in addition to Xcode and Visual Studio), but unless you really want to get into the Linux/GNU/Open source/Command line-type world, you probably won't get as much out of Emacs as you would a more visual/GUI-type IDE, like Qt Creator.
[ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

#10 AniMerrill   Members   -  Reputation: 198

Like
0Likes
Like

Posted 27 February 2013 - 11:34 AM

 

*Code::Blocks, which I've tried before but didn't really like... not sure how good it really is

 

Just out of curiosity, what did you not like about it? Maybe you have encountered some of the more buggy builds.

 

I have used it for quite a few years for cross-platform development and, compared to the alternatives, I find it more flexible/low-level (you can customize about anything, including its build process) and "light-weight" (always responsive and you can trim any fat/plug-ins).

For beginners, there are IMHO better alternatives, such as QtCreator, which I find it too bloated (do not get upset - just my opinion).

Of course, you have to switch IDE (try out the others) from time to time anyways to form an updated opinion (which I do every few years).

 

BTW. If you have used CB nightly builds (and you almost have to if you want an updated version), especially those from 4-6 years ago, there are always bound to be some more-or-less buggy builds. If I encounter such buggy build, I just report the bug(s) and step one version down until the next build is released (and usually they have fixed the bug(s) by then).

 

I can't really remember at this point, its been about half of a year since I used Code::Blocks. Generally it seemed like a cool idea, but I think its just because I was coming down from a long experience of using Microsoft Visual Studio which... pretty much holds your hand the entire time. Maybe I'll have to take a look at it again.

 

If you know of any tutorials or guides to how to use Code::Blocks effectively, I might take another look at it. I think generally it was just a lot of information overload.


AniMerrill, a.k.a. Ethan Merrill


#11 swiftcoder   Senior Moderators   -  Reputation: 8076

Like
1Likes
Like

Posted 27 February 2013 - 12:26 PM

I'd like to offer a slightly different perspective: I've never been a fan of monolithic IDEs, whether obscenely visual or arcanely textual.

 

I pretty much exclusively develop with a tabbed text editor alongside a tabbed terminal window (interspersed by the occasional browser or file browser), all with a liberal dose of alt-tab'ing back and forth.

 

It does take a little while to develop such a freeform workflow, but the flexibility you gain is well worth it, in my book...


Tristam MacDonald - SDE II @ Amazon - swiftcoding        [Need to sync your files via the cloud? | Need affordable web hosting?]


#12 Servant of the Lord   Crossbones+   -  Reputation: 14870

Like
0Likes
Like

Posted 27 February 2013 - 12:57 PM

I also like QtCreator. QtCreator doesn't tie you to the Qt api (but has built-in Qt wizards if you want to use them). However, it does sorta tie you to their own 'make' tool, called QMake (which produces make files for GCC's make). You can use something like CMake if you want to though, but I personally like the QMake .pro files.

 

QtCreator is a very good IDE. It only has syntax highlighting for C++ (and a few other Qt-related things like the QMake files), but afaik it lacks support for other languages.


It's perfectly fine to abbreviate my username to 'Servant' rather than copy+pasting it all the time.

[Fly with me on Twitter] [Google+] [My broken website]

All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.                                                                                                                                                       [Need free cloud storage? I personally like DropBox]

Of Stranger Flames - [indie turn-based rpg set in a para-historical French colony] | Indie RPG development journal


#13 AniMerrill   Members   -  Reputation: 198

Like
0Likes
Like

Posted 27 February 2013 - 09:36 PM

I'd like to offer a slightly different perspective: I've never been a fan of monolithic IDEs, whether obscenely visual or arcanely textual.

 

I pretty much exclusively develop with a tabbed text editor alongside a tabbed terminal window (interspersed by the occasional browser or file browser), all with a liberal dose of alt-tab'ing back and forth.

 

It does take a little while to develop such a freeform workflow, but the flexibility you gain is well worth it, in my book...

 

I was definitely considering this. What exactly do you use specifically? I might take a look at doing it that way, might be a good learning experience at the very least.

 

I also like QtCreator. QtCreator doesn't tie you to the Qt api (but has built-in Qt wizards if you want to use them). However, it does sorta tie you to their own 'make' tool, called QMake (which produces make files for GCC's make). You can use something like CMake if you want to though, but I personally like the QMake .pro files.

 

QtCreator is a very good IDE. It only has syntax highlighting for C++ (and a few other Qt-related things like the QMake files), but afaik it lacks support for other languages.

 

On Ubuntu I found it in the software center with a thing to include CMake instead of (or in addition to) QMake. Is there benefits of one over the other? Or does QMake just happen to be the default because its made to work with the IDE, but essentially they're the same?


AniMerrill, a.k.a. Ethan Merrill


#14 Servant of the Lord   Crossbones+   -  Reputation: 14870

Like
1Likes
Like

Posted 27 February 2013 - 10:00 PM

CMake and QMake serve the same purpose. There are others as well, but I don't have much experience with them.

A 'makefile' is a file that says what files are needed to make the program, and then you have a Make executable (GCC's being the most widespread) that reads the makefile and then builds each file using whatever tool is needed to build it. You can tell Make to compile files with the .cpp extension using GCC, or using Microsoft's compiler, or using another compiler. You can tell it to 'compile' .png files using your own command-line tool, to pre-convert the .pngs to powers of two textures, or to another format. Things of that nature.

CMake and QMake exist to add additional features to GCC's make, and generate GCC makefiles, as well as provide a more user-friendly syntax.

They use their own files and syntax, and when executed, generate makefiles and then execute GCC's make on those makefiles. (Or they can generate other files, like Visual Studio project files).

Unless you have personal preference or a project requirment to use CMake over QMake, I'd just use QMake. Better support in the Qt tools. But even without third-party support, QtCreator supports CMake (though you have to install CMake separately).

As someone inexperienced with makefiles, I find QMake files easy to understand and easy to edit, though they are less powerful/flexible that GCC makefiles, being focused purely on C++. I don't know if QMake files can, for example, tell your .png files to become power-of-two textures by calling your own command-line tools - but I never tried, so the feature may be in there somewhere.

Here's the complete (and rather large) QMake .pro file from my current game project, so you can get an idea for the QMake syntax:
http://ideone.com/kCMua3 (It's not naturally that organized - I manually edit the .pro file to organize it)


Edited by Servant of the Lord, 27 February 2013 - 10:13 PM.

It's perfectly fine to abbreviate my username to 'Servant' rather than copy+pasting it all the time.

[Fly with me on Twitter] [Google+] [My broken website]

All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.                                                                                                                                                       [Need free cloud storage? I personally like DropBox]

Of Stranger Flames - [indie turn-based rpg set in a para-historical French colony] | Indie RPG development journal


#15 swiftcoder   Senior Moderators   -  Reputation: 8076

Like
0Likes
Like

Posted 28 February 2013 - 07:24 AM

I pretty much exclusively develop with a tabbed text editor alongside a tabbed terminal window (interspersed by the occasional browser or file browser), all with a liberal dose of alt-tab'ing back and forth.

I was definitely considering this. What exactly do you use specifically? I might take a look at doing it that way, might be a good learning experience at the very least.

Sublime is my go-to text editor - it's even managed to replace ViM for my day-to-day editing tasks, and that's saying something. The $70 price tag may seem a little steep, but it's far and away the best GUI text editor on the market at this point, and one license lets you run it on as many computers/OS's as you like (plus you get access to the beta for Sublime 3, which adds symbol indexing, and a host of other improvements).

 

I tend to use CMake -> makefiles from the command line for compiling.

 

Debug with gdb on the command line too, but many people find this too arcane. There is always DDD, or the graphical debugger of your choice.


Tristam MacDonald - SDE II @ Amazon - swiftcoding        [Need to sync your files via the cloud? | Need affordable web hosting?]


#16 AniMerrill   Members   -  Reputation: 198

Like
0Likes
Like

Posted 28 February 2013 - 02:11 PM

CMake and QMake serve the same purpose. There are others as well, but I don't have much experience with them.
Unless you have personal preference or a project requirment to use CMake over QMake, I'd just use QMake. Better support in the Qt tools. But even without third-party support, QtCreator supports CMake (though you have to install CMake separately).


As someone inexperienced with makefiles, I find QMake files easy to understand and easy to edit, though they are less powerful/flexible that GCC makefiles, being focused purely on C++. I don't know if QMake files can, for example, tell your .png files to become power-of-two textures by calling your own command-line tools - but I never tried, so the feature may be in there somewhere.

Here's the complete (and rather large) QMake .pro file from my current game project, so you can get an idea for the QMake syntax:
http://ideone.com/kCMua3 (It's not naturally that organized - I manually edit the .pro file to organize it)

 

Thank you for your explanation and example, I already knew a little bit about makefiles but I think I really get the idea now. I'll probably just roll up my sleeves and try to learn CMake, sounds like in the end it will be a little more useful to me even if QMake is easier.

 

Sublime is my go-to text editor - it's even managed to replace ViM for my day-to-day editing tasks, and that's saying something. The $70 price tag may seem a little steep, but it's far and away the best GUI text editor on the market at this point, and one license lets you run it on as many computers/OS's as you like (plus you get access to the beta for Sublime 3, which adds symbol indexing, and a host of other improvements).

 

I tend to use CMake -> makefiles from the command line for compiling.

 

Debug with gdb on the command line too, but many people find this too arcane. There is always DDD, or the graphical debugger of your choice.

 

I'm running on a zero dollar budget, so $70 even for the best thing ever isn't gonna happen. Although, maybe for my second game project, I'll finally be able to afford it xD For now I'm gonna try to use Qt Creator and since I've heard some good things about it I've got Geany in my back pocket which sounds like a good free alternative to something like Sublime.

 

Gonna take a look at that debugger though, sounds interesting.


AniMerrill, a.k.a. Ethan Merrill


#17 Bearhugger   Members   -  Reputation: 449

Like
1Likes
Like

Posted 28 February 2013 - 07:26 PM

I haven't used Qt Creator extensively so I don't comment on it, but I have used Eclipse a lot, so in case it helps, here's my thoughts about it.

 

Advantages:

* The syntax highlighting is better than Visual Studio and supports more styles, plus Doxygen comment coloring.

* Code completion seemed good enough.

* You get free refactoring tools for C++ without having the shell 200$ for a lame commercial plugin. (Refactoring also happens in realtime in the editor which is pretty cool.)

* You can auto-generate your method stubs from a class definition. (If you can do that in VS I don't know how.)

* You can auto-generate getter and setters for the attributes of your choice..

* If you work with others, you can force coding conventions. (For example, we never use camelCasing where I work, but we hired an ex-Java guy who wrote all his methods like that. Eclipse immediately underlined his methods in red.)

* CppUnit integrated, if you're the type who'd rather spend hours write test than spend them debugging.

* If you program in any other language, chances are that there's a plugin for it too. (Python, Ruby, JavaScript, PHP, Objective-C, Java, you name it!)

* You can hold CTRL to make all your symbols turn into links and you can click on them to navigate through your code base.

* It has A LOT of plugins, and most of those are free. (In fact, plugins are what makes Eclipse what it is.)

* Tons of useful features for backup and source control, like git/svn/etc. plugins and export/import to zip.

 

Disadvangages:

* Debugging seems a bit lacking and the default interface looks confusing, even in Java. Plus it's slow. (Or maybe I'm just spoiled by Visual Studio.)

* It uses Java so you need the Java runtime. It's not incredibly slow and you probably won't notice unless debugging or refactoring though.

* The workspace-based project management system is confusing. Basically you pick a folder (which is by default NOT in your Documents folder) and all your Eclipse projects have to be there.



#18 swiftcoder   Senior Moderators   -  Reputation: 8076

Like
1Likes
Like

Posted 28 February 2013 - 11:08 PM

* You can hold CTRL to make all your symbols turn into links and you can click on them to navigate through your code base.

This was the single feature that kept me using Eclipse for so long, despite its clunky interface and bloated processor/memory requirements.


Tristam MacDonald - SDE II @ Amazon - swiftcoding        [Need to sync your files via the cloud? | Need affordable web hosting?]


#19 Overman   Members   -  Reputation: 314

Like
0Likes
Like

Posted 01 March 2013 - 11:00 AM

I have to agree. Eclipse is by far my IDE of choice. Not just for C++ but a plethora of other languages as well. Works on Windows, Linux, and Mac. It's super easy to use. It's open source (which is super cool). It has a ton of excellent plugins, a lot of support, and they are constantly rolling out new versions.

 

Eclipse is definitely the safe bet. Also, it's free.



#20 Servant of the Lord   Crossbones+   -  Reputation: 14870

Like
0Likes
Like

Posted 01 March 2013 - 11:53 AM

* You can hold CTRL to make all your symbols turn into links and you can click on them to navigate through your code base.

This was the single feature that kept me using Eclipse for so long, despite its clunky interface and bloated processor/memory requirements.

 

QtCreator has that too. Ctrl+Clicking a function name switches between the definition and the declaration, Ctrl+Clicking a variable name brings you to that variable's creation point, Ctrl+Clicking a variable type brings you to the declaration of a that type. I agree that it's very useful!


It's perfectly fine to abbreviate my username to 'Servant' rather than copy+pasting it all the time.

[Fly with me on Twitter] [Google+] [My broken website]

All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.                                                                                                                                                       [Need free cloud storage? I personally like DropBox]

Of Stranger Flames - [indie turn-based rpg set in a para-historical French colony] | Indie RPG development journal





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS