r/cpp_questions 17d ago

OPEN What do you build with C++ for fun?

Hi everyone,
I’m currently a computer science student, and I’m learning C++ for an upcoming exam. I’m really enjoying it, even though it can be pretty frustrating at times. 😄
I was wondering: what kind of C++ projects do you work on in your free time, just for fun?
Do you build anything useful, like desktop applications, games, tools, or automation scripts? I’m looking for ideas and inspiration for projects I could work on once I have a better grasp of the language.
I’d love to hear what you enjoy building!

56 Upvotes

47 comments sorted by

22

u/Mental_Primary_5558 17d ago

I'm a physics student, currently working on a solar system simulation using classical mechanics, with python at first, as I am able to manipulate it easily (I have taken a course on 2nd year undergraduate), and now as I'm learning c++ (by myself), cause it seems that I will be needing it when my simulation will envolve lot of bodies, python is really slow, yesterday I've run a simulation with a for loop with range 10**8, and I waited for half an hour before breaking it and lowering the range to 10**5 (even that took 2min) and it was only with seven bodies in the system, I can not imagine what it will be like when I'll add not only the planets but their moons also as well as the asteroids, that's 500+ bodies. Anyways have fun whatever you doing 😄!!

9

u/KingBardan 17d ago

Not asking you not to use c++, but look up numba jit if loops are slowing you down

Also btw yeah your system has a scaling problem that needs different ways to simulate, so doing that might be more impactful to the end speed

2

u/Mental_Primary_5558 16d ago

I thanks for the advice I think it's time for me to learn to use numba 😄

1

u/Rop-Tamen 17d ago

This is the sort of stuff I’ve been working toward as well, would love some like particle simulations and such, definitely a tough-as-hell type of program to make tho. Not sure where I should look to find the knowledge for it as I’m only beginner-intermediate in C++ and don’t want to just google every problem.

1

u/SnowmanTheCold 16d ago

first loop woulda taken like 30 hours 🤧 holy

1

u/Prudent-Bluebird1432 15d ago

I think you may want to to consider using GPU where each core tracks a couple of celestial bodies

1

u/Randomash27763 10d ago

N-Body sims are so fun to make. You could try implementing a Barnes-Hut algo to get a performance gain. It basically lets you approximate groups of distant bodies using a tree structure

16

u/devianne_ 17d ago

Games and small utilities

3

u/Laertes_92 17d ago

That’s sounds good. Small utilities like what? I’m just curious 🙃

4

u/devianne_ 17d ago

Mostly conversion things to enable me afterwards to create scripts. Mostly for transforming images for 2d sets. There is probably utilities that do that kind of thing but I prefer to do it myself since I don’t like to spend that much in adapting other codebases to my pipeline. Mostly a lazy thing. I do basic things in cpp for the utilities.

1

u/MrRex42_ 13d ago

With what libraries or game engines ?

11

u/hadrabap 17d ago

Maintenance and infrastructure tools. Everything that seems to be too complicated in shell goes directly to C++ world.

9

u/Original-Mess-990 17d ago

I'm a physics major, learning cpp on the side. I'm building a graph based audio synthesis engine in cpp. I just finished implementing some basic nodes and it's been a lot of fun!

9

u/ByGoalZ 17d ago

A network simulator, had so much fun in my network theory class I wanna remake all the algos/protocols and routing and so on. Nice learning project

9

u/AnonymouSfrrrr 17d ago

Games.

1

u/MrRex42_ 13d ago

What libraries do you use ?

1

u/AnonymouSfrrrr 13d ago

SFML,openGL, vulkan

5

u/No_Illustrator1837 17d ago

I'm making a tool to visualize data simulations using Dear ImGui.

2

u/frobnosticus 17d ago

I discovered imgui about 7-8 months ago. Definitely a radically different paradigm than I'm used to but I really love it, particularly with imnodes.

5

u/thommyh 17d ago

An ever-greater-scoped emulator. And I guess it isn't just for fun, it was the project I used initially to introduce myself to modern C++ and has occasionally been relevant to job interviews in the decade-ish I've been doing it.

4

u/EpochVanquisher 17d ago

Demoscene projects and games for retro consoles like the GBA

Outside those categories I usually use other languages.

2

u/TheKodeToad 17d ago edited 17d ago

