• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Vincent_M

C++ IDEs for Linux

35 posts in this topic

I'm developing a set of arcade games to put into an arcade machine I'm designing. I'm using Eclipse to develop everything, and it's got quite a few projects in the workspace: Engine, Launcher, Game1, Game2, Game3, etc. My Engine and all of the game projects are built as shared objects, and all projects use Engine as a dependency project as it handles all of the OpenGL/AL stuff under the hood. The problem is, I keep running into headaches with Eclipse on my Debian development computer:
-Vague/obscure errors (I keep getting "Error 1" with no further information whenever something happens in the Engine library)
-Some classes in the Engine project are unrecognized, even when they're in the same header/source files as recognized classes when calling them from projects outside of the Engine project
-Engine appears to rebuild itself every single time I make a change in any project, but the changes aren't always reflected, so I have to manually Clean/Refresh/Build each project

I think it's better to try a different IDE at this point. I went through a tricky episode trying to get Eclipse to play nice with the NDK so I could get a simple Hello World app to compile using my engine as a shared library for the OUYA. Does anyone have any recommendations?
2

Share this post


Link to post
Share on other sites

KDevelop looks beautiful! This is the first time I've heard of it. Tell me, is it as "bloated" as Eclipse?

 

Well, you need to install all the KDE libraries (which is a lot of crap you're barely going to use). But the thing itself is just native C++.

2

Share this post


Link to post
Share on other sites

I would also vote for QtCreator. KDevelop is nice but not really suited to cross-platform development (not everyone wants to install the whole KDE on Windows)

0

Share this post


Link to post
Share on other sites

I would also vote for QtCreator. KDevelop is nice but not really suited to cross-platform development (not everyone wants to install the whole KDE on Windows)

That's what CMake, Premake, QMake, etc. are for.

 

With that said, CMake and Premake don't support generation of project files for KDevelop or QtCreator, whereas they do support Code::Blocks.

0

Share this post


Link to post
Share on other sites

KDevelop looks beautiful! This is the first time I've heard of it. Tell me, is it as "bloated" as Eclipse?

It runs much better than eclipse here. "Bloated" can be subjective, the only way you'll know for sure is to try it.

I would also vote for QtCreator. KDevelop is nice but not really suited to cross-platform development (not everyone wants to install the whole KDE on Windows)

The OP specifically asked for Linux and didn't mention cross-platform.
Furthermore, I don't think most people consider having to use different IDEs on different platforms a deal breaker.

2

Share this post


Link to post
Share on other sites
I vote for Code::Blocks (with the optional community plugins), which I use for virtually all my gamedev needs.

However, I also use Geany to put together code snippets and make simple experiments due to its simplicity.
QtCreator is good if I want to use Qt, I never use it otherwise.
KDevelop is great, but if you are not using a KDE based distro you'll have to install almost 300mb of prerequisites (that probably won't be used anywhere else). Despite that, it is a really good IDE if you don't mind having to build through command line on other OSs (an absolutely easy process). Just remember, if you ever decide to uninstall KDevelop, run apt-get autoremove afterwards to (automatically) get rid of all those dependencies. Edited by dejaime
0

Share this post


Link to post
Share on other sites

I'm currently using mono-develop, it's pretty awesome (though minimalistic)!

 

sudo apt-get install software-properties-common

sudo add-apt-repository ppa:keks9n/monodevelop-latest
sudo apt-get update
sudo apt-get install monodevelop-latest
1

Share this post


Link to post
Share on other sites

I'm currently using mono-develop, it's pretty awesome (though minimalistic)!

I also used mono-develop and it is pretty good, actually. But I recommend it only for those who will be using Mono or Monogame.
I always feel like it is lacking a little on the debug/profiling side...
0

Share this post


Link to post
Share on other sites

