Choosing a C++ IDE

Looks very interesting. Do you have an idiots guide?

I am not a great fan of Visual Studio. It feels like it has too much of an overhead. I’m used to command line linkers etc, and writing code in say notepad. Is there an option for that with C++?

Don’t even try that… without tracking , debugging , compile , set , highlight , code management , IDE without intellisense support is impossible to write games in c++. You will need an editor to write your code except if you’re a real masochist who enjoys remembering which file does what , and remember all your functions for all possible classes in the whole engine. Not to mention the possibilities of typos which are the absolutely impossible to track without an advanced IDE Don’t do that.

If you’re on WIndows download a c++ IDE (Visual Studio , Code Blocks or whatever you like) .

For Visual studio i use these steps to create a new Urho3d project.

  1. Create empty win32 project.
  2. Include Urho3d.h and other files you want to use in you project. (Sound , DebugRenderer ,AnimatedModel etc)
  3. Write code

Writing code in notepad is possible. I also would not recommend it, but if you wanted to go that route I would suggest mingw as your compiler and using the Makefile Target for CMake, then you just use make (mingw32-make or something like that possibly) to build it. Again, I don’t recommend that, but using VSCode or Notepad++ as an editor together with that would be a more tolerable experience than just notepad. Auto complete (intellisense is Microsoft’s branding for their auto complete features in VS) is very nice, but even simplistic implementations like in Notepad++ can be tolerable. Debugging without an IDE, however, is a much more painful experience, so I highly recommend you stick with a proper IDE for that purpose.

If you think VS is too large, try CodeBlocks, it feels more minimal to me. Personally, I still recommend QT Creator over anything else, though I don’t know if you can get it on Windows.

A post was merged into an existing topic: Idiots guide to Hello World

I don’t get the fascination with, or adulation of, Visual Studio. My C++ skills may be rusty, but I used EMACS and Makefiles just fine 25 years ago. Yes EMACS is a fair amount more than just a text editor, but 25 year old EMACS obviously doesn’t have as many bells and whistles as VS today.

I don’t think people should be “squirrelly and subjective” about their choice of editor or IDE either. Use whatever works, until you have experience and have well founded reasons for why you say something doesn’t work. “Discomfort” isn’t a valid excuse for avoiding something. Everything in computer programming is discomfort at first.

I’m not a big fan of Stasiware[1][2][3][4][5][6]etc, to put it lightly. Anyone promoting its use facilitates eroding the cornerstone of democracy and human rights in general (both his/her own and those of others), willingly or not. No amount of bells and whistles can compensate for this. Just because you’re conforming to the herd does not make you any less complicit.

Well, Surveillance Capitalism licensing is a somewhat orthogonal set of concerns, to the efficacy of a programming IDE. I don’t know how much hiding is worthwhile, because if you hide too hard, you actually stick out compared to your peers. Sometimes it’s better to hide in plain sight, rather than making yourself more noticeable about what you resist. If I really really cared about this stuff, I’d ditch my GMail account. Instead, I just don’t basically trust it and don’t send any emails that would really require security. If I end up feeling a need for more security in my life at some point, like game development stuff I wanted to keep secret, then maybe I’d reconsider. But as a lone wolf indie developer, I don’t have to communicate about my game stuff to anyone through email anyways, so there’s not much of a problem for me in the real world right now.

Anyways, yes, there can be other reasons to object to VS. I don’t know what kind of surveillance they’re doing lately, but I’ve consistently found myself setting various things in various softwares to “opt out, no, no thanks, I don’t want to participate” etc.

Surveillance capitalism is the lucrative slope that ends in irreversible Orwellian totalitarianism. Just as goosestepping is not the problem of fascism, but rather a part of the normalization process that leads to disaster. IDEs - and game engines like Unity - that output spyware by default belong in the trash bin, period. Outputting spyware should be considered as nullifying an IDEs efficacy. If dystopian actualities prevent you from making the right choice, you are giving in. It would be foolish to think our choice of software is irrelevant because it is “only virtual”. Devices are in your house and on your body, screens are modernized paper. Boycott remains to be one of the more powerful forms of protest. It’s easy until it’s too late, a small effort before it becomes impossible.

And no I do not have a Google/Facebook account, there are alternatives to everything. Like Urho3D.

I refuse Facebook, having recognized the way it undermines civil institutions, long before people were talking about surveillance capitalism. But I have a GMail account. I’m still broke, so paying for things like that still matters to me. My compromise is to take precautions. If they’re data mining me to try to show me ads, I’ve gotta be like the worst target ever! I’m pretty anti-consumerism, and I use ad blockers.

