until now every tutorial I did was teaching one “small” part of a game, e.g. building 2D platforms, character, enemies etc…
*Now I want to know how to make a whole game out of it. Lets say a level-system like this one in candy crush (just an example ) , where you succeed one level and on the level-map you jump to the next one.
*And is one scene = one level (maybe these are just term) ?
*How do I build everything together, knowing that a lvl is unlocked, etc…etc…
*Do I need a server for this when I wanted to publish it on Facebook ? For all the highscores etc or is everything running via fb ?
*Are there any good tutorials on Facebook integration for a game. The one from Facebook isn’t quite working for me.
*Are there any good tutorials on bringing a game together (levels,menu,etc…)
I hope someone can give me a hint. You don’t have to answer every question
I would suggest reading more into coding in Unity or watching some tutorials. Or better yet checking out the unity documentation. There’s not one place to learn how to make a game, all you have to do is put all the pieces together to complete it.
The good news, is you’ve already clued into a fundamental aspect of software design - software is composed of multiple parts. Where you’re going wrong is trying to unify it into a single monolithic thing.
Ideally, each part of a game is separated such that it has minimal dependencies on everything else. By that, I mean a platform isn’t functionally tied to the player controls; the player controls aren’t functionally tied to the health system; et cetera. The tutorials are teaching you to keep the components simple, because this is the most effective way to create a game.
As far as ‘tying it all together’, which is what I’m seeing your deeper question as, you’re looking for synergy, or things that work well together. You have a player who can move in a side-scrolling context. You have a platform, that, when stepped on, starts to fall, causing the player to need to jump to not die in the death trigger at the bottom of the level.
I recommend going back to the basics with this modular concept, and looking for it. Play the original Super Mario Bros., or the first Final Fantasy; those are both simple games, that with a little experience and thought will allow you to see what the components are, and why they work together so well.
All people are given, are thousands upon thousands of pieces. Even books designed to “put the pieces together” do not really succeed in doing even that. It is more along the line or providing you with a piece made up of even more pieces.
Unless your game is simple or you have a mentor who has made complex games before, it takes quite a bit of headache and frustration- not to mention clueless googling and failed attempts at doing something yourself.
With the exception of those willing to reiterate their work repeatedly until it is finally correct, this is the reason for lower quality games: simple mechanics, lack of dynamic gameplay, lack of depth, lack of innovation, etc. Because making a good game is just plain hard. Not because it is actually difficult, but because very few people actually have experience doing it. Even fewer are going to teach you or provide you with something tangible. Even “the greats” have to write books that are extremely general about such a comlicated subject- because no one else will even write that! This is also a huge reason why the indie go-to is a platformer with “one feature different”. It’s also why designers like Richard Garriott say game designers suck. It’s also why game designers suck.
Who is there to teach you? No one, lest you are fortunate enough to have someone in your personal or professional life to hold your hand. Unless you have a spectacular teacher, most formal learning does not teach game design, or even game architecture. Informal learning is even worse. Google is next to useless, because of the enormous amount of noise among people who know nothing, people who pretend to know everything, and people who argue semantics- all screaming at the top of their lungs about the “right way” which is usually the wrong way. Or if not the wrong way, it is totally side ways to what people need. All those who are actually competent are busy making games, are busy making games! The exception being those few handful of individuals who are both good at game dev AND somehow have the time to bless others with education. I’m not saying those people don’t exist… only that they are extremely rare.
It’s not a game development thing. It’s a software development thing. And unfortunately problem solving skills are something that you just need to put time into learning.
My suggestion is to break down the problem you’re trying to solve into the smallest pieces possible. “How do I glue the bits of my game together?” is a huge and unanswerable question. I mean, even if I were to try to answer and somehow magically knew both what you had and what you were trying to achieve in detail, how could I? Where do I begin? How many books do I write? Which solution of the many available do I choose?
However, “How do I make a the Play button in my main menu load my first level?” is a question that can potentially be answered. It’s still pretty big, but it’s manageable. And then “How do I make my Options button go to a screen with some settings?” Again, far from trivial, but doable. And then “How do I make my volume slider effect the volume of my game?” That one’s actually (potentially) easier. And on and on, until you’ve managed all you need to get done.
And also, the smaller and more specific your questions are the more likely you are to be able to find or figure out answers on your own. Asking is good, but you can’t always rely on others to give them to you. But getting small and specific questions already helps you find the answer, as the field of knowledge required to find the answer is far more focussed and you’re more likely to know what to look for.
And then next time, you won’t need to ask as many questions because you’ll know a lot of starting points already. Actually… strike that first bit, you’ll always be asking questions, more and more and more, all the time. But you’ll get more skillful as to what questions you ask, and you’ll get faster at answering them.
Ahem… I strongly suggest not over-relyong on Google or tutorials. First try and break things down and answer some of the bits yourself. The problem with tutorials is that they’re designed to demonstrate features or concepts, they are not designed to solve the particular problems you are facing, and as a result kludging a bunch of them together is likely to result in poorly written stuff that not even you understand. If you do look for stuff, look for as specific a thing as you can.
That post (CarterG81’s not angrypenguin’s) is riddled with expectations and/of entitlement. If you want to do something in life, and are expecting that someone is supposed to come by and teach you every step of it, life is going to be full of disappointment. Games (and tech) is a developing field, and one of innovation. It isn’s a simple set of skills you learn. It changes. People who are successful at it are constantly learning and growing and doing things that you can’t “google” or rely on someone else having already figured it out. Of course the “greats” write books that are general. Because the theory is the important part. If they were to write detail technical books, they would be outdated by the time the finished writing them.
There are tons of resources and very skilled people who are willing to share and educate, I have had the great opportunity to learn from some of the best developers and artists (even from one my heroes of game design) over the years. The thing is, it is not passive. For example, Will Wright isn’t going to teach you how to make a main menu in Unity, or teach you the difference between a “for” and a “while”, or any of the hundreds and thousands of things that you can learn from simply reading. Making games is easy. Doing it well is what is hard.
This is certainly not true of life, less complicated science, and tried-and-true practice. At least not for me, anyway. Perhaps being intelligent makes life easier for me than it is for other people, but I find that hard to believe. Especially given my belief in the high capacity of intelligence of the average man.
Learning to program games, or any complex software for that matter- is not the same as learning how to become a good plumber, how to develop philosophical thought, or even what reaction occur in chemistry when combining different compounds.
Programming doesn’t just include one idea or another. It includes engineering, architecture, design, psychology, science, math, and art. I’m not even referring to art as in game art. I mean art as in, the art of… beautiful programming.
If you don’t believe me, then look at the completion rate of college students in computer science degrees. It is not uncommon for someone to say “My class started very large, and ended with just me and one other guy.” It is not uncommon for people to dream of making games or programming software, and then run screaming to the hills at how horrific it actually is.
It is absolutely ridiculous to claim I am entitled and expect too much. There are tens of thousands of people in game development. It is not “too much to ask” for the clueless pretend-to-know-it-alls and the ridiculous noise to lower in this area.
My “high expectations and entitlement”, if shared among most people, would create better quality games. People will prosper when they’re taught effectively, by good teachers. Leaving it to the dogs to fight for scraps on their own will only result in a handful of quality game developers, many mediocre ones, and a HELL of A LOT of horrendous ones.
What a shame indeed. I find it strange that someone would believe I am entitled simply because I want a vast majority of clueless know-it-alls to stop dishing out misinformation or useless noise in the topic of software development or game dev.
This is usually just noise. You act as if I have no experience browsing google or discussing topics with other developers. What you call “tons of resources”, I call a shallow waste of time. What you say are “very skilled people” usually turn out to be useless know-it-alls who gloss over the more obvious solution.
The information is out there, for free, to learn anything. Is that information quality documentation? Is it void of silly bias or fan-boyism? Is it exclusive of people who regurgitate what they read when they have next to no experience in the subject?
Hell, I even read people with tens of thousands of reputation on sites such as StackExchange, who claim to be software programmers (and have a career to show it) who say the dumbest statements possible. Almost like a crazy fundie. One in particular is supposedly “a great programmer” but spoke about how “Vectors are the only container you should use in game dev. All other containers are evil.” And no, he was not being silly when calling maps, lists, and other containers “evil”. Despite the rebuke of more intelligent programmers, evidence to the contrary, and the obvious fact that vectors are not a catch-all solution to all game dev problems, he still believes as much. Just like thousands of others who seem quite incompetent at their jobs.
I even know programmers who were self-educated purely off of google. Some surpass others with ease because of their talent, while others are shoddy hacks because of all the noise they bought into.
No one would ever expect him to. This statement is beyond silliness. Any person you believe thinks this, is an imaginary person.
The simple fact you state “Making games is easy.” just goes to show how little we should regard your opinion. I’m sorry, but have you ever even programmed outside of a game engine like Unity? Any game worth a glance is certainly not an easy thing to create. Unless you refer to “easy” as the actual physical work and repetitive (but obvious) tasks required to make a game. Yes, it’s easy to create a game loop. No, it’s not easy to make that one particular class which holds intelligent A.I. or game-friendly procedural generation.
Also, I am pretty sure that for those who create games, especially the greats, they do not say “Oh, that was easy.”
Try emailing Will Wright or Richard Garriott and ask, “How easy was it to create your most popular games? Super super easy, or just super easy?” Doing one or two particular tasks are more than likely going to be easy. Games are not one or two particular tasks. They are enormous undertakings, and even the simplest of game can be quite complicated.
But I guess I’m just entitled to expect people to not dispense advice unless they know what they’re talking about (less noise) and for formal and informal learning to be held to a higher standard.
My statement regarding entitlement and expectations stem from from your post. It repeatedly states the “problem” is that no one is properly teaching/instructing/mentoring. Or that books and online sources are horrible resources. The reality couldn’t be farther from the truth. The amount of quality resources is staggering. Google is pretty much a coder’s best friend. You can find development logs/diaries and post mortems that are invaluable from some of the top developers. Compare this to even just a few years ago. It is a completely different world for developer who are learning now than previously.
Sure there is noise and tons of it. But complaining about it is pointless. It not only won’t ever change, it will just increase. It doesn’t take much in the way of critical thinking to sort the wheat from chaff.
Maybe delusional would be a better term? Rather than blaming and wanting the rest of humanity to conform to what your personal desires are, wouldn’t it be much simpler to ignore then and get on with making games? And really, you just ranted on about all the “problems” with game development, and people and society in general. How are you not part of the noise you are complaining about?
Yea… I wasn’t talking about random google searches or blogs. The resources and people I am talking about are my peers in the industry. The thing about game development is that is always changing and evolving. Virtually everyone professionally in the industry shares the common trait of always learning and seeking knowledge. Because of that, many places have a culture of learning. Virtually everywhere I have worked has had some sort of skill sharing whether formal or informal. Where I am now it is very formalized and everyone is encouraged to mentor and teach. Its just part of the job. We have many courses/workshops/lectures every week. Across all areas of development from figure drawing to server maintenice. I myself teach Unity courses once a week. Learning and sharing skill is ingrained in industry. It has to be, things change very rapidly. Even outside of something like that there are tons of groups and organizations that have educational opportunities. I don’t think a week goes by without at least couple of Unity seminars/lectures/workshops in the area. If you really don’t believe there is an absolute wealth of available knowledge and learning opportunities, you are looking the wrong places, and really missing out.
You should definantly seek out better resources.
So? Who cares? Are they working on your game? Just ignore it. Certainly many engineers do have some “fundamentalist” beliefs. Just because someone makes a claim, doesn’t mean you are required to accept it. Dismiss it and move on.
That was in response to your complaint that the greats only write about generalities. I am glad you understand the concept.
Heh… yes. Many games, many tech stacks. In fact, this year will be my first Unity-based release.
That was exactly my point. The knowledge and skills required to a create a game is easy to obtain. It is very easy to make a game. (just look at places like kongregate). The concentrated effort, drive and application of those skills to produce a quality game is hard work and dedication. Running is easy, as is riding a bike or playing football. Winning gold medals or trophies for those things requires more effort.
It is unrealistic to think that people can teach you in detail how to make a successful game, or that it is somebody else’s responsibility to do so. The application and effort required to make a quality game can only come from within. I would be like complaining you aren’t rich because no one has given you money. You learn the best you are able, research … effectively… then get serious and put in the effort. Certainly no guarantee of success, even the top developers will usually have more fails than wins, but you can still make quality games.
Welcome to the human race. People have been doing that since we could first communicate. It is very silly indeed to have any expectations about other’s opinions, or that they will conform to your standards.
You need to learn how to learn more effectively, instead of expecting others to teach you more effectively. Your feelings of entitlement and expected behavior of the rest of the human race won’t make you any better at making games. Only effective learning/research and effort will do that.
Step away from the code whip out a pen and paper then play a game… See how it’s all put together in pseudo code and then replicate it in code. Shouldn’t be much more difficult than that, e.g. I press up and I move forward, how does that happen (Google the terminology, find out how it happens then find how to code it)? I click a GUI object and a menu opens, how does that happen? etc. etc. all these little actions in turn end up to a completed product… You could just get by with the basic Unity tutorials and the Unity documentation, in fact I recommend people do so as some tutorials can end up causing more confusion.
Even if you don’t know how to code, putting a game together isn’t what’s going to stop progress necessarily… Which ties into what someone else said on this thread. There is no art of beautiful programming, programming genius is a myth. It’s down to time and effort, nothing more nothing less! everyone learns differently, I learn by developing and breaking software and I’ll go out of my way to make things crash so I can understand why I did it. If a tutorial can’t break the content down into plain English (or insert language here), then it’s not worth learning. There’s a difference between rambling jargon and understanding the material thoroughly enough that your peers and beginners can easily understand it.
Criteria check:
Can my peers easily understand my code? (If yes then move on)
Does my code cause performance issues? (If no then move on)
Does my code cause crashes? (If no then move on)
Do I at least put some thought into what I’ll be adding to the framework later? (If yes then move on)
Can I simplify and optimize to improve the above? (If yes then move on)
If the code matches the above criteria, then you’re on a winner… The end user playing the game, doesn’t care at all how intuitive the code is or how you’ve managed to find new clever ways to become the Uber Coder… When I play a game, I expect it to work!! There’s nothing more too it IMO. From what I’ve seen lately, if a game developer manages the above there one step ahead of the AAA dev’s working on some of these games.
@Dxcam, how will a video on the creation of C++ help someone use Unity bar add additional confusion? IMO and this is my opinion only, whilst hugely flexible C++ is something I’ll avoid if I can… It’s just unfortunate that I can’t and never have been able to (even for code examples for the likes of OpenGL). If C# completely replaced C++ I’d jump for joy and never look back!.
Coding for me is a means to an end, I do thoroughly enjoy coding but it’s nothing more than a tool to create what I want… A GAME!