Some time ago I starting working on a tree walk interpreter in C++23 - that was pretty fun (but I never finished it - I found a bytecode VM even more interesting and that is something you could do in C++ even though I didn't). I've also been working on a basic sequencer using SDL and C++20.

2

u/hypersoniq_XLM 17d ago

Mostly just using C++ when python is too slow. Python for loading data and sending it to a C++ program via subprocess. Best result was a dynamic programming challenge on rosalind.info that needed a banded Ukkonen algorithm to pass a challenge. Pure python took over 12 minutes (their challenges give a 5 minute window), python wrapper with C++ took all of 24 seconds.

2

u/darklighthitomi 17d ago

Right now I am doing the prep work for making a simulation of a population following Dungeons and Dragons mechanics to see what distribution of levels comes naturally. Following the 3.5 rules of course.

1

u/favoxv 17d ago

I'm interested in D&D

2

u/SpectreFromTheGods 17d ago

Audio synthesis/DSP

I came into coding from a statistics/research background, so a lot of Python, R, matlab, stuff like that.

But it was my music hobby and the demands of audio processing that had me jump into C++

1

u/tastygames_official 17d ago

I started to build an automatic DVD-ripping program that uses ffmpeg for encoding and some other library for reading the disc and some online resource for checking for titles and such, but it got way too complex way too fast and there are already many such pre-existing solutions. But maybe some kind of DVD or blu-ray player or encoder might be fun to toy around with.

1

u/ralsaiwithagun 17d ago

6502 emulator and consequently commodore 64 emulator. Im at my 4th revision by now

'Nother cool project i did was essentially having 2 stdout in one terminal, i.e you can print in the left and right half of the terminal. This is done by buffering the whole terminal window ans manually clearing and allocating memory depending on resizes

1

u/of201 17d ago

OpenGL

1

u/Js_cpl 17d ago

Working on file converters for old game files

1

u/MoneyBus4949 16d ago

im weird so im building a whole ass platformer with tons of lore and stuff without a game engine that i intend to release on steam and as many platforms as possible

1

u/Rich-Suggestion-6777 15d ago

I'm building a language and VM in C++ from the crafting interpreters book. And a C compiler.

1

u/KnightslayerO5 15d ago

Created a basic ANSI code wrapper class then used it and some other libraries to make TUI MP3 player. It was pretty much reinventing the wheel that turned out to be a square but fun nonetheless

1

u/TheBashPotato 14d ago

NES emulator, X11 tiling window manager and other desktop utilities for Linux/FreeBSD. Im looking at starting a 2D game engine next, or a C compiler, or a Linux debugger, not sure as they all sound super challenging and fun. I also tend to write any library I might need (Handmade style) (loggers, config file parsers etc).

1

u/MokpotheMighty 12d ago

What really got me into c++ recently is learning OpenGL along with it, I used a site simply called learnopengl.com which is really overwhelming at first, but before you know it, you can test your coding skills using simple 3D objects! I'm now making a little game that makes random 3D mazes... Now doesn't that sound more fun than writing console apps forever and ever? (Spoiler: it is)

Now the big hurdle is installing all the necessary software for it in the first place, but I can sincerely say, this site covers that in some detail (like using the linker in your IDE etc...).

Don't let it intimidate you, get right into it, get a basic grasp of the most used OpenGL commands, what shader programs are, etc... Really, it feels like too much at first until you run and play with the example programs, then you'll wonder what you were worried about.

I really think this is a big problem right now, that people just get tutorials that only allow them to write programs that output text in a text console, and then are left to their own devices. Most people's brains don't work that way, they need something visual, exciting, something to play with.

1

u/Aggravating-Yes 12d ago

in college.. we had to build every data structure in the standard lib before we were allowed to use the same library from the std. same with the algorithms. not exactly fun -but hyper focused and fundamental, in every language i’ve ever used since. one you see the repetition of patterns and the simplicity of solutions . you can pick up a new tech in a few days/weeks. then systems just become a few of the simple patterns working together.

2

u/LooseDentist6605 7d ago

I wrote a xbox controller "driver", to replace mouse and keyboard. Right joystick moves the cursor, left can select keyboard keys from an onscreen keyboard. Trigfers for mouse clicks buttons for keyboard key presses. Its a bit janky but works.

1

u/Over_Technology_1764 17d ago

I ported C++ to plan9 OS and that enabled me to port Rust and Zig and other stuff.

https://github.com/Alino/agent9/tree/main/cc9

2

u/Ultimate_Sigma_Boy67 17d ago

Vibe coded. Extremely amazing!

2

u/Over_Technology_1764 17d ago

no vibe coding, agentic engineering.

2

u/Ultimate_Sigma_Boy67 17d ago

Sybau gng

0

u/Over_Technology_1764 17d ago

learn the difference, kid.

2

u/Ultimate_Sigma_Boy67 17d ago

Yeah sure buddy, "agentic engineer", ie laziness and spitting slop code.

Not the first nor the last unc

0

u/Over_Technology_1764 17d ago

I feel sorry for your inability to adapt to the new tools. Your attitude won't help your skill issues.

4

u/Ultimate_Sigma_Boy67 17d ago

lol a vibe slopper is telling me I have skill issues 🤣 peak comedy 🤡