How do you go about applying C++?

Heya to whomever is reading this. This question has been circulating my mind for as long as I can remember. I understand that one can learn various concepts (dynamic memory, classes, sequential containers, etc.) from books but what I don't seem to be able to grasp is how am I supposed to start applying said concepts? I guess projects should be your go-to but I'm struggling to even begin realizing them. For example, yesterday I decided I'll try creating a demo analyzer (possible modifier, in the future) for GoldSrc engine-based games (e.g. Counter-Strike 1.6) but I don't know where to start. There are a lot of questions, which I cannot seem to answer: should I use classes (well, this is mostly clear to me, since I'd like to analyze multiple demos at once, so yes), how do I go about extracting the data (I need the file format structure (which should be at https://github.com/ValveSoftware/halflife, but I'm struggling with this aspect as well), when (if even) should I use dynamic memory, and many more. It's just so demotivating for some reason.

Has anyone been in the same rabbit hole as me? If so, maybe you have some advice on how I should approach the idea of realizing projects?
Last edited on
How do you go about applying C++?

Start out with less lofty goals is what I would do. You are trying to eat an entire cow whole in one bite with your demo analyzer IMO.

I know I wouldn't attempt such a feat without a lot of intermediate steps taken to cement my understanding of how to do something like that.

Most software is coded using a pre-written design document. A detailed list of what the software will do and the coding milestones to reach that progress is being made. The decisions for what parts of C/C++ to use are locked down in writing before one line of code is written.

Pixar movies are created using custom created software. Lots of times the programmers and animators find new ways to adapt and/or use the software during the creation of a feature.

But they don't rush off and experiment with that new/updated feature when the crunch is on to just complete the movie. The use the tools they had when the script was finalized, noting the feature for later experimentation.

That later experimentation is usually done by a Pixar short. Or when the next feature is in the planning stages and the director(s) are looking for something not done before.

A whole steer can be consumed one tiny bite at a time. You just have to plan ahead.
Has anyone been in the same rabbit hole as me?

Typically you slice the cabbage thin enough so every cut is a no-effort task, just using up time. By slicing you will see what amount of work you have ahead, alas, by slicing only it will not grow less. There is no help, at a certain point you have to stop slicing and go to dig through it.
On the other hand, if your slicing did not make out the show stoppers it could happen -- hard cheese -- all your effort was useless.

Decades ago I planned an "emulator" of the HP41 by simulating its CPU. Without any knowledge of Windows I started a 'feasibility study' with platform-neutral FORTRAN. Result: a 'firmware interpreter' for HP41 and Voyagers (HP-10C, -11C, well known HP-12C, -15C, and -16C). It works under on VM/ESA and still works today on the youngest z/VM, some weeks ago I installed it on version 7.1). And on Windows? Well, others had been faster than me. Hard cheese.
Topic archived. No new replies allowed.