Need Advice About Programming

Hi guys. I am not sure if I open this topic in the right place, if it is not sorry for that.

I am Unity developer and I have been programming for 2 years in Unity and also I can make 3D models in Maya and texture them in Substance. When it comes to 3D(including UV map, texturing etc), I can learn new topics easily. I can also code, when I start a new project it seems good at the begining but it always end up with a big mess and I cannot keep developing project. My brain simply stop working. I can easily say that I am at least intermediate C# user. I know OOP concepts, events, delegates, polymorphism, abstract classes, interfaces and their usage. However, my projects always end up with a messy code. I am not sure if it is about Unity workflow or it is just my bad. For example, there is a concept in Unity called as Scriptable Object. I decided to use it in my project but then I encounter with many problems and could not find a good usage about that. In Unity’s official video, they explain this concept with a very bad code example. Guys, I started think that I am not cut for programming and don’t know what to do. Now I am thinking to go with UE4 because as I see even non-programmers(mostly 3D artists) can make some pretty good job with Blueprints. I can even make hybrid BP-C++ projects with that. Maybe BP is for me, I don’t know. And I am not sure if BP is enough to make some big projects(For example RPG game - not MMORPG). Sorry for posting this kind of thing in here but I am tired of thinking if coding is for me or not. I just want to ask help you guys to figure out what to do.

Sorry for bad english.

Hey aquelias! It sounds like you are suffering from project fatigue. This happens alot in the middle of projects where it starts to feel very large and is hard to focus without just looking at smaller sections. When it comes to full length software or applications that I have developed over my career it always helps to break things into pieces and avoid reasoning about the whole thing at once.

The good news I don’t think this means you aren’t cut out for code or a bad coder. Exactly the opposite you have proven that you can build something continuously until it becomes large enough that it is difficult to reason about. I would think the best advice I could give you here would be. Don’t give up and find a proper organization system that helps you program more efficiently. Setup small goals and features for each day / week worth of work and make sure to accomplish those. Then things feel messy, disorganized then spend an entire day re-organizing / cleaning up. The “refactor” phase of development is probably one of the most important for improving your skills and also one of the most commonly skipped.

I think that even moving to blueprints without addressing the folder / project/ organization / workflow you will still run into the same issues once a project has become midsize. Maybe you could try to break your stuff into more logical chunks and store them that way OR build smaller projects that you can finish and then ask people for advice on how you could have orginized everything better or submit smaller sections of your code for code reviews.

Don’t give up… being able to recognize weakness is a great opportunity to improve them. Good luck!

I was not cut for programming when I started coding at the age of 9. As a typical very hyperactive kid , I lacked the ability not only to understand and write code but even more important, to physical sit down on a chair. I was a kid being… welll… a kid. Took me a year to figure out what a loop really is, I was mainly copying other’s people code and making small stupid utility applications which were nothing more than code examples. Yet I was the coolest kid in the block because back in 1988 , programming was pure magic for pretty much everyone.

When you start with the idea that even 1 line of code is amazing, it’s kinda hard not to be motivated, even if you are a very hyperactive 9 years old.

Nowadays I learn mainly through the usage of debuggers, I like to follow the execution, examining the data as it changes and follow the clues. It makes me feel like true Sherlock Holmes, trying to found out how I murdered a good functional code. In the end it’s not very different than when I started as I kid, I still take it one line of code at a time. I like to create my own development tools and libraries to help me code in and a bit easier way. I also like to use just pen and paper and make diagrams and mental maps that help me understand and remember how complex code works and is meant to be used.

In short, absolutely nothing special.

My secret is that I am still amazed I can write one line of code. I enjoy success in tiny things to keep me motivated and always to find a way that makes me love coding a bit more.

Stay motivated, that’s the only thing required. If you punish yourself for every mistake you make, you won’t be coding for long.

Thank you for your answers. I know I should break my software into small pieces and I do that but I am not sure if I make it in a right way. One of the hardest part of game programming for me is that I always doubt that my way is true or not. The worst thing in programming is that there is no one solution for a problem. You can solve the problem in many different ways. It confuses me a lot. I always think that “I am doing this but is it the right way?”. My current project is similar to World of Tanks but stylized version of that. I made a control manager for tanks, projectile class, air defence system, skill creation system(for who is non programmers actually), buff system(armor decrease etc), custom collision system(because Unity’s collision sucks). Actually I can code almost every feature I can think but as I said my problem starts when project gets bigger. Actually it is not even too big right now. It is only about 1.5 thousands lines of code. But anyway, thank you for your kind answers guys. I will try to find a way to improve myself.