I do notice that YouTube has managed to successfully identify some genres of videos that I’m more likely to watch though. I won’t compulsively sit around watching videos though, and I’m hard to distract from the research tasks I’ve set for myself.

I think my use of GMail is far more problematic than my use of VS. My GMail has much more to say about me as a person, than VS ever will. I haven’t even studied what VS might be collecting. Ok, I’ll crack a webpage on that, long as I’m typing this. “Telemetry”. That’s about as specific as I’ve been able to get.

Please keep on topic.

4 Likes

Good to see you @weitjong. Topic split.

@bvanevery It is egocentric not to consider the effects your choices have on other people. It is shortsighted to think data collected by companies is not passed on. Part of the problem with IDEs that spit out spyware is that these programs are not marked as such, nor do developers carry badges that warn others about the fact they are distributing listening devices. Using VS is - at the very least - morally reprehensible and should be considered irresponsible behaviour by any informed software developer.

For serious/huge things, I prefer Visual Studio due to great toolbox of code refactoring and debugging tools. I really don’t know any free IDE than have intellisense comparable to VS.
It’s also nice to have DX11 Graphics Debugger and profiler integrated in IDE.
When I need these tools, I don’t really have any option except VS.

When I don’t need all these complicated things, I prefer VS Code.
It’s open-source, fast (faster and more stable than VS) and I really like the interface.

1 Like

@Eugene Could you describe the exact features QtCreator lacks in comparison to VS (Code)?
…apart from producing spyware.

I didn’t use QtCreator for about 8 years, cannot exactly tell what’s the difference.
It was lackluster back then. I can try it some day tho… I suppose it may have changed after these years.

…apart from producing spyware.

Elaborate how text editor can produce spyware.

By being software and not pen and paper.

So? The product of IDE is plain text (code).
Please point out spyware in the code that I write using VS.

It’s called code injection and does not modify source files. Do you not hit that convenient compile button?

I do. As long as compiled program stays on my machine (that already have shitload of unavoidable proprietary software), why should I care?

I don’t use IDE to release applications, I use it to develop.

I don’t even mention that it is compiler toolchain that injects code, not IDE. You don’t like one toolchain, you pick another.

Think about that. My earlier posts in this topic also contain multiple answers to this question.

Unavoidable proprietary software is an unknown concept to me. Instead I consider proprietary software to be unacceptable… like unlabeled foodstuffs.

TL;DR: DirectX is critical and unavoidable to me. This affects IDE choice. DirectX dominates the 3D gaming desktop.

I want to make money selling 3D games in either the RPG or 4X TBS genres, possibly combining aspects of both.

Consoles are not a good fit to 4X, as the genre has tended to need a lot of keyboard shortcuts. I suspect it is probably also much easier to play with a mouse or touchpad. TBH I preferred using a full sized keyboard with a numeric keypad to move units around, but I’ve gotten used to doing without that. Although modern consoles do actually support keyboards and mice, it’s not culturally what most people do, and probably not most people’s living room setup either.

Consoles are also not indie friendly. There have been some attempts at indie consoles, say the Ouya or Steam Machines, but they have failed.

Although some people on mobile phones want 4X games, I find the idea of giving that to them, kind of a joke. I only believe in gaming on reasonably sized screens. A touch tablet, maybe, but definitely not a phone.

Mobile gamers also have limited attention spans. 4X games are long, and not suited to being broken up into the short attention span / multitasking / grab a few minutes here and there play attitudes of the mobile gaming demographic. These don’t look like desirable customers, at all. There’s a reason these platforms don’t see much in the way of “deeply involved” games. They don’t have the UI to support it, nor the customer attitudes to desire it, in enough volume to matter to a developer. If someone wants to prove me wrong on these pronouncements, they’re welcome to try their hand in the free market, but I’m not going to. Doesn’t smell like any kind of money pot to me, it smells like fool’s errand.

Linux isn’t a viable consumer gaming platform. I did Linux recently for 3 years, waiting for Steam Machines to come save us all. They didn’t, they failed. I gave up. Linux just has too many distro and graphics stack politics to deal with, and no companies actually trying to make money in the consumer software space. From a consumer usability standpoint it’s a joke. People do buy some games on Linux, but from a make money numbers standpoint, the math simply isn’t there. From an engineering and cultural reality standpoint, it never will be. You spend enough time in the trenches with enough open source projects, and you’ll realize why. These people simply can’t ship consumer software, they’re clueless. There’s all kinds of dull boring things that need to happen for feeble ordinary people to be able to use software, and most of the FLOSS crowd is hardcore expert tweak this tweak that write programs for other programmers. Only money changes most people’s discipline in that regard, and like I said, no big corp is pushing to make money with Linux in consumer software.

