Open Source Games & Good programming practices?

Started by
3 comments, last by mr_tawan 5 years, 7 months ago

Hello everyone,

I have been programming games for about 3 years now mostly in Unity/C# (alot of my knowledge comes from youtube tuts) and now i feel kinda stuck and don't really know what i should learn/improve. My goal is it to get a job as a Gameplay programmer and i feel like a big problem is the code structure. So i was wondering whats a good way to improve that ( where can i learn good practices and code structure). Are there any good open source projects that i can look at and learn from? Since it doesn't really help if i just look up random open source projects since i won't really know if they are good examples.

Also maybe someone has some good advice because i want to make games and want to make games with other people but every hobby project i join ends up abandoned.

 

Thanks for any answers.

 

 

Advertisement

Have you read Game Programming Patterns?  It's freely available online, or you can purchase eBooks or print copies to support the author.  Examples are in C++, but the concepts will be applicable to (almost) any programming language.

There are also some free computer science courses online (like this one from Stanford - if you search you'll find others) that might help fill in some of the concepts you may not be learning if you're predominantly self-taught with YouTube tutorials.  A good exposure to topics like data structures, algorithms, etc. will likely help you to better reason about and structure your programs.

 

Over a long term, I recommend doing most or all of the things outlined in the post "Become a Good Programmer in Six Really Hard Steps".

 

Learning from source code can be tricky.  Firstly, while I'm sure they're out there, I don't personally know any examples in C# for you, so you might need to be comfortable with at least reading and reasoning through code in other languages.  I'm sure someone will know some good C# examples though.

More importantly, source code (assuming you're able to figure it out) just shows you what someone has done, but not necessarily why they're done it.  A certain method may have been sensible for that project because they had certain performance requirements, or had to work around a platform bug, or what-have-you, but may not be a sensible approach in a project that doesn't have those issues.  An approach may have been good at the time but isn't considered good practice anymore.  An approach may be outright bad practice and made it into the final product due to a rushed deadline, or just because the developer didn't know better at the time.

Take what you see in open source code with a grain of salt.

 

You could possibly try a look at Fabien Sanglard's website, where he sometimes looks at open sourced game code like DooM, Quake, Duke Nukem, etc.  Most of the code will be C or C++ rather than C#, but having a more experienced developer's opinions on it rather than just poking around the code yourself can be valuable.

 

Finding reliable hobby projects can be tricky.  My suggested approach is to try to do it yourself instead.  Tackle small projects where you can do a lot of the work by yourself, and only recruit for the absolute minimum help that will let you get the project done.  Maybe make use of some free art assets for practice, and then look at getting an artist to help replace them if you want to once the game is more complete.  Try joining some game jams, taking part in the GameDev Challenges, have a go at One Game A Month, etc.

 

Hope some of that helps! :)

- Jason Astle-Adams

Thanks a lot for this lengthy answer! I will be looking at all those resources.

One thing  I can suggest is, find a mentor. This is quite difficult to do espcially if you're working solo or living outside of the corporate environment. Getting into a team as a junior developer should find you a few mentors though.

I think you need someone that can review your code and provide feedback from the review, so you can learn from those feedbacks. I believe that there are consultants out there that provide code quality check and feedback as a service, but it can be pretty pricey and I don't know any in the game industry.

Maybe someone here wants to start a business from code reviews :). How does 'mentor-as-a-service' sounds, everyone?

http://9tawan.net/en/

This topic is closed to new replies.

Advertisement