I am fairly new in the programming world, I have a 1-year experience and I learned by watching online courses, and I made few iOS apps.

Now I am moving into game development and I already familiarized myself with Unity3D and started doing my own simple project.

Playing games like Monument Valley for example made me wonder: what if I want to implement the same movement technique in my own game, or lets say I have an automated turret that shoots at the nearest enemy, or a even a game like sudoku or tic tac toe?

I have no idea how to efficiently implement that. So is it absolutely necessary to learn the fundamentals of algorithms or is there some easier way to achieve what I want without the complexity of CS?

closed as off-topic by Ixrec, Doc Brown, gnat, Bart van Ingen Schenau, user40980 May 2 '15 at 11:20

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic here. They are only meaningful to the asker and do not generate lasting value for the broader community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – gnat, Community
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    The fundamentals of algorithms (like big-O notation) are not that hard, and overlap heavily with knowing about common data structures like binary search trees and graphs, so there's no reason not to spend a little time reading about them. That said, something like Sudoku or Monument Valley is probably fine with naive brute force solutions because the problem size is so small; the parts of a game that really need to be super-efficient are normally hidden inside the "engine". – Ixrec May 2 '15 at 8:41
  • 3
    This question is indeed too broad, as defined in this link, and therefore will be closed. There are too many types of computer games; each type has its own knowledge requirements, so one cannot exhaustively explain everything involved. Finally, for an answer to be useful to you, you will need to have a basic level of aptitude to understand the answer. It is expected that a person with basic level of aptitude will not ask the question "is it necessary to learn algorithms" because it would have been affirmed by your own learning experience. – rwong May 2 '15 at 8:50
  • If you are curious about what kind of knowledge and questions are involved in game programming, you can start browsing the questions on gamedev.SE. But keep in mind that you can't reach a higher level of knowledge by just reading from the internet; you will need formal education (formal as in following a predefined course and completing all of its modules and exercises, which fortunately can be free as in MOOC, or less expensive than a traditional degree) and augmented by textbooks and research. – rwong May 2 '15 at 9:13
  • If you want to learn how to program complex games, start with simple games first. And if "tic tac toe" is still too complex for you, pick one of the thousands of sample implementations you will find on the Web and learn from them. – Doc Brown May 2 '15 at 9:15

1. No.

You can do a LOT in game development with only the most shallow knowledge and understanding of Computer Science. You don't need CS knowledge to do graphic design, nor do you need it for most 3D design. You don't need CS to tell a story, which is essentially what most quest games do. You don't need CS to think about game-play and usability, and design the ways a user interacts with a game, and so on...

Also, today you have so many tools available (such as the Unity, etc) that allow you to create really cool things without going too deep into what happens in the background.

Also, most of the problems you face in day-to-day software development, even when they have some CS elements, are very trivial, and almost always have been solved before in a well known and documented way. You can always come here and ask :-)

2. Yes.

The way we, humans, understand and describe the world around us is with mathematics. The way computers work is solely founded on mathematics (and some fancy sand i.e. Silicon). When I say "the world around us, i don't only mean physics, and the "physical" world. Chess, checkers, soduku, most card games, and many more are just fancy math problems. To understand, manipulate, and be able to create, things like a Chess AI, a visual 2D\3D engine, or anything beyond a MOD to a First Person Shooter, you must have a deep and profound understanding of the mathematical elements behind them.

3. Maybe?

So basically my answer is - Your mileage may vary. It depends on what do you want to do, where, and how much understanding do you want of what you are doing. Even if you want to do things that really require the Math, today you can learn most of the things you need yourself on the internet. But, as someone who worked for about 7 years in the industry with only 6 months of professional training, I can say that the easier way is going to collage and learning it there...

  • Thank You for your answer, unfortunately going to college is not an option, but I found some very interesting online professional course like CS50 from Harvard University. I will check that out and maybe use the "Learn as you go" approach. – Abdou023 May 2 '15 at 12:37
  • 1
    ocw.mit.edu/index.htm and khanacademy.org – AK_ May 2 '15 at 12:40

The short answer is yes.

It depends on the complexity and innovation of the game being designed. Some games, say, Gravity Master, looks simple enough but actually requires a rigid body physics solver.

All games involve programming; software with increasing functionality requires more programming, which I hope is obvious to you.

The majority of games require geometry because most kinds of gameplay involves movements and distance effects in a 1D, 2D or 3D space.

Some kinds of gameplay require less knowledge areas:

  • Card games don't involve geometry, but may involve combinatorics and artificial intelligence (more specifically "game tree" and "heuristics", used for searching for a viable strategy by the computer player.)
  • Games where movement is constrained to a grid and only one step allowed at a time (without pathfinding) are also simpler.
  • Games which only involve a series of storyboards (of which the evolution of the story is based on answering multiple-choice questions by the user) is also simplier.

But games in general can involve many knowledge areas. Game developers must work really, really hard. It is not unheard of that they might work twice as long hours compared to other software programmers outside the game industry. They must be avid self-learners because they may not have all of the necessary knowledge when they graduate from school. Each game requires new knowledge (or else, it will not be innovative enough to impress the gamers.)

Games in general are also divided into many components. Sometimes, these components can be packaged into "game engines", so that other programmers can build on top of that without having reached the same level of knowledge as to implement the same.

  • Thank you for your answer, but most of the stuff you mentioned I will never do, as i will always rely on an engine. – Abdou023 May 2 '15 at 12:39

Not the answer you're looking for? Browse other questions tagged or ask your own question.