In the real world, 4X TBS is a desktop phenomenon. That leaves Windows or MacOS as the candidates. Windows is clearly the superior gaming platform to MacOS, in terms of customers. I can’t even remember if Apple has gotten in any way serious about game development. For so many years, they didn’t care about game developers at all. Didn’t fit with their “cool upscale lifestyle” music marketing or whatever. Both platforms have proprietary 3D graphics APIs.

OpenGL is toast. The device driver deployment on Windows has historically been bad. When you’re selling products for money, this matters. You can’t just tell customers to tweak and fiddle and hope for their best. Their 3D drivers have to work, and in the real world on Windows, those have been DirectX drivers. Apple used to do OpenGL, but in recent years they’ve been actively killing it in favor of Metal.

OpenGL is also technically inferior to DirectX. It’s a crappy API with all the “get a pointer” dancing around. It didn’t do multitasking, although I haven’t kept up on whether that’s changed in more recent releases. DX11 had multitasking. Nobody would care if OpenGL has finally caught up now, as OpenGL has no future in gaming. That’s the whole story of OpenGL, too many years of not improving in industry fast enough.

Vulkan isn’t viable yet. My recent research suggests that Microsoft has been more open source cooperative about Vulkan than I would have expected. At least to the extent that their cooperation allows HLSL to become The One True Shading Language To Rule Them All. Since my Commodity Graphics Group back at DEC was burned by Microsoft back in the day, my trust in them as a corporate entity is low. The playbook of getting involved in some area, so that they can yank the rug out from under it later, is an old one. I’ll believe Vulkan is a viable commercial platform on Windows, when a lot of AAA game studios are shipping on Windows and it’s clearly not a problem.

I haven’t studied Apple’s politics about Vulkan, but I expect them to do everything possible to thwart it, in favor of Metal.

In the real world, DirectX falls out of the bottom of my commercial gaming equation, as a necessary and unavoidable piece of the toolchain. People have all kinds of options for writing a game. But for what I want to do, it ends up being Windows and DirectX.

Visual Studio has some bells and whistles for DirectX debugging, that I’m not fully up on yet. It remains to be seen what I’ll need in this regard. What the production realities are.

Me making money as an indie game developer, when I am currently broke, is far more crucial than any spyware code injection issues. I don’t have the luxury of avoiding the exit door to poverty, if I want to do it on my own terms as a game designer. And no, I’m not going to go write some other kind of game, just because someone is worried about an IDE injecting spyware.

The issue of stopping code injections in a release build, is a problem I can take up, when I have a game that’s near to shipping. A lot could change before then. Jai could finally come out. I could invent my own language. That’s a more serious possibility now, as I find it very difficult to sign off on Lua 5.4 as a 3D graphics programming model. And in any event I’m not afraid of builds and build systems, as that’s the last thing I made money on. I’m an old school ASM coder, I think I can handle some linkage issues if I want to handle them. I just know that “spyware issues” are not mission critical to me and will not help me with getting out of poverty. I live out of a car. I don’t have time for such concerns.

I check my “opt out, no, no, no thank you, oh hell no” buttons early and often, when I install stuff. That’s what I’m willing to do for now, and it’s something other people can do. The biggest impact from me choosing this way, is tech companies aren’t going to get telemetry about genuine bugs in their products. I find that regrettable, but since public trust about this sort of thing is pretty much broken, I’m calling that collateral damage.

I’ve never gone up a full security learning curve about Windows, ever. I don’t even install any kind of anti-virus software. I let Windows Defender do stuff, and I’ve been doing that since Windows Vista. No harm has come of it. My level of sophistication, has been running Malwarebytes manually every once in awhile, when I get suspicious.

My philosophical attitude is that your security and privacy is to some extent an illusion. Things are gonna snoop you, because even most techies don’t have the time to whack all the security moles that are coming up all the time. A person who wants to ruin computers, or infiltrate computers, can do so. Nevermind a corporation or a government. If you want to fight those battles against “big entities”, you can try. But you should consider whether this is the battle of your life, that really must be won. I know that my battle is to produce Art, in the medium of computer games. That battle is plenty hard enough, without adding extra ideological burdens on top of it.

There’s also a question of, when you get to the point of being willing to take on additional concerns to make a better world, which concerns of the many possible Social Justice concerns, are you going to take on? 'Cuz a solo developer certainly doesn’t have time for all of them. How about minority and gender representation in games? How about accessibility? There’s a blind guy who posts in r/4Xgaming lately. I could try to solve his problems, at some considerable technical cost to me as a developer. Maybe I think that’s more important than jousting at spyware? Might depend on which problem turns out to be technically easier or harder. There’s also the question of which one is more interesting to work on. I have ideas about the blind stuff.