How usefull is C++ for you cool guys who knows it?

0 favourites
  • Ive been planning, testing and working on the same project for about 2 years, and im counting on about another three years before its finnished. Ive made quite some progress with the engine, and ive really tried to keep it clean to avoid a (read; too many) rewrite(s). But im still pretty sure Ill rewrite it at some point(s), and because of all the time Im planning to spend Im wondering if its a good idea to spend half a year learning C++, and then remaking it with some custom plugins for this and that. I just want to get the best tools available before i dig to deep, because it will suck to realize after a few years that i wasted half of the time and could have done it in a much easier way.

    Im also thinking about just making test engines for now and waiting for construct 2 before i put it all together. is there ANY time approximation for when construct2 might be finnished? Are we talking one year or five years?

    If you have any other suggestions on how to approach this (things to read, tools to use etc.) feel free to post it. Just dont discourage me from making a game this big, Ive heard it (and said it myself) enough.

  • I know C++, The dude saved my life three times.

  • I don't know much of C++, but I did program in C long ago. C++ kind of scared me off back then, because it wasn't widely used, and it seemed unnecessary to me. The scene has changed a bit, though.

    In my opinion, any programming language, if you have a good reason to use it, is useful to learn. C++ can be used to create pretty much any software project, so it definitely should be considered useful. I'd also venture to say that once one learns C++, pretty much any other language should be easy to learn after that.

    On the other hand, there are some definite drawbacks to using C or C++, if you don't need it's unique abilities. While some prefer such things, I have moved away from statically-typed, compiled languages where you have to manage every aspect of your program's memory usage yourself. I don't need that.

    There are some solutions to make memory management easier, though. If you aren't careful about how you develop in C++, you can get some very hard to find bugs with bad pointers and such.

    It does have a huge amount of libraries that can be used. All of them aim to make certain tasks easier. Just have to be able to find the right ones for you, which can take time.

    Anyway, if you anticipate speed problems with your project, it's definitely a good solution to that problem.

  • I dont really like doing unnescessary stuff either.. but being able to make plugins would be sweet. But maybe learning python would be time better spent? The problem is- i dont really know what problems Ill encounter, i just assume Ill run in to situations where programming knowledge would come in handy.

  • Python is often named as a good first programming language to learn, and it's definitely useful as well. It's my favorite language yet, personally. It's also the one that led me to 'get' the usefulness of object-oriented programming, though it supports multiple programming paradigms as C++ does.

    I like dynamically-typed, interpreted languages with garbage collection, and Python fits the bill quite well. IMO, this allows you to focus more on solving the problem, and helps in learning and debugging.

    Possible downsides are that it's not as fast as a compiled language, and it's not well-suited to closed-source development.

    It is easier to port programs written in it across multiple platforms, though. For the most part, they just work.

    I picked it up after getting Construct a few months ago, and I feel quite proficient in it, having written several programs for my own use, and one for work in that time.

    I can see myself tackling C++ eventually, because of the ability to write plugins. Because Python and C++ can be intermingled in other projects, as well.

  • is there ANY time approximation for when construct2 might be finnished? Are we talking one year or five years?

    Realistically, probably closer to five years for maturity. In other words, no idea!

    I'd agree with others that if you want to just learn how to program, Python is a good place to start. The fundamentals of programming languages transfer well from one language to another so you should be able to switch easily after getting to grips with one. After that I'd recommend C# instead of C++. It's much easier and cleaner language. C++ has a huge amount of legacy and historical issues overhanging it - things like header inclusion and the linker (linker errors will drive you nuts) make it more difficult, and it's down to you to get things like memory management right, which is much more difficult than it sounds. C# also has a big library to help you do day to day programming tasks easily. These days you have to have pretty good reasons to choose C++ instead - we're using it in Construct for a number of reasons, like redistribution requirements, performance, portability, specific libraries, and our past experience with the language. Chances are those aren't relevant reasons for you.

    On the other hand, C++ will teach you more about how computers actually work, since you deal with the raw low-level bits and bytes and pointers. It also has some pretty unique features, like the way templates work (which is different to generics in other languages, with pros and cons), different kinds of smart pointers, more recent move semantics, and such.

  • I seem to have migrated through all the BASICs since C++ was just too frightening for my poor brain

    I started off on PureBASIC which is incredibly fast and compact, and powerful too. I did use IBASIC for a while too but I think that one disappeared... which is a shame, I think I still have the bare bones of an OpenGL based '2d-using-3d' engine around here somewhere!

    After that I started experimenting with PureBASIC again and then I drifted away from coding altogether...

    It does make me wonder though, PureBASIC became quite popular in the DarkBASIC Pro community for it's ability to perform so well and do low level stuff, and build DLLs - therefore people used it to code DLL-based plugins. Can it be used for Construct in the same way?

  • But you have to use C++ to make plugins right? Or can you use other languages for that?

  • You can design a plugin architecture in most languages I think. It might actually be easier in a language like C#, because C++ has lots of nasty binary compatibility issues to work around, in case someone builds your SDK in a different compiler, or even the same compiler just with different settings - in which case nearly all C++ classes become incompatible and you have to rely on C datatypes. It's a headache!

    Mind you, part of the reason I like C++ is the challenge of figuring out the hacks for these issues - not really a good reason for people who want to be productive though

  • This might be a really stupid idea, i don't know since i don't know how this stuff really works, but wouldnt a Python SDK be nice? I guess many people will learn python now because of its part in construct, wouldn't a python sdk result in much more people being able to contribute with plugins?

  • I love c++, and I'm partially biased because over the last 10 yrs ago before I learned it. It was always the answer when I considered learning a language and asked or looked up "what's the main language people use to make games nowadays?"

    That may be changing, I haven't checked up lately, but also, id have to say, a really great way to learn is making plugins for construct, don't do what I did, and start trying to make a super important plugin like spritefont before you're fairly comfortable, but its very rewarding and motivating to apply what you learn in a c++ book with boring examples, and use it to move sprites around, and give yourself math expressions for your own game.

    If you're serious about making a largescale game in construct its more about complexity and how much goes on per tick, if you have so much complex stuff going on that ot hurts your head to look at, and you're doing similar things over and over in different places, then its worth making a plugin if the function object won't work for readability or because its something that needs to happen for too many different objects.

    Also, if you start doing loops with actions that going into the 10s of thousands,constructs runtimeinterpretter wil be a bottleneck where a plugin would be able to do do the work of thousands of event calls with a single action.

    As far as python sdk, you don't really need one. I meant to post an example at some point but you can make python functions and classes that you could copy paste as text on the forums that you could plugin different construct objects into like a behavior in a way. Besides, anyone who could make a plugin in python could do so in c++. They're so similar its nuts

  • If you have any interest in developing games professionally, especially on consoles, it's basically mandatory to learn C++.

    If you want to make independent games for the PC (or the 360!), or develop a skillset to be a professional non-games programmer, or whatever, learn C#. You can always learn the nitty-gritty of C++ later if you feel the need, and by the time that rolls around, who knows, the whole games industry could have changed.

    Alternately, if you want to make some decent money, go learn Java and make games for Android phones. That's a huge emerging market right now.

  • For now i'm just going to work on the game i'm making now. Right now i'm only using construct. It's not really professional, but i plan to sell parts of it. And i want to learn anything that makes the whole process of making a large game easier.

  • XNA Games Studio uses C# and you can create Xbox360 and Pc games with C#.And it's much easier than C++.The one thing i don't like about C++ is al the linker stuff that you have to code.I love C# aka Lite C.But when i use Construct im in heaven, Cause you can create almost any 2d game without going through miles and miles of code.Now if only the 3D apps could be half as easy as Construct that would be wonderful.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Truthfully, I think you're asking the wrong question. C++ is a tool, and like any tool, it has strengths and weaknesses. Construct, too, is a tool with strengths and weaknesses. The most important question is, are you using the right tool for the job?

    You've said nothing about what your game is, what its goals are, and what you're ultimately trying to make; so there's no good answer to receive.

    If you want to make games, you should know how to program. At this point, for you, that means start learning something. Truthfully, it doesn't matter what language you use so long as you can understand it and use it to its potential. Likewise, the language must support whatever it is you are trying to accomplish.

    C++ has a ton of support, examples, and projects you can use to achieve your goals. But then, so does Python. So does C#/XNA. And the list goes on. I encourage you to use what works best for you, and what will make your game more of a possibility. Think first about your target, your goal, and your needs. No matter which route you go, it will contribute to making your projects more of a reality.

    At some point you will realize it's less about the language, and more about the APIs you use (or make for yourself). Since it's asinine to sit down and write your own 3d API, you'll be looking at Ogre3D, Irrlicht, CrystalSpace... etc. ClanLib... SDL... Allegro... PyGame, PodSixNet... etc. See where I'm going with this?

    People hail C++ as the best "game making" language, it's not that it makes games "better," it just gives an experienced programmer a lot more control. Control is important. However, if it's "too much" language for you, you can easily get stuck and discouraged because making progress can be harder than making progress in, say, Python or BASIC. And it's simply been around so long, it's more or less the standard for the way things are done. It's not better than Python, it's different. Lua isn't worse than Python, it's just different.

    Whatever you decide on, stop talking about it, stop considering it, and start WRITING it.

    "Taking 6 months to learn C++" is a silly thing to say, and it only emphasizes the lack of maturity you have about this topic. I've been coding for 15 years or more, and I still consider myself a learner.

    • If I was going to write the next best 3d game with massive multiplayer support, I'd use C++.
    • If I was going to write a small 2d game that's fun and more of a side project, I'd use Construct. Or PyGame.

    And if you truthfully want to know which is more important to your development, it is hands down the second option there, because the ability to see a project through to completion far outweighs any delusion of granduer you may have about the first. And, it will get you to the first option MUCH quicker if that's where you want to go with your life (tip: option 1 requires a group of developers, hence why option 2 is m ore important for the soloist).

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)