I really want to like code::blocks, but every time I load up QtCreator everything just seems so much easier. (Though I've never been bothered to set up all my libs on it)

0

Share this post


Link to post
Share on other sites

I like Visual Studio on Windows, but I actually prefer not using an IDE on Linux.

 

I like VIM + CMAKE + make at console in a Linux environment, but admittedly using VIM is somewhat self-justifying as an exercise for me to learn VIM, which itself is a useful skill (its nice to know one good non-wysiwyg text editor because you're basically guaranteed to have access to it on any system you can imagine, even minimalist linux systems and often even embedded systems like routers, and/or when you SSH into a remote system). Once you configure CMAKE and generate a make file for your system, building from the shell is as simple as 'make build'. I like VIM as my non-wysiwyg editor, but some people like Emacs, its one of the great nerd holy wars.

 

If I wanted to be a bit easier on myself, I'd probably substitute SlickEdit in for VIM. It's got powerful shortcuts like VIM/Emacs, and is Linux/Mac/Windows cross-platform, but also offers a better wysiwyg/GUI experience than gVIM.

1

Share this post


Link to post
Share on other sites

I like Visual Studio on Windows, but I actually prefer not using an IDE on Linux.

 

I like VIM + CMAKE + make at console in a Linux environment, but admittedly using VIM is somewhat self-justifying as an exercise for me to learn VIM, which itself is a useful skill (its nice to know one good non-wysiwyg text editor because you're basically guaranteed to have access to it on any system you can imagine, even minimalist linux systems and often even embedded systems like routers, and/or when you SSH into a remote system). Once you configure CMAKE and generate a make file for your system, building from the shell is as simple as 'make build'. I like VIM as my non-wysiwyg editor, but some people like Emacs, its one of the great nerd holy wars.

 

If I wanted to be a bit easier on myself, I'd probably substitute SlickEdit in for VIM. It's got powerful shortcuts like VIM/Emacs, and is Linux/Mac/Windows cross-platform, but also offers a better wysiwyg/GUI experience than gVIM.

I've always wondered, how do you effectively debug a program on the command line? Do you really use GDB on the command line? I can't imagine doing that without an IDE to show me variable watches, stack, memory dump, and disassembly.

Edited by TheComet
2

Share this post


Link to post
Share on other sites

 

I like Visual Studio on Windows, but I actually prefer not using an IDE on Linux.

 

I like VIM + CMAKE + make at console in a Linux environment, but admittedly using VIM is somewhat self-justifying as an exercise for me to learn VIM, which itself is a useful skill (its nice to know one good non-wysiwyg text editor because you're basically guaranteed to have access to it on any system you can imagine, even minimalist linux systems and often even embedded systems like routers, and/or when you SSH into a remote system). Once you configure CMAKE and generate a make file for your system, building from the shell is as simple as 'make build'. I like VIM as my non-wysiwyg editor, but some people like Emacs, its one of the great nerd holy wars.

 

If I wanted to be a bit easier on myself, I'd probably substitute SlickEdit in for VIM. It's got powerful shortcuts like VIM/Emacs, and is Linux/Mac/Windows cross-platform, but also offers a better wysiwyg/GUI experience than gVIM.

I've always wondered, how do you effectively debug a program on the command line? Do you really use GDB on the command line? I can't imagine doing that without an IDE to show me variable watches, stack, memory dump, and disassembly.

 

 

I use code::blocks when I need to develop on linux and windows at the same time (and vim when I use only linux).

The only thing I find easier to do while debugging on code::blocks is adding break points (break file:line). Other than that I find using the console much more agile (bt, up, down, print, step, continue, finish) specially because the gdb's autocomplete works so well biggrin.png

 

On topic:

You can use VIM, a makefile and some plugins/macros (for instance, I macro F2 to python <file> and F3 to make). I find it pretty fast now, but it took me a lot of time to learn it. So it is your call, I would recommend it only when the programming language is no longer a problem to you.

Edited by KnolanCross
2

Share this post


Link to post
Share on other sites

I've always wondered, how do you effectively debug a program on the command line? Do you really use GDB on the command line? I can't imagine doing that without an IDE to show me variable watches, stack, memory dump, and disassembly.


This used to be my primary "IDE": using vi, grep, make, and gdb all in the shell to edit C files on an Ubuntu desktop. Using the debugger live was the last resort, after logging, coming up with unit tests, or simply grabbing a call stack and going back into the code. I rarely had to do it, so each time was about 10-15 minutes fumbling around with the commands before I got into a groove, but I did it.
2

Share this post


Link to post
Share on other sites
I thought QTCreator was a really nice IDE as well. I am thinking about using it to develop my GUI tools for my engine when it comes down to that point since the only tools I've developed were for Windows using c-based winapi's back in high school haha... I had a few gripes I have with QTCreator. I haven't figured out the licensing, or what kind of royalties I'd have to pay Nokia if it came down to me producing a commercial produce. From what I've seen from tutorials, there seems to be quite a bit of OpenGL wrappers involved with QT. I'm not sure if I could link to standard libraries that are already installed on my system that weren't built from QT.

The one thing that keeps me from it is how QTCreator doesn't allow me to add source files from outside that project's folder, which of course, Eclipse does as well. You can't even hide files you don't want to compile in Eclipse because it'll refresh whatever's in the directory. The reason I'd want to do that is because my engine's code base also contains a toolchain of pre-built libraries, and their respective includes of open-source libraries such as FreeImage, Box2D, etc for different operating systems. These pre-built libraries are needed for iOS, Mac, Android and Windows, but not Linux because they should be installed from a compatible repository, or built from source depending on the flavor of Linux being used, I think.

I may try QTCreator out again since I really like it's UI elements, and how its C++-like code connects to the designer portion of it. :)

I did try CodeBlocks, but I ran into crashes, and I couldn't save my workspace. I was pressed for time, and gave up on CodeBlocks. I'll go back to it, and give it another shot.

Now, KDevelop looks promising. I'm installing it, and I'll check it out. One thing I'd like to point out is that these projects will only be built for Debian for x86_64 CPUs for now. I don't plan on building any multi-platform GUI apps for Windows for this batch of projects, but it will come necessary later on. Still, KDE won't be on my arcade machine. It won't even have a desktop environment since I'll be cramped for processing power. Not sure if that'll be a problem as I'll be running a GLUT window from a command line program.

MonoDevelop also wouldn't be a bad idea. We use that at work with Unity, so I'm surprised I didn't think of that on my own lol. If it has native C/C++ support, then I could be sold there.
0

Share this post


Link to post
Share on other sites


Still, KDE won't be on my arcade machine. It won't even have a desktop environment since I'll be cramped for processing power. Not sure if that'll be a problem as I'll be running a GLUT window from a command line program.
KDevelop, like every other IDE, only requires its dependencies on your development machine. It does not force you to add any dependencies for deployment.


I haven't figured out the licensing, or what kind of royalties I'd have to pay Nokia if it came down to me producing a commercial produce.
The LGPL licensed Qt option sounds like what you'd want.
2

Share this post


Link to post
Share on other sites
Just an update: I started working with Code::Blocks again since it was already installed, and I have had experience with it back in my PSP Homebrew days. It's working wonders, and I'm pretty happy with the progress I've made tonight. Thanks again for all the suggestions. When I get into GUI tools, I'll either to with GTK+ with Code::Blocks, or I'll to with QT using QTCreator or even KDevelop. KDevelop's UI looks really nice like QTCreator's.
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0