Hey everyone! I'm currently a high school student and diving into C++ programming on my own. I've gained some basic skills like writing loops, using classes, and calling functions. However, I definitely feel like I have a long way to go and sometimes get frustrated about my inexperience. Next year, I'm planning to enroll in programming and computer science classes to accelerate my learning.
I'm eager to start creating video games but I'm unsure about how much C++ I need to know before jumping into tools like SFML or SDL. What are your thoughts on the right amount of knowledge or experience I should have? Also, how long do you think it takes before I can tackle real projects I'm proud of?
12 Answers
C++ is just a tool in your game development toolkit. What's more important is having a solid grasp of planning, design, and architecture. Start with simpler languages or engines to get your feet wet, and then evolve into C++ as your skills and understanding grow. Don't put too much pressure on yourself to master everything immediately!
Have you attempted making something like a Flappy Bird game? It's a great starter project that helps you grasp fundamentals while being fun to develop.
I highly recommend starting with Godot and GDScript for rapid iteration. It keeps things simple for beginners, and while GDScript won't carry over as well to other engines, it allows you to focus on making games quickly. Plus, it's a fantastic way to build your confidence!
What's your ultimate goal in game development? There are so many areas you could explore, whether it's tools, engine code, or straight game design. If you're just starting out, downloading something like Godot can be a gentle introduction.
Honestly, just get started! You'll learn as you go along. Don't be afraid of unstructured learning; sometimes it leads to the best discoveries.
If you're serious about making games, dive in! Even with little experience, you can create interesting projects. However, if you're aiming to develop complex systems from scratch, then a good grasp of C++ is crucial. It's a journey, so focus on understanding the basics before taking on massive challenges. I’ve been in this field for over 10 years, and there's always something new to learn!
You can probably start experimenting with SFML right now! Just focus on small projects at first. You might try making a simple text-based game like a trivia quiz or a basic 2D game where you can move an avatar around. Don't worry about starting big; even simple projects can be super rewarding and help you learn the ropes!
From my experience, just keep building projects. I learned a lot tackling memory management issues while developing a Minecraft clone. Each project brought new challenges that strengthened my understanding of C++. You’ll discover your weaknesses and grow from there!
Remember, if you’re stuck, don’t hesitate to Google your queries. There’s a wealth of knowledge out there. Just try to avoid the paid AI assistance since that might hinder your learning process.
Thanks for all the advice! Just to clarify, I'm passionate about creating games. I get the sense that the language is less critical than the understanding of programming principles, and I'm committed to learning the depth of C++. I also have a desire to create games that are accessible, even to users with older hardware. I'm striving for excellence, and your input means a lot!
It really hinges on what you want to create. If your goal is indie games, not all jobs require advanced C++ skills. However, for professional studios, a solid grasp of C++ and demonstrated experience is beneficial. Specializing in areas like graphics or UI could also help your resume!
The amount of C++ you need is really subjective. I've seen people create games with just the basics. It's more about your comfort in using the language effectively. What you learn from academic resources mainly sets you up to get started, but the real learning happens in practice. Don’t shy away from longer concepts like linear algebra either; it’s fundamental in game physics and rendering.

I’d also recommend trying to load an image and manipulate it with keyboard inputs. You could even start with audio manipulation for effective feedback.