I have someone who wants me to develop a game for them. I do not intend to continue developing the game after its first release (he wants me to develop it for commercial use). To make the project easy, I was thinking of using the Unity game engine. I am going to say right now, I am a kid heading into college, he wants to pay me, but I don't want to be paid, and this is for his own personal business endeavor, I am afraid if I hand off this project to a more established professional, even if I use source control, he will disregard it, throw it away, and the part I am most afraid of tell him I did a cruddy or lazy job (because I used Unity). What are your opinions on this situation, and the use of Unity in this way?
Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.
With the exception of people sunk in the real programmer syndrome, no one is going to disregard you for using Unity. Unity is a framework, like many others, that helps you make software. Saying that using 3rd frameworks and libraries is being lazy is like saying that driving(or using public transport) to work instead of walking is being lazy. While that might be true, you need to do it if you want to get there in time and stay long enough to actually do something before you need to get back. The time you save by not walking is used for being productive - which makes it a nice analogy for using frameworks and libraries.
As for doing a "cruddy" job - that's expectable. Like you said - you are "a kid heading into college" - no one expect you to do a top quality job. After you graduate, when you look back at that project, if you won't be able to think that this is a crappy project created by an idiot programmer I would say your college wasn't doing a very good job(assuming you are learning computer science or software engineering).
The only people that will hate you(not laugh - hate!) for doing a bad job are the ones tasked with maintaining it. But while you should try and be considerate toward the people who'll have to deal with your code in the future(high chances it'll be future you), this should not stop you from coding, because it's hard to improve without working on actual projects and making actual mistakes that'll come back to bite you and by doing so teach you the best lessons you can possibly learn. Your (non) employer might suffer from this if they ever want to continue the work on that game, but you shouldn't feel bad about that because you gave them that game for free.
Which leads us to the next topic - why are you giving them that game for free? Yes, you said they want to pay you and you are the one who want to work for free, and while there might be some drawbacks for getting paid(like being as obliged to the project's deadlines and quality), it still doesn't explain what you gain from working for free.
Now, I'm not saying you shouldn't make this game for free - I'm saying you shouldn't make this game for free for them. You are the one doing all the work - you don't need them to make that game. Even if you want to make that game for your portfolio, or for experience, or just for fun, that still doesn't explain why you should hand that project to someone else that'll make money out of it without you seeing a dime. Why shouldn't you keep the copyrights to that project, and be able to license and distribute it as you please?