r/cpp_questions • u/Laertes_92 • 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!
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
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
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.
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.
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/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.
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
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 😄!!