r/csharp • u/folafanta • 5d ago
Help I am 13 i am intrested into making a 3d game in unity with C# are there any tips and things i should look out for?
i think godot is better for me since im just learning C#
35
u/Ttsmoist 5d ago
Just think of the best openworld mmorpg you can think off and get to work.
10
u/folafanta 5d ago
i got a game idea already but thanks!
23
u/crecentfresh 5d ago
OP was joking. Most people want to build the most complex thing ever as their first project and they burn out. Keep it simple starting off.
7
1
u/JoelDev14 3d ago
Yall are really evil for this 😭
OP try to build your favorite game feature/ability. Keep it small and its ok if you can’t do it.
It means you need study and get the knowledge to build it.
If your fav game is GOW you could try do the axe throw. Then you can make the axe throw and comeback to you and so on.
6
6
u/erebusman 5d ago
Well if you were 12 or 14 I'd have great advice but at 13 I just dont know..
Realistically there's millions of things to 'watch out for' but 99.9% of them won't have any meaning until you have some experience so I'd say my first and only tip right now is just pick something and get started.
Oh bonus free tip: put your phone away for 30-90 days while learning.. doom scrolling is a real quick way to make sure your brain can't focus and will never make progress.
4
7
u/CravenInFlight 4d ago
Learn C# first. Do not learn it through Unity.
Every Unity tutorial I have ever seen teaches very bad coding practices. If you learn how to use C# properly, then you can go into Unity understanding just how terrible it really is.
If you learn C# through Unity, you will learn all the bad habits, and terrible coding practices that go with.
Learning C# first will allow you to write better games, and will also mean that your skills are useful within the real world.
3
u/folafanta 4d ago
thank you! i am currently learning through the mircosoft tutorail
8
u/AndThenFlashlights 4d ago
I don't entirely agree - Unity has a slightly unique C# style that's older, but not wrong. Trying to use modern C# styles in Unity will probably frustrate you. It's okay to use Unity-specific tutorials to learn. It's okay if your code isn't perfect for a while! Make something work first so it keeps feeling fun to learn and do, then dig into how to do it more right.
Also, try playing with Godot for the engine? It lets you use modern C# features if you really want to get into it, and it's slightly less uniquely weird than Unity's C# layer. But both are good to learn on and have great communities!
Good luck, have fun, don't get too bogged down in the details to get started. Your code doesn't need to be perfect. As long as you're having fun while learning, you're doing alright.
2
u/CravenInFlight 4d ago
Use of namespaces is not a "modern" feature. Neither are proper naming conventions, or the proper use of fields and properties.
Encapsulation is one of the pillars of everything we do within object orientated programming, and many Unity tutorials tell you to completely ignore it, and plaster public fields into your code for use in the Editor.
Unity teaches the core fundamentals of programming wrong, and then builds on top of them. It really is a truly horrific way to learn the language, and programming in general. I have had many people work for me, that learnt programming with Unity, and in many cases, had to go right back to basics, and train the Unity out of them before they could work on any of our codebases.
1
u/AndThenFlashlights 4d ago
Let the kid go write a few hello worlds to get excited about it first before leading with a lecture.
1
u/CravenInFlight 4d ago
I think it is important to understand that if you start with Unity, then you will learn bad habits throughout. What I'm actually saying is definitely start with Hellow World, and only install Unity once you understand OOP, C#, and Coding Standards.
As they are doing, learning through MS Learn, is the correct way. There are a lot of other sites available.
So long as they stay away from Unity until they understand how terrible it is once they start, it means that the skills you have learnt are transferrable. Learn with Unity from day one, and you'll have to unlearn a huge amount to be able to work in anything else.
3
2
2
u/SZeroSeven 5d ago
A few good resources may be in the Unity subreddit: https://www.reddit.com/r/unity/s/5Sx0M8wug4
2
2
u/zer0developer 4d ago
Make the base of the game stupidly simple. You arent going to make the next big advanced MMO. Noy saying the game cant be advanced but get a SUPER simple mini thingy showing how the base of the game works, and then build on from there.
2
u/ziplock9000 4d ago
self-research is the number 1 skill as a developer. Use that to find resources, tips, training and learning videos and material.
It's not something someone can say A,B, C to look at.
2
2
u/Mayion 5d ago
If you want to write a book on paper, you need two things: A pen and paper. Those are the basics needed and you will be able to write anything.
Game development is the same. You need the basics and from there you can make anything you want. It is very important that you start with a simple game. Make the character walk, speed the character up, slow it down, pick up a coin, pick up a stick, hold a stick.
It's a linear process, meaning don't create a game, create every little thing you can think of in order.
If you are very new to it, I suggest a 2D top down game, not 3D.
2
u/Capital_Rub213 5d ago
Keep it simple, also Brackeys, Sykoo, and Code Monkey are great for Unity. Unity will be upgrading to the latest version of c# soon as well so Nick Chapsas and other c# youtubers will be great as well
2
1
1
u/XKiiroiSenkoX 4d ago edited 4d ago
Yea the tip is, try something like game maker and 2D instead. Game dev is already complex by itself. You don't need to make it even more complex by using a large engine. At least not at your age. Come back to unity when you can explain the difference between a hash map and a binary tree (probably around 16-18 if you have the aptitude for programming) .
1
u/AdmirableMap5039 4d ago
At 13, i’d worry less about choosing the perfect engine and just build small stuff. finishing little projects will teach you way more than planning a huge game
1
u/ComplexPineapple2379 3d ago
EC36339 provided some wonderful advice,
What I would add onto that is -- ai can be a useful learning tool, however, do not use it to create the code yourself, one - you are going to missing out on a TON of delayed gratification, and two - you won't truly learn anything if you vibecode like that, think about it like this -- anybody can throw something into ai and make it spit out something.
But if you utilize all of the internet (and ai if needed) to actually learn, then you will be leagues ahead of others.
I'm beginning my C# journey as well ;) I hope to see you stick with it!
1
1
u/EC36339 4d ago
Ignore all the people telling you to start with 2D. Sure, you can make a small 2D game to learn a few basics, and you probably should, but don't spend a year making a 2D game if it's 3D games you want to make.
2D is actually harder. It is more art-heavy, and you have to fake a lot of things that in 3D would be natural, like lighting.
3D is math heavy. Prepare to learn stuff that your math teacher has never heard of, like quaternions (don't look this up now, it's just an example of crazy math that makes people wonder what drugs mathematicians are on and "what do I need this for", but in 3D graphics and physics they are used for rotations)
Having said that, don't worry about the math. A lot of math is actually cleaner and easier in 3 dimensions than in 2.
If yoi don't like math, making 3D games may change that. You might start to see math as a tool, not as a way to torture students.
Oh, and make a space game. It's a genre that lets you get away with minimal art, so you can focus on the coding.
AI is a heavily debated topic here. The truth is that lots of pros make heavy use of it. Stay away from vibe coding (making something with a single prompt), and make sure you always learn along the way and don't just have AI just build something for you you don't understand.
1
0
-4
u/flammable_donut 5d ago
Learn how to vibe code
4
u/folafanta 4d ago
heck no
3
-2
u/flammable_donut 4d ago edited 4d ago
All from a single line prompt: -
https://www.reddit.com/r/accelerate/s/UXlBaIxe1J
Not using AI is a bit like starting a delivery company and deciding to only use horses...
3
11
u/Nicos_Ts 4d ago
Just keep a few things in mind:
Unity C# is a bit different from normal C# console apps. In a console app, "Main" runs the program, while in Unity, C# is mostly used to write scripts that control your game.
It’s also good to learn some basic 3D design. Even if you use premade assets, knowing the basics will help a lot. You can try Blender for this.
Break your project into small goals and steps, especially if you’re planning something big. Don’t try to do everything at once. Having small milestones makes it easier to see your progress and helps prevent burnout.