Hi all, how would I start to improve my skills as a coder . I can script most things in Unity now , but I don’t have much experience outside of Unity(C coding scares me )
Just dive in to C#. Don’t let it scare you
Add some features you’ve been ignoring - make a multiplayer game in C# (even if it’s just pong). Try reading data from a text file or database.
Ohh I use C# , just C , the 1978 language scares me !
C actually isn’t bad, it’s a really simple language. The hard part is that it doesn’t have a lot of built-in features, so you have to do a lot yourself.
It’s C++ that’s a nightmare to use because there are 10 ways to do everything and 7 of those will leak memory (the other 3 will also leak memory if you don’t know what you’re doing).
Build a complex AI, with a 0.3ms cpu overhead max constraint ![]()
IMO, the best thing you can do to become a better coder is to team up with someone who is a better coder than you, and work on something just slightly over your head. ![]()
If you’re 100% sure of what you’re doing, you’re not improving. You gotta take risks on those possibly-impossible ideas. You improve as you find solutions to problems you had no idea how to solve at first.
Cheers
you can work on non-game projects, it will give you nice programming skills.
Its a perfect answer. Get well with OOP, MVC etc… first. Then go for bigger Action script projects. In the mean time keep practicing Unity and you will rock it hard.
To become a better programmer, you must practice and solve problems. After all, that’s what programming is all about. Generally speaking, there are three major challenges you will encounter in programming:
1- Syntax
2- Environment
3- Logic
Number one is the easiest to overcome. In fact, once you gain experience and learn programming well, syntax will no longer be an issue unless we’re talking about extreme different languages (Assembly vs Java for example), and even then you should still be able to produce something with proper resources.
The second point can be quite challenging and usually only experience and studying will help. For example programming a web application is different than programming an operating system. Both involve programming, but different. I would also include the design of the programming language you’re working with (Object Oriented, Procedural, etc).
The last point is what you should focus on the most if you’re a beginner. One of the best places to start is Project Euler/. Register there, pick a programming language you want to use, and solve problems to practice.
In your case, you don’t need to learn C unless you have a purpose for it. But if you really want to. Keep in mind that if you know C# then you will have no issues with the syntax of C, they’re almost identical. What you will have an issue with is point number 2 (Environment). Unlike C#, C is not an object oriented language, and while you might find that easier than OOP, the problems usually arise when you try to tackle the low level capabilities of C (Memory management). Most people have problems with understanding pointers and memory allocation. This is why C++ is considered a very difficult language to work with, because not only do you have to deal with the memory management, you also have to understand object oriented programming. Which in my opinion makes it harder to deal with than C.
If you’re only scripting in Unity, there’s no need to worry about low level programming (Unless you really want to learn). So stick to C#, and if you’re going to learn C for the sake of learning, keep it simple by developing small command line applications.
Heh. Someone said that C# was more like Pascal than the original C. I think that’s true. Apart from a shared semantics with C, the strongly typed secure language is pretty much the same idea as Pascal. I think even one of the lead developers of Delphi (the original ones) moved on to Microsoft and created C# there.
Yeah, Wiki’ing it, I found this.
Edit-
What I mean is that C# shouldn’t frighten you. It’s not so frightening a beast as C… or for that matter C++. ![]()
make all the neat lil data structures you take for granted in C# and make your own version in C.
so, make a linked list, a stack, a dynamic array, a binary tree, a graph, implement your own hash map (Dictionary) and all the string functions (length, sub string, string concatenation, reverse a string,etc).
I’ll get you started with the first data structure
struct node
{
int someNumber;
char *someString;
node *next;
};
This. Learning to program in unity is like trying to model in 3d without learning to draw.
I beg to differ with the non-gaming projects, though. Personal experience proved me the opposite.
Unless we’re talking about very simple games, I’ve yet to find anything more complicated than to code a full video game.
(In before nitpicking me on “hey you don’t know about [insert random complicated non-game project], boy” :p)
(but [random complicated non-game project] is not all [non-game projects])
In my experience I believe this is the fast-track route to gaining ‘skillz’; forcing yourself out of a comfort zone is the way to progress. If something scares you then tackle it head on, you will learn from mistakes just as much as when you finally crack the problem.
Another point that is rarely mentioned is a good programmer can work well in a team; writing clear, legible code that is well documented (i.e. decent in-line comments as a minimum) is key. The teamwork aspect gives you experience understanding, expanding upon and bug-fixing other programmers code - and vice-versa - it’s win/win all round ![]()
Also, attend training sessions. If there is a developer group that meets where you live, sit in on a few meetings. Mention that you’re an Indie Game Developer (you are), and take notes. If you want to be better, immerse yourself in good coding practices and new techniques.
My problem is I get frustrated easily , like I tried to make a Windows 8 app and I failed .
Generally speaking I would agree. (though some high end science simulations, video/image tools etc… would be more complex). But even so, those may not actually provide a lot of benefit to game code skill set.
I would suggest that you attempt to write GAMES outside of unity. Unity (by being a engine), really does most of the hard work for you and obscures a lot the core functionality. That isn’t a bad thing, but by starting in with something like Unity, you can miss out on what is going on under the hood. It will get give you a deeper understanding of what is going in, and allow you to venture outside the box and provide more robust solutions when you need then.
Any tool, when you start with it, you are creatively limited by your knowledge of. Know the bigger picture and understand ‘what’ it is doing vs. how to use the tools.
There are a lot of options. I might suggest AS3. It is fast and if you don’t rely on available game engines, it is great way to get a coding without training wheels. Use something like Flash Develop (win) or the sdk (mac), and your favorite text editor and pick a target like space invaders or a match3 game. Write the whole thing in code. You will learn how to optimize, game loops, object interaction and really a ton of things. It’s pretty much free and there are a ton of great resources. Though, mostly 2d, the concepts translate. (path finding, ai, collision, etc…). Build a simple game in flash using only a text-editor, and your understanding and skills will definitely benefit.
I don’t frequent forums much anymore because its all the same questions all the time.
Get the pragmatic programmer
Get code complete
Get clean code
Read and just keep writing code, don’t expect a miracle it takes a long time to get good.
Stop wasting your time asking questions a book can answer and just read the book. If you can’t read books, write code until you get better, watch video tutorials.
That is very good point. Being a competent programer also means you are resourceful and can find solutions quickly.
All books I did not know about . Off to my local library.