Advertisement

Help Beginning

Started by April 15, 2016 10:21 PM
1 comment, last by Alberth 8 years, 8 months ago

I'm a beginning computer science major and now have a decent grasp of the basics of programming (I'll clearly learn a lot over the coming months though). I'm not yet sure where this major will take me and I want to see if game development is an avenue I may be interested in. I'm not really sure where to get started to even get my feet a little bit wet. Should I get Unity? Are there really good beginner tutorials for people like me? Help would be appreciated.

If you are interested, that is reason enough.

Unity is free for learning, and it has tutorials. Most programmers use C#, but it also has a variant of JavaScript (often nicknamed 'UnityScript') and another similar to Python named Boo. (They dropped documentation for Boo as it is so rarely used, but the system still supports it.)

Unreal is also free for learning, and it has tutorials. It is primarily based around C++ and a system they call "Blueprints".

Learning to use either engine will be useful in your programming career. You will see how other systems are implemented which should give you ideas about why things are done in programming, or give you a practical application for the concepts you have learned. Even if you don't go into game programming it will have some value.

As for choosing the path, that is up to you.

Also you should be aware that playing games is different from making games. Just like making delicious food is different from eating delicious food, and watching a great actor is different from performing on stage. Game programmers are software developers, and games are often considered the race cars of programming. Fast and flashy, often derided by others, and it comes with some 'movie star syndrome'. It is still a regular job where software development techniques are central. Just as you want the best mechanics working on a high performance race car, you want the best programmers working on a high performance game.

While many scoff about game programmers as being inferior (and many wannabe developers and minor titles are not technically challenging) the bigger games and more creative game technologies are extremely advanced. Game programmers often draw from conference papers in all other fields, especially physics and math fields, and technical research papers coming out of games studios typically require advanced math and a deep understanding of hardware. Many research papers on computer graphics are best understood by mathematics and physics graduates.

Also, while some aspects of games require specialization, the same algorithms apply everywhere so learn all the fundamentals. For example, the graph searching used for pathfinding in games is the same algorithm used for finding nearby paths on a traditional map, the same algorithm used to find nearby words in a spell checker, the same algorithm used to find the shortest combination of flights or trains from place to place, the same algorithm used to find the best path through a computer network.

If the path looks interesting, follow it a while. If you decide to take a different path you can still use the knowledge you gain.

Advertisement

I do things the other way around. I have a CS degree, and work in the technical/scientific software as regular job.

Games are attractive to me, since they are fun and complicated pieces of software. They contain algorithmic pieces, like path finding and AI techniques, but they also employs smart low level tricks to fool the user that you don't think of at first. Also, there are time and cpu constraints, efficiency is important here. Last but not least, everything has to work in a nice manner.

I do most work in open source games, and "use" them to learn and sharpen my techniques in version control systems, code refactoring, and modifying larger programs without breaking them.

The biggest disadvantage is that game development is so much fun and costs so much time, I hardly ever play a game :)

This topic is closed to new replies.

Advertisement