Two months ago I decided to push myself to learn code. As a game enthusiast and with some years of experience in web design I thought that learning C # using Unity would be a good idea. I started by only working on features that I understood, such as controlling the operation of the UI and controlling some basic movements.
I never imagined that I could progress so much. In two months I published three UI assets in the Unity Asset Store, one for free. This has helped me to progress in understanding how Unity works. In the meantime I started working on an Asset for War-banners and flags. I already had some notion of how it would work and I clung to the unity manual to understand every code function I would need to complete my idea. And I did it! I feel very proud!
01 - Do not become a slave of Tutorials
Tutorials helped me a lot in the beginning, but as soon I realized that they prevented me from thinking i stop watching. Following a step by step and just copying what is done will not teach you to code. Code, for me, has revealed the art of thinking logically, being practical. I'm astounded at how many things I could do when I understand the conditioning sentences. When I began to imagine the feature of my asset as conditioning structures, I became capable of more than progressing, completing my idea. And this brings me to the second lesson learned.
If you have an idea, open up Unity and start working on it. Do not know where to start? (Recurring issue in forums ).
Start simple. Insert a canvas, an image. make a small code to learn how to change the color of that image when you click a button. The unity manual is fantastic and teaches you to understand and also offers good examples that can be adapted. Define what you want to do and see how it is done in the manual. This will open your mind.
Just do it. Do not worry if your code is pretty or full of improvisations. Do it! improvise, adapt ... as long as works and you understand, everything is valid. This will make you better. As in a RPG you will pass that XP level! When this happens you will feel the need to improve some code you did back in your script. And maybe the need to deploy another feature forces you to fix your code. Just lets things happen naturally.
03 - Do not be afraid to work on big ideas.
I see a lot of criticism from developers saying that you should start small, forget your dream of making a fantastic MMO. I agree in parts. You can have a great and ambitious project, but know how to live each day. Divide your project into parts and start with the simplest. You can learn while building your project. It's better to work on something that makes sense to you than simply creating random things. Also the act of planning your project, making scope, roadmaps, etc. is a good way to break features into small parts and better understand how it could be implemented.
In these two months I released 04 assets in the Unity Asset Store. You can check in this link: https://assetstore.unity.com/publishers/26473. To publish an asset in the Asset Store it is necessary to have a website for support, so I made a simple website to meet this need. http://www.utramare.xyz
That's it, starting in a simple way, playing with basic Unity features led me to become a programmer I never imagined it would be. It led me to the path of imagining and realizing an idea. And more than that, it makes me believe that I am able to perform my ambitious project for a game (Not a MMO :D). After all, I realized that maybe these assets could help me finance my big, ambitious project. Besides helping me improve my skills as a developer, designer and project analyst.
But if it does not work, fine. I've learned to work with C # and its main functions: ienumerator, raycast, conditions as for, if, foreach ... I know how to implement a companion control system, I am able to implement plant growth. I am developing a character controller for myself and I am very happy with the results. I was even able to create a throwing system of objects like spears and stones quite decent with forecast trajectory using line renderer. I fully understand how colliders work and how I can use that to my advantage. I am even able to develop small functions in the editor! I never imagined that I would be able to.
I have a bachelor's degree in system analysis, but my career has always focused on the area of project and governance. Therefore I have never been able to develop anything beyond basic things like "Hello World" and simple math functions and basic sql queries. The basics of basic.
Today I will venture into the field of procedural structures. I will be fine!
A big hug and my wish of success for all of you during your learning journey.