A professional programmer recently joined my amateur game project. Didn't work out. Lessons learned.

This guys code is worst than yours. Bad professionnal programmer, will try to overcomplicate code. They want to show that they can do better than everyone else. And they usually do this by makining things complicate, so they are the only one capable of understanding it. Making it hard to read and to debug. Bad programmer will also try to use pattern/coding langage specific things whenever he can, even if it's not necessary. And like you tell it, bad programmer will try to make things "generic", which just add complexity most of the time, in case a need for it will happen, that in reality never happen Tell yourself that you will always have time to make something generic WHEN you will need it to. If a refactor increase the number of code line, it's a bad refactor. A good refactor usually reduce the number of line! Refactoring simplify things. And a bad programmer will have "principle", instead of addapting his work to the current situation. My refactor usually reduce the number of code line by half, for the same functionnalities and for less bugs! One more advice on refactorying. Don't refactor if you don't truly understand the code you are replacing ! Most of the time programmer don't see the complexity of a problem. Make the assumption that the current code is too complex. They try to simplify it -> they discover something the didn't see -> add more code to handle it -> new problem they didn't anticipate -> etc... And the final version is as complex as the original version, except you lost precious time :) (and from my experience you still try to convice yourself that the refactoring was the right choice...)

Run aways and revert back your code.

/r/gamedev Thread