If you're serious about making video games, give Will Wright's Masterclass a try:
The Sims creator Will Wright teaches you his personal strategies to design fascinating games that engge players and enable their creativity.
Lessons include topics like: fundamentals of game design, generating game concepts, early prototyping, story and games, player psychology, visual asthetics, iterating and scoping, playtesting, sound asthetics, pitching ideas, understanding your platforms, system design, leadership and collaboration, and the future of game design.
In this article I will tackle both video game design and programming video games, as I have experience in both.
This kind of goes hand in hand with any subject: Read! Read! Read!
I would start with these books:
|The Art of Game Design: A Book of Lenses, Third Edition||32 reviews||Check Price and Reviews|
|Game Design Workshop: A Playcentric Approach to Creating Innovative Games, Fourth Edition||14 reviews||Check Price and Reviews|
|Fundamentals of Game Design (3rd Edition)||28 reviews||Check Price and Reviews|
|Indie Games: From Dream to Delivery||19 reviews||Check Price and Reviews|
|Game Programming Patterns||335 reviews||Check Price and Reviews|
|Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity...||18 reviews||Check Price and Reviews|
|Think Like A Game Designer: The Step-by-Step Guide to Unlocking Your Creative Potential||29 reviews||Check Price and Reviews|
|Procedural Storytelling in Game Design||4 reviews||Check Price and Reviews|
|Game Mechanics: Advanced Game Design (Voices That Matter)||24 reviews||Check Price and Reviews|
|Rules of Play: Game Design Fundamentals (The MIT Press)||84 reviews||Check Price and Reviews|
|The Gamer's Brain: How Neuroscience and UX Can Impact Video Game Design||50 reviews||Check Price and Reviews|
Read them cover-to-cover, don't skim.
It sounds like simplistic advice, "Duh RJAG, duh!" but you'd be shockingly surprised to find out how little most people read. IMO, although I cannot prove this, I suspect the majority of online forums is composed of users who have only skimmed a handful of passing articles. Hell, even some threads on Reddit that get responses from users who stopped reading after half the title- and didn't even finish the TITLE, let alone the contents, before vehemently replying.
What helped me to learn game design the most is talking with other people who knew about game design. Kind of learning by beginning to understand how they think and perceive game design.
Having someone you can discuss design with is probably more important than anything else. Just as with any skill, especially a tech/science skill, a mentor is invaluable.
Of course, easier said than done.
Still- participating in conversations about game design can help, even if that isn't mentorship by an intelligent/experienced person...it's better than nothing!
As a person who designed a few indie games, I can assure you that experience beats a degree. Having a degree comes in handy when you start fresh from school, but if you don't do shit apart from studying (think designing games in your spare time, attending meet-ups, gamejams, etc), then you can have all the degrees that you'd like but you still won't get hired.
So focus on getting stuff done, like that project you mentioned, and getting contacts in the industry. That will eventually be a lot more useful.
I believe anyone can make games, even if you don't have any experience. You won't make Witcher 4 as your first game of course, but you can definitely make your own little indie games at home with a very low budget. If you choose the right tools, you can make small games entirely for free.
My recommendation for any beginner is GameMaker Studio 2. It's an excellent piece of software that allows you to code games with a very simple language (GML) while still being able to produce quality games. GameMaker is responsible for Undertale, Hyper Light Drifter, and Downwell, just to name a few.
Even if you're not comfortable with coding at first, you can still use their Drag and Drop system to learn simple game logic. It's recommended that you move onto GML coding as soon as possible though, since DnD quickly becomes limited.
There's a catch, though. GameMaker has a trial version, but you can't do much without one of their licenses, which can range anywhere between $40 and $1500. GameMaker also doesn't do 3D very well, so if you want to make 3D games you will have to try Unity or something more complex.
With that said, I'd recommend GameMaker anyway, because it's such a good starting point. Even if you start with GameMaker, it's easy to just move onto another game engine like Unity or Unreal once you're more experienced.
With enough discipline, dedication, drive, coffee, lack of sleep, lack of social life and a well-defined scope, making your own game is totally realistic.
There is only ONE bad decision you can make. And that's not starting.
If you're torn between two or more particular technologies, it's best to start with one than neither at all.
For ages I couldn't settle on either web-based technologies (what I already know) or Unity.
Identify what you know, establish creative constraints and build around that.
Process of Designing a game:
First off... what's this thing about? What's it trying to do? What's this thing's goal for the player? How does it make you feel? That's the theme, the core of all games.
All these games built around that idea.
Design everything around that theme. The gameplay mechanics, the music, the art, the aesthetic, the story (or in some cases the story comes first, like in your case, and the game is designed around the theme of the story), the controls, the menus, EVERYTHING!
It's the designer's job to find the best way to give the player the experience that this game's theme is out to give. And to do that a great method is to look how other games, movies, tv shows, cartoons, animes, books, and other things managed to deliver this experience as well, so you can iterate on what they did and fit it into your game.
And there you go.
If you're starting with a story it's good to think to yourself "Should I even bother trying to make a game?" Different stories work better or worse in different mediums, and a question that should be asked is "Can this story be interactive?" If you're struggling with that, then maybe you should think about writing a novel or screenplay instead.
There's no hard-and-fast checklist of criteria that defines the experience of a game as 'working' or 'broken.' It's not like most software development because the end user's experience in a game is far more freely chosen and subjective than in software.
Just getting that expectation out of the way in advance. It's quite the obstacle to overcome.
As for the tactics of building a game around a story, your game's story can be broken down too. Identify the goals, obstacles, tactics, and expectations (correct or otherwise) of the stories (yes, plural) you want the player to see first - then expand them into a game.
Lead the player: Bait, intimidate, provoke, misdirect, and otherwise manipulate them through the game's mechanics or story. Know their wants and expectations, meet them or withhold them. Guide them, teach them the message through analogies of the same experiences that taught you.
Here's an answer from someone in the field who has worked with 4 types of people: non college background but with decent programming skills; non college background but "learned to code" in Unity; college background and invested in learning stuff; college background but just graduated due to the institution graduating anyone who just showed up to classes.
You CAN be a great programmer without having been to college / university. But it takes dedication and, for as powerful as Engines like Unity and Unreal can be in the hands of experienced people, they should NEVER be seen as the platform to LEARN how to code. That's the biggest issue we have with most people, having college background or not. A decent programmer needs to know memory management to say the least. Many, many things you'll only learns diving deeper.
I'd say that a good game coder can learn by him/herself by approaches like creating his/her own game engine (it can be a simple 2D but well structured one) and studying everything involved as the project goes. It takes less than six months if you are really committed. After that you'll rock using any engine.
The best programmers I've got to know either have no college background or dropped out. I dropped out as soon as I realized that the diploma would only be useful as an entry door to the field I was already established. BUT I had many years of programming background. Otherwise I would have stayed.
If you have a decent github profile with two or three small to mid size projects it serves you as a diploma. If you have a decent diploma it doesn't necessarily serve you as a decent github profile... But if you are not committed to studying alone or have no clue about what subjects you should master it actually would take less time to go to college and acquire a decent overall knowledge.
Last but not least: Regardless of where and how you study, learn by doing it, not by copying it. Read theories and implement 'em without over relying on copying other people's code. And be very careful when watching video tutorials created by people who got the results they wanted but have no knowledge of why and how they got there (aka copied code from several other tutorials and mixed together without really knowing what they were doing)
A general compsci degree will ensure you have a backup plan, because let's be frank here, the gamedev industry is an entertainment industry, and like all entertainment industries, the worker is there to get abused. If you have leverage over your employer-to-be and can tell them to fuck off because you have a 110k job lined up the moment you leave, you will do better than someone who doesn't have that threat.
And, if things don't work out, that's fine. You can always come back to it later. You plan on living another 60-70 years, right? That's a lot of time to eventually chase your dreams.
I've heard almost as many arguments against becoming an animator, programmer, artist and so on.
I can't stress hard enough to do what you enjoy. Don't become a game designer is you want to program, and sure as hell don't study computer science if you want to become a game designer. Really, and this is just my opinion - the only point I agree with is the last. Game designers are not evaluated on the quality of their ideas. Many find it difficult to figure out that that there's a difference between an idea and a pitch.
Also remember that an education in game design can be applied to other industries. More and more companies are hiring people that are specialised in design (and game design) to 'gamify' their products. By studying game design at this point you're really not limiting yourself. For reference I'm in my final year of studying Game Design at a for profit university. I've already held a job at a pure game studio, and three jobs (two separate companies) as a "consultant" and designer gamifying existing software and products.
I'm lucky in that my location and my teacher give me a unique perspective of the industry. My university spans four locations around the world with my campus having the smallest game designer course. There's only ten of us in total, with one professor. Our professor comes from a strong background in the business side of game design, teaching us how to formulate, polish, and pitch ideas, and how to look at the psychological parts of game design. Contrasted to the other campuses, all they seem to learn is "How to use Unity" and "How to use Maya".
Remember that there is so much more to the industry than just design and development disciplines.
Would someone studying Computer Science have as much exposure to the game design industry? You would be far more disconnected from art and level design disciplines.
A good game designer should be able to understand the other disciplines such as (art, programming and qa) well like you said and most game design courses teach with those disciplines in concern. Most design programs will have students touching on all parts of the industry. Learning things from psychology (emotional engineering), to level design (prototyping games with architectural cut outs), presentational skills (Pitching to teams and clients). I see this understanding opening up more doors than being an expert solely in one field.
I can also argue that many people will hire fresh graduate designers. Though I live in a far less competitive region of the world. My main argument though is Computer Science / programming isn't the only way into the industry anymore.
Yes, it is, but you have to realize if you're mixing up "game design" and "programming".
Modding GZDoom may be excellent to learn game design (a subset of it, really); but is not a good one to learn how to program or how to use engines like Unity or Unreal.
Many people really want to get into game programming. So, first, understand what you really want to learn! If it is game design, go for modding (and do it in many games of different genres, not just one). If it is programming, go learn actual programming and forget about modding.
I believe modding is a great gateway into game design. As long as you feel like you're still having fun and getting good takeaways/experience from modding games you enjoy I would keep at it.
Matter of weeks to make a game. Matter of months to make a decent game. Matter of years to make a good game.
Is C++ the best language to start with gaming? I'm not sure that C++ is the best language to start making games. It's not the best language to learn programming either unless you're a "natural". Also I don't know if it's good to start learning two different things at once - programming and game development.
If you're serious about programming and game development I would suggest that you spend some time (months) getting familiar with your language of choice and various programming concepts, workflows.. Learn a bit about the bare metal too.
After that apply the knowledge you gained in making several short games - and make a sticking point in finishing at least one. You'll soon learn your strengths and weaknesses as a programmer.
Go back to study once more, this time a shorter period of time (weeks) then back to making games. Repeat this cycle until you're satisfied with your programming skills and your ability to finish a playable game. Don't limit yourself to only learning the language though - find some time for various famous programming books (OOP principles, Clean Code, Pragmatic Programmer, etc).
As for the language of choice I'd recommend C#. It's a very good first OOP language and as a bonus feature it's also a main scripting language for Unity - which is what you'll want to use as a solo dev.
Of course you could also start the hard way with C for a basic understanding of the machine, followed by C# or if you're masochistic with C++.
So I guess what I'm saying is that in order to become a game developer you'll first have to become a programmer.
For a simple game like Tetris or Snake, it could take as short as a couple of days, if you just try to learn Data Structures first then use a simple game engine like Unity so you don't have to worry about rendering.
Really, if you are just starting out don't focus too much on a specific language. Instead learn the fundamentals of Data Structures and Algorithms. Once you get familiar with it more, you will start to see games in a different perspective, in a way that you can try to break it down to its simplest form. Then learning the language is just learning the different syntax and structures.
Now for a time frame of learning Data Structures and Algorithms, I'm not too sure. I mean, I took a class for it which was 4 months for a semester. But it didn't really stop from there, I'm still constantly learning more ways of making certain algorithms more efficient and different ways to structure data.
Do whatever the hell you want. Life is short, but think carefully and make sure this is something you really want to do. All of it. Draw up a plan with goals that will allow you to learn new skills in a manageable way.
Dedicate some time each day to learning code, designing systems and levels, messing around in 3d editors. Start taking your games seriously and make something that people will want to play. Set your sights way above Game Maker. Build a portfolio, read books, contact game designers in the industry and have something impressive to show them!
Books are so, so important. I don't mean game review websites. Develop an eye for good game design, what makes games successful, what types of games are feasible for one person to make. The most important advice I can give you is to treat this passion as a labour of love.
If you're not designing games that you or other people don't want to play, then you're wasting your time. The job market is brutal and the ratio of wide-eyed fifteen year olds who play videogames to actual work in the game industry is hugely disproportionate.
I'm going to say don't do it for the certificate. Outside of some specific companies with specific requirements (Cisco, Oracle), certificates are worthless in the eyes of an employer. A degree is what you want, and if you can't get a degree, at least get some formal education in computer science or the arts.
If you want to learn programming, learn programming. If you want to learn art, learn art. But please try not to confine your education to the curriculum of "game design" (whatever the school decides that is). Employers are usually looking for a strong portfolio in addition to a strong education.
I highly suggest getting a degree. At a community college this is usually an associate's degree. If you like game design, look for a degree in computer science. Talk to your advisor about a minor in art. Some colleges offer an associates in applied science, which is very hands-on and can help you start a portfolio while you're in school. Seriously, talk to your advisor.
I'm suggesting a degree because it's more valuable than a certificate in the eyes of an employer. If you're in the U.S., depending on your state, you can transfer credits to a four-year college if you decide to do so in the future.
Employers are more keen to candidates who are perusing a degree than candidates who might get a certification. See if the college offers online courses (most do), which don't require you to be at the college. My local community college offers courses with class once per week.
I initially wanted to get A+ certified, but quickly learned that the employers where I live simply don't care about certifications. My professors worked for places like Intel, the US Air Force, and one ran a small game company. Not a single one ever had a certification like what you're describing. I graduated with an AAS in IT, and later transferred to a four-year college to pursue a bachelor's in CS.
I worked for an IT helpdesk that handled hardware repairs on desktops and laptops- nobody, not even the manager, had A+ certification; I got the job because of my degree. Again, they didn't care about my lack of certification.
By all means, if you think the certificate will help you, do it! In fact, there are many game companies who care very little about education. As I mentioned before, portfolio is extremely important, but at the same time a good education is arguably just as valuable.
I run into this problem with pretty much every creative thing I want to take on. For me, at least part of it is a persistent perfectionist streak. I don't want to write crappy code, or make crappy music, or do crappy design work. I want to be jaw-dropping brilliant at everything first, and then make stuff. Naturally, I never get anywhere close to that. (And even if I did, I'd undoubtedly find myself bored. "I know how to do this already, why bother?")
I think the trick is to learn just enough to do something, and then have at it. Learn by doing. Remember that you're not building a bridge that might fail and kill a bunch of people; you're making a game. You're absolutely entitled to screw it up in the most outlandish manner possible. Perhaps it's even preferable to do so, given how much you'd learn, both about the process, and about yourself.
We all tend to get the "learn the rules before you break the rules" speech from everyone, but I would argue that that is the source of a lot of tepid, too-tentative, safe-as-houses creations. The more rules you learn, the deeper the groove of that way of doing things gets dug out in your brain, which makes you less likely to experiment with things outside your comfort zone, be it greatly or infinitesimally.
Personally there are a whole host of far uglier reasons why I struggle not to denigrate the things I create to the point of lunacy, but I don't have a chaise longue, so I'll spare you that litany.
A friend of mine is a professional indie dev and contractor; he showed me some of the code to a hugely popular survival game (I feel I can say that without narrowing the field) and let me tell you, it was a fucking nightmare. A nest of if statements handling inventory. Fucking gross.
But guess what? Not only did the devs make millions on it, but the consumer got their money out of it too.
In indie dev, just making something with unique ideas is vastly more valuable than proper architecture. This kind of advice will hamstring a lot more of the people that have the creative chops than it will help.
I think it's very important to have something you enjoy on the side, as well as having a job. If your job doesn't offer that joy, keep developing games.
Ultimately, game development is no cakewalk. If you're really passionate about turning game development into a career, you will be motivated to put in the effort.
Finally, a suggestion. If you have very little time to spend on coding, then I would recommend making a transition to C# and Unity. C# is similar to Java, so you should pick up C# pretty easily. Why I suggest Unity/C# over Java is because Unity is a well established software designed for developing games with a massive community.
If you've been developing Java games in a framework like LibGDX or LWJGL, which force you to code most of it yourself, using a game engine like Unity allows you to quickly get that sense of accomplishment from seeing results.
A little anecdote of how game development can start as a hobby:
My friend Alonso Martin was working on Heart Forth, Alicia for many years as a hobby, always intending on releasing it for free. I bugged him lots about giving up on that and trying to sell the game, and at some point he decided to.
He built a Kickstarter, got 300 grand, and now works with composers and marketers and his game is coming to major consoles.
Anything can start as a hobby.
So I'm assuming you want to go into game design?
A little background on me, I was drawing little sonic levels when I was five. I've posted on game design forums throughout my life, programmed several terrible little role-playing games in high school, and I have notepads filled with little ideas.
If you are anything like I was in grade 12, you already know something about balancing games, level design, game mechanics, and crave more. I think you should also have a look at some mechanics that are just for polish.
The major things I learned about game design is a game programming, shaders, animation, 3D modeling, texturing, sounds, how long it takes to create these assets, how everything comes together in a game engine, a workload wake up call, and finally you have to truly screw up one game as a large team once to understand how to really plan properly.
You need to understand these things, since game designer is basically a semi-management position. I will also warn you that for that reason no one usually hires a designer, instead they usually hire someone who works on the above, then those people already on the production team prove themselves capable of a design role before moving roles.