Best computer & video game strategy guides according to redditors
We found 3,128 Reddit comments discussing the best computer & video game strategy guides. We ranked the 830 resulting products by number of redditors who mentioned them. Here are the top 20.
Hey! This is a really cool project idea, especially for a tutorial, but there are some things in the code that concern me.
Before I go any further, a disclaimer: You are not your code.
I work in the industry at a very big studio as a gameplay programmer, and there are a couple parts of this code that I saw right when opening the github that made me want to comment about code quality.
In Animated Sprite - you take in a file path and load an image directly from disk. This, on a large scale, will cause problems at load time. It could be ameliorated by doing all asset loading up front and maintaining a manager to dole out references to them in memory instead of from disk.
Secondly, Enemy inherits from Animated Sprite. This breaks a few rules, specifically the IS-A relationship in inheritance (also covariant problems. This is why the industry as a whole favors composition over inheritance. An enemy that is renderable might have a sprite to render with, but it wouldn’t BE a sprite.
There are other criticisms, but I’ll stop here. What I wanted to say was – Caveat Emptor. This is a fun project to learn what goes into a game, and no one here should quit based on these criticisms, especially if it inspires your passion. Rather, use this as an avenue to learn good software practices that can actually land you a gig in the industry.
A good resource for this project might be Game Programming Patterns or Game Engine Architecture.
Sorry if this came across offensive, but since this is r/learnprogramming, I figured it was a good chance to learn.
EDIT: Formatting
EDIT: GOLD?!
Interesting, well put together!
EDIT: For anyone who wants even more background info Half-life, in particular Half-life 1 and Half-life 2, I recommend the book called Half-life 2: Raising the Bar.
Oh oh, I get to brag now! Thanks for summoning me, /u/costofanarchy!
I was in his first class there! Characteristics of Games. He and Skaff were working on their book, which I'm thanked in. Likely for my work as their TA the next year, after which Skaff hooked me up with an interview my first game design internship. [Edit: I'm still a game designer to this day! Big thanks to them.]
Fun fact! One day after class they asked me "so how do these new Planeswalker cards work?" It's not every day I get to brag about explaining to Richard Garfield how a new Magic card type works.
Shit, that was...like ten years ago. Time, man...
Anyway, in my memory Richard is a pretty calm teacher. Certainly knowledgeable, but the class was pretty basic and targeted at a wide crowd. A good intro, for sure. I bet he'd shine in a deeper discussion, and at the time he was usually willing to chat before or after class. He's somebody that tends to be careful with his words. Skaff has the stronger personality in that setting, so he tends to stands out more in memory. They're a good team.
First of all, I wouldn't recommend learning game coding by looking at a codebase, the biggest reason being that all games are different and are using different techniques (obvious one being 2D vs 3D, but you have tons of differences between a FPS, a RTS, an open-world, etc).
I would recommend to find books or articles that explain why a certain technique is usefull, the coding language doesn't really matter, the technique itself is what is important (As you are saying it's for learning purposes and I don't think it's quite interesting to understand data-driven programming, cache optimization or 3D APIs optimization for C++ when you are first trying to understand a game structure).
I can recommend two really good books :
And website like Gamasutra have lots of good articles to look at. You can also look at HandMadeHero when Casey Muratori is explaining in details why he is doing what he will programming later on the show, his website is worth looking at too with some really good talks. Lot of good talks can be found at GDC, not all of them are free but a good portion are.
If you still want to learn only from codebase :
Happy game programming :)
EDIT : Fix format
EDIT 2 : Changed open source to publicly available sourcecode
I've been working on games for quite a long while so I picked it up here and there.
I haven't gone through this particular series myself, but I've browsed through it and his (thebennybox - everything he makes is high quality) series on creating a software renderer, and they are fantastic!
https://www.youtube.com/watch?v=ss3AnSxJ2X8&list=PLEETnX-uPtBXP_B2yupUKlflXBznWIlL5
This is by far my favorite book:
https://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010
I'd recommend thebennybox's video series first, the book may not be quite as beginner-friendly.
Guy in the picture here: Got her some DnD Setting Candles with a whisky/fireplace Tavern scent and a citrus/fig Farmland scent. We'll use it for more scenery in our games and we love candles. Also a preorder of The Elder Scrolls Cookbook so we'll be making a ton of fantasy food in the future. Lastly, a date to a nearby fancy medieval inspired restaurant
As Jane McGonigal points out in this awesome book about saving the world with video games, the cumulative man-hours its taken to create Wikipedia is about three days of World of Warcraft man-hours. In other words, if WoWers set out to make a Wikipedia-type project, they would accomplish it in three days.
Also might add she has a couple of books out too:
Amazon links for the lazy:
Art of Game Design, 2nd Edition
Designing Virtual Worlds
A Theory of Fun
3D Game Engine Design
Essential Mathematics for Games and Interactive Applications
The book.
Books: Theory of Fun for Game Design and The Art of Game Design: A Book of Lenses
As an aside, this:
> This will almost guarantee low self esteem because we esteem ourselves for doing esteemable things--accomplishing things, meeting challenges and overcoming them, taking on difficult tasks and succeeding, having a job and paying your way through the world. At the point that you are lazy and don't like yourself very much it becomes really easy to isolate and end up picking up hobbies which tend to isolate you further (video games, obscure and obnoxious media like anime--the seizure-y Japanese cartoons). It becomes natural then to connect with online communities of similarly isolated folks: hence, neckbeard.
Is quite a traditionalist viewpoint which greatly underestimates the potential of the individual. Video games are constantly written off as wastes of time because they do not produce any quantifiable, real world products. But they do have their benefits in developing a person. I can almost guarantee that the games this guy is playing is something like World Of Warcraft/DoTA/miscellaneous fantasy role playing game. These games offer pretty much exactly these things: accomplishing things (levelling, questing), meeting challenges and overcoming them (combat), taking on difficult tasks and succeeding (raids), having a job (role play) and paying your way through the world (economy). Do not underestimate how hard those types of games are, and how skilled the best players are. The AVERAGE young person of today will play 10,000 hours of video games before they are 21. According to Malcolm Gladwell, that makes the average young adult an expert in video games. Imagine how much a person obsessed with games has played. Don't be mistaken in thinking that time would be spent in a state of constant overstimulation, either. There is a lot of hard, repetitive, frustrating, tedious graft involved. But it is pursued because there is a set goal for every action in these games. Every wild boar slain is verifiable as a step towards a greater goal. This is really hard to find in reality, where goals are often ambiguous or non-existent, and your personal progress is not easily judged.
I used to play a hell of a lot of video games in my teens. I wasn't exactly a layabout, I did work (at a mind-numbing job) 8 to 5 on weekdays. All of my spare time was sunk into games though. Honestly, I didn't play them for the sheer enjoyment of the gameplay. I played them because they provided a very obvious framework for personal improvement (albeit virtual) in which I was ALWAYS progressing. I was also one of those students that seemed to have great potential but little motivation. The motivation was lacking because there wasn't I never had that goal-setting and progression framework. I suspect this may be true for many young video game obsessives these days.
I discovered this after making a concerted effort towards getting into shape (I was under 130lbs at 6'1, underweight). I loved how direct the feedback is from working out. Every rep of the dumbbell burns the muscle you want it to. Every finished workout leaves your muscles pumped, and achey the next day. Every week the scales tip in your favour if you worked hard, or against you if you didn't really work (or eat right). This is EXACTLY how many hardcore games work, except they flash the feedback in your face every few minutes of play. With pretty graphic design. And with a congratulatory musical motif. And a badge. And a new piece of armour or weapon skin.
Translating the kind of affirmation framework that games offer into the real world is SO fucking valuable, especially for enlivening obsessive gamers. For me I became so involved with personal development in the real world that games kinda fell by the wayside. I still really enjoy playing. I just don't nearly as much because I also have other pursuits to be getting on with. This book is a fantastic read on the growing obsession with games, and how gamers can translate their in-game experiences into real world value.
this is all from this book I have sitting next to me. Half Life 2: Raising the Bar. it tells you how they went about making this game and the hard work, earlier drawings ETC...
buy one here for a lot of money
First, I would buy
What you do next is going to depend on what kind of game you are creating. Remember an game engine is only a tool used to solve a higher level problem: (Em)power a game
Are you creating a 2D game? A 3D Game? Let's walk through an example. Pick a game to clone. Let's say we want to write a Minecraft-like game but use modern OpenGL. i.e. Using shaders. How would you start?
TL:DR; You should always be asking yourself this question:
Hope this helps.
Edit: Updated the philosophy.
37.95$ or 32.05€ over at amazon.com. Ordering it right now. Fantastic.
To expand on what /u/LordNed said...
Your project is too big for a first project. Aim smaller than you think you should. Start with something like pong or tic tac toe, make that work, then do something slightly bigger.
I hate to break it to you, but most of what you learned in school is not going to be applicable to gamedev, and worse, you'll likely have a lot of bad habits you'll need to unlearn. The state of CS education in general is... terrible.
To answer a few of your questions:
Start simple!
I find tutorials to be decent for learning how to perform simple tasks which don't require much variation or novel problem solving. As it turns out, making games is pretty much the exact opposite of that. I know from experience that it can be frustrating to find information on stuff like architecture and system design for games, but a lot of that is pretty much tribal knowledge, learned by professionals on the job or by hobbyists as they make projects.
I recommend reading articles on Gamasutra for more advanced topics, and I also recommend the book Game Engine Architecture by Jason Gregory. I think really the best thing you can do is try to do a more complicated project and as you run into problems you have trouble solving on your own, then research that specific topic. It's worth trying to solve the problem on your own first though, as while it may involve reinventing the wheel somewhat, it's also the best way to learn.
Yes indeed.
https://www.amazon.com/Elder-Scrolls-Skyrim-Library-Histories/dp/1783293195
For anyone looking for them. You can find the others in related items.
https://www.amazon.com/dp/1783293195/ref=cm_sw_r_other_apa_r9f4xbD4KT864
You have a long journey ahead of you, but here goes :D
Beginner
C++ Primer: One of the better introductory books.
The C++ Standard Template Library: A Tutorial and Reference: Goes over the standard template library in fantastic detail, a must if you're going to be spending a lot of time writing C++.
The C++ Programming Language: Now that you have a good idea of how C++ is used, it's time to go over it again. TCPPL is written by the language's creator and is intended as an introductory book for experienced programmers. That said I think it's best read once you're already comfortable with the language so that you can full appreciate his nuggets of wisdom.
Intermediate
Modern C++ Design: Covers how to write reusable C++ code and common design patterns. You can definitely have started game programming by the time you read this book, however it's definitely something you should have on your reading list.
C++ Templates: Touches on some similar material as Modern C++ Design, but will help you get to grips with C++ Template programming and how to write reusable code.
Effective C++: Practical advise about C++ do's and dont's. Again, this isn't mandatory knowledge for gamedev, but it's advice is definitely invaluable.
Design Patterns: Teaches you commonly used design patterns. Especially useful if you're working as part of a team as it gives you a common set of names for design patterns.
Advanced
C++ Concurrency in Action: Don't be put off by the fact I've put this as an "advanced" topic, it's more that you will get more benefit out of knowing the other subjects first. Concurrency in C++11 is pretty easy and this book is a fantastic guide for learning how its done.
Graphics Programming
OpenGL: A surprisingly well written specification in that it's pretty easy to understand! While it's probably not the best resource for learning OpenGL, it's definitely worth looking at. [edit: Mix it in with Open.gl and arcsynthesis's tutorials for practical examples and you're off to a good start!]
OpenGL Superbible: The OpenGL superbible is one of the best ways to learn modern OpenGL. Sadly this isn't saying much, in fact the only other book appears to be the "Orange Book", however my sources indicate that is terrible. So you're just going to have suck it up and learn from the OGL Superbible![edit: in retrospect, just stick to free tutorials I've linked above. You'll learn more from them, and be less confused by what is 3rd party code supplied by the book. Substitute the "rendering" techniques you would learn from a 3d book with a good 3d math book and realtime rendering (links below)]Essential Mathematics for Game Programmers or 3D Math Primer for Graphics and Game Development: 3D programming involves a lot of math, these books cover topics that OpenGL/DirectX books tend to rush over.
Realtime Rendering: A graphics library independent explanation of a number of modern graphical techniques, very useful with teaching you inventive ways to use your newly found 3d graphical talents!
The Legend of Zelda: Breath of the Wild The Complete Official Guide: -Expanded Edition https://www.amazon.com/dp/1911015486/ref=cm_sw_r_cp_api_i_ZuaCDbWP8MN0Q
Game Coding Complete was the book we used in my game programming course during my bachelor.
Might as well start this with a book for programmers despite not having fully read it but it has given me a lot of insight on many things about game engines and how things should be done.
Game Engine Architecture by Jason Gregory
Characteristics of Games - by George Skaff Elias, Richard Garfield, K. Robert Gutschera, and forward by Eric Zimmerman.
(Updated the authors. Thanks to /u/esoteric23.)
> do I need to learn one of Unreal/Unity to work for a game company?
no
build something in C or C++ or even java
have you read this ?
https://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010/
or
http://www.gameprogrammingpatterns.com/contents.html
have you learned opengl https://learnopengl.com/
have you read any of the books suggested here
https://www.reddit.com/r/gamedev/comments/5te5t5/which_books_would_you_recommend_for_game/
https://www.reddit.com/r/gamedev/comments/63sxr3/what_books_are_in_your_game_dev_library/
are you familiar with the concepts here
http://www.gameprogrammingpatterns.com/game-loop.html
https://gafferongames.com/post/fix_your_timestep/
http://www.koonsolo.com/news/dewitters-gameloop/
you might want to consider watching his videos
https://www.youtube.com/playlist?list=PLrOv9FMX8xJE8NgepZR1etrsU63fDDGxO
^ those are all C++
or the first 43 videos of here
https://www.youtube.com/user/handmadeheroarchive/videos?flow=grid&view=0&sort=da
videos "Handmade Hero Day 001 - Setting Up the Windows Build" through "Handmade Hero Day 043 - The Equations of Motion"
^ those are all in C
the important thing is to just start making something
learn, develop skills, and build a portfolio
read the story of Stardew Valley
https://www.gq.com/story/stardew-valley-eric-barone-profile
^ no unity, no unreal .. just a CS grad teaching himself to make games
Also for books I really liked Real Time Rendering as in introduction to 3D
Apparently Bethesda wanted a piece of that action, they made some bound versions too:
https://www.amazon.com/Elder-Scrolls-Skyrim-Library-Histories/dp/1783293195/ref=sr_1_1?ie=UTF8&qid=1492731306&sr=8-1&keywords=Books+of+skyrim
I don't game anymore myself, save occasionally and rarely.
Of course there's nothing wrong with entertainment and diversions, and certainly nothing wrong with games, of themselves.
But people who get sucked into video games, and spend a good portion of their life and effort in it, are wasting their lives away, in my opinion. And I think it's unfortunate, and all too common.
People who game obsessively do so because they find their real lives unsatisfactory. So, they look for distractions. This is a similar impulse to people who lose themselves excessively in sports, fantasy stories, and so on.
Video games are literally designed to keep one engaged and returning. Just enough challenge to keep things interesting. Too easy, or too difficult, and most people simply walk away. But that sweet spot between easy and difficult, eustress, keeps pressing that dopamine button in the brain. And one gets hooked.
Compared to games, real life is far "too difficult." But here's the thing: the rewards for applied effort in real
life are much greater as well.
I like to think of myself struggling to "level up" in real life. Building a better career, better physical health, better social networks, more wealth, better family life, more knowledge, and so on. Sometimes I do well, and sometimes I struggle and I fall behind; but when I get it right, when I apply myself with the right habits, right disciplines, and correct methods consistently and regularly, the rewards are real, and way, way better than in games.
If I'm a hero in a game, that heroism is over the instant the game ends. But if I become a badass in real life, that's a completely different thing altogether!
Not to say that there's no room at all for games in life, or that we should get rid of them entirely. We should, like anything pleasurable (food, alcohol, etc.) learn to keep our use at a moderate level, lest we become addicted and let it run our lives.
I'm not against video games per say. But I feel it's all-too-easy to get sucked in, and fritter away one's life in them.
I'd rather spend 10,000 hours mastering the guitar, than mastering Guitar Hero.
However, we can learn a thing or two from games. Check out the book Reality is Broken by Jane McGonigal. I don't agree with all her premises, she's far more supportive of gaming than I am, but it's an interesting and well-thought-out read.
Not C++ specifically, but if you happen to be developing in any sort of Object-Oriented way then Game Programming Patterns by Bob Nystrom is a must.
It's available for free online if you wanna check it out before dropping money on it.
For more by Jason Gregory, he wrote the excellent Game Engine Architecture which covers a few of these bits in detail as well.
Not sure I like the no producer thing personally. Isn't their job to make sure you can just get on with the skilled job you are being paid for while they take care of (read: delegate to minions...) the day-to-day generic tasks that would otherwise bog you down?
There are quite a few good book on this topic, that I would recommend, like Jesse Schell's The Art of Game Design, or Justin Gary's Think like a Game Designer. These books describe the process way better than I ever could, but I'll try anyway.From my personal experience I always start from an idea (hey, wouldn't moving fortresses be awesome?), then I start to think about what exactly fascinates me about that idea. Then I try to capture the awsomeness in game mechanics. From there I create a list of what has to be done to test the mechanics, do that (plus some eye-candy because I'm a visual person) so I have something to test. When I have something to test, I try to analyze what doesn't work and fix that (not in code, but in paper). And start the process again.
So basically once I have an idea, it's this loop of creating/refining mechanics, implementing them, then testing and analyzing them. Then I go back to refining.
If you often suffer from scope creep, there are several methods to battle that. Like setting yourself a deadline, always cutting a mechanic when you add a new one, etc. Don't be afraid to throw something out (it's not lost you can use the idea/mechanic in another project). A game is way better when it knows what it wants to be and throws away everything that doesn't contribute to that core experience (I mean they could add RPG elements to Call Of Duty Campaigns, but they don't because that's not what the game is about).
Also if you don't like your code, that's 100% normal. when you look back at something you've made, you'll always be able to spot something that you would do differently now. That's because you've learned new things since you started . I'm programming for nearly a decade now, and when I look back at code that I've written a few months ago I'm always like "Eww, why would anyone write code like that?". So don't be afraid to make mistakes and don't continuously refactor code. Make something, learn from it and do it better next time.
I hope that helps!
​
EDIT: spelling
I'd recommend Game Engine Architecture.
However I wouldn't worry so much about messing up. If this is a solo project then it's a great learning experience precisely because you have room to learn from your own mistakes-I know there's a classic programming quote which sums this up perfectly but I can't recall it just now.
Things change. Expect to refactor your code and rework your design later, and aim to make it easy on yourself when that happens rather than having a perfect but inflexible solution first time.
different cover but the same author/chef
For design, get the combo of Jesse Schell's Book of Lenses and Deck of Lenses.
For dev get Nystrom's Game Programming Patterns
https://www.amazon.com/Getting-Started-Dwarf-Fortress-complex/dp/1449314945
I think Game Engine Architecture by Jason Gregory (Naughty Dogs Lead Programmer) is a really good book for Game Devs working in programming. Not sure how it compares to 3D Game engine Design since I haven't read that. But the book by Gregory is really good and covers a lot in depth.
Hi PizzaPartify,
I believe that different companies/teams will place emphasis on different skills. When I was helping to hire software engineers for EA's motion capture studio, I liked to see candidates who showed a strong aptitude for engineering code to be maintainable. For me, this meant a familiarity with design patterns and software development processes (like Test Driven Development or Extreme Programming). In my department, much of our code was in C++ and Python. However, other departments would use languages like Java, C# or ActionScript - depending on the project.
It would be helpful to know what role you are applying to.
To answer your specific questions:
Regardless of the language you're working in, I would also recommend Design Patterns by the gang of four (http://www.amazon.ca/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612).
A game-specific recommendation is Game Engine Architecture by Jason Gregory (http://www.amazon.ca/Game-Engine-Architecture-Jason-Gregory/dp/1568814135). It doesn't matter if you intend to write an engine or not, it is immensely helpful to understand how they work.
I own all of the Game Programming Gems books but use them more as a reference library. The books above will be more helpful right now.
I hope that helps.
The Elder Scrolls: The Official Cookbook https://www.amazon.com/dp/1683833988/ref=cm_sw_r_cp_api_i_nnosDb23CCH0P if you get it and start cooking you should post too!
Bethesda sells it directly from their website, Amazon are the 2 most obvious places I can think of.
https://gear.bethesda.net/products/the-elder-scrolls-the-official-cookbook
The Elder Scrolls: The Official Cookbook https://www.amazon.com/dp/1683833988/ref=cm_sw_r_cp_apa_i_UP8zDbAEN2BZT
Edit: Barnes and Noble
https://m.barnesandnoble.com/w/the-elder-scrolls-chelsea-monroe-cassel/1128959748?ean=9781683833987
https://www.amazon.com/gp/aw/d/1783293195/ref=mp_s_a_1_1?ie=UTF8&qid=1468065744&sr=8-1&pi=SY200_QL40&keywords=elder+scrolls+book&dpPl=1&dpID=51a9o2n6g%2BL&ref=plSrch
http://www.amazon.com/Half-Life-2-Raising-David-Hodgson/dp/0761543643
25 Used from $80.60
12 New from $85.00
Well put. Values that seem intrinsic to unmitigated consumerism which, as you describe, appear to take root at the earliest stages of success/wealth.
Desire for power and money have always been there but we've exponentially multiplied the variety of things to want and have power over and compare ourselves to (your mark of distinction).
I never finished the book Reality is Broken but it begins by detailing the value of using common gaming techniques (points/rewards/achievements) to turn life into a game in places where it can be helpful; like house chores. Maybe she eventually covered this further in the book but it made me realize how much of life already plays out like a game whether we choose to acknowledge it or not. Social media is the poor man's wealth with all the personal validation extracted from likes, retweets and upvotes.
Its no surprise that in a world with billions of people we'd see people competing viciously over money and power. Once having tasted the rewards, humans apparently have a bottomless appetite for competition and personal aggrandizement.
Besides the obvious standards, there's quite a bit out there. Reality is Broken is quickly becoming my go-to book for introducing people to talking about video games. If you're less focused specifically on video games, then Hamlet on the Holodeck is basically required reading for any discussions about interactive narrative and Pervasive Games: Theory and Design gives a great introduction to pervasive games, which are definitely different from video games, but there's a fair amount of overlap in good design principles there.
Personally, I can recommend "The Art of Game Design" to you. It covers a lot of topics and is also a good entry point.
https://www.amazon.com/Art-Game-Design-Lenses-Second/dp/1466598646/ref=sr_1_2?ie=UTF8&qid=1540218109&sr=8-2&keywords=art+of+game+design
That sounds like a "kitchen sink" way of development. Keep adding features whenever the play testers sense a gap. It'll never end.
I'd contend that the healthier process would be to have a very clear concept of what the game is about at its core. With NMS, a plausible core could be "exploration". Then, whenever there is a perceived gap, the first question is if filling that gap will contribute strongly to the core. If not (or sometimes even if so), then ask a second question: What is causing the feeling of there being a missing feature? Is it possible to actually cut the feature that leads to the wish for the missing feature? Trim the fat, leave only the leanest meat clinging to the bones, so to speak.
I'm pulling pretty heavily from Jesse Schell's The Art of Game Design, in particular "The Lens of Unification":
> To use this lens, consider the reason behind it all. Ask yourself these questions:
> What is my theme?
> Am I using every means possible to reinforce that theme?
You're conclusions, and some of your facts, are wrong.
I literally write game engines for a living, I know about everything you just tried to explain, and it has nothing to do with my point. A 3d version of Factorio (
e.g. from scratchsee edit 2) could have the same number of game updates regardless of how expensive rendering is because they would be on separate threads. Even Unity and Unreal have separate rendering threads, it's been this way for 5+ years.Vulkan, DX12, and Metal all enable multi-threaded rendering, because older APIs would only allow a single thread to submit commands at a time. But they have nothing to do with the division of rendering and game logic into separate threads.
Edit: I own a copy of a Game Engine Book from 8 years ago that called one render thread, one game logic thread, standard industry practice.
Edit 2: Also, this FFF explains how they do have many different threads, for example, updating game logic and rendering at the same time.
You're going to need a lot of the same setup as you would if you were making a game, I think.
Have you seen the ogldev tutorials? They're pretty comprehensive and take you through building a lot of visual effects from the ground up. You'll need to cross-reference with other materials though because some topics on graphics you'll need to know the fundamentals on (like how relative coordinate spaces/scene graphs work conceptually).
Graphics development is hard, and requires a lot of study and conceptual understanding outside of just API usage. I've been picking up OpenGL/Gfx programming for about a year and I'm probably only a beginner-intermediate at this point.
I recommend:
Here's my general advice as someone in the AAA field as a programmer doing it for many years.
1 -----------------
If possible, think of your game in modular bits and primarily concentrate on the programming aspects. Block in the visuals with placeholder art if you need to, but a game with good design and mechanics doesn't need fantastic art to be fun (unless your game is animation driven or atmospheric like Dark Souls).
If you break your code into modular bits, you can tackle each part piecemeal and it's a lot more fun to work on. "This week, I feel like making a great input system. Next week, I'll focus on a data-driven AI engine", and so on.
2 -----------------
Keep things realistic. Understand what you can achieve and don't attempt to make a game that can do absolutely everything. Unless you actually want to spend decades making your game, you need to focus on actually finishing the game at a certain point... maybe. If your game follows the dwarf fortress model of being a perpetually unfinished game that you're always working on, that's also fun. Understand what you're getting into though if you go that route.
3 -----------------
Despite what you may think, ideas are not terribly original. It's all about execution. There's TOOOONS of indie games that are extremely successful and use an idea I had been thinking about. Unlike me though, they actually made the game and had the design sense to give it the production value necessary to sell well.
4 -----------------
If you're hungry to make something now, don't lose a hold of that. Keep learning in your spare time. Buy programming books off amazon to supplement your coding ability. I wasted too many years in university playing video games and not enough time learning to be a better programmer. A good high level starting book that can help give you an understanding of the overall picture is this: [Game Engine Architecture by Jason Gregory] (http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135)
Just as you need to learn construction before you can build a house, you need to learn how to program properly before you can make a game. Keep focused and try to shorten the years you need to spend learning by reading books.
5 -----------------
most important unless you're working with a large team, don't worry about having perfect code the first time through. No matter what you do, it's not going to be correct. Try to do it to the best of your ability, but if you worry too much about clean code, you'll suffer from "perfection paralysis" and ultimately end up not finishing anything. This was another one of my mistakes when I was younger and I still catch myself doing it nowadays on occasion. Sometimes making mistakes is the only way to learn.
Don't be afraid to do things the wrong way first.
edit: grammar, added a link to a great book (no, I'm not the author)
http://www.amazon.com/Real-Time-Rendering-Third-Edition-Akenine-Moller/dp/1568814240
This book is really, really good.
Seconded, Game Engine Architecture is the best book for an overall view on engine development. I've also found these books useful for implementing engine subsystems:
3D Math Primer for Graphics and Game Development is really good and covers everything I've ever needed it to. The examples are fun and easy to read/follow.
https://www.amazon.ca/Math-Primer-Graphics-Game-Development/dp/1568817231
The best high-level advice I've found on how to make a game comes from Magic: The Gathering's head designer, Mark Rosewater, called "10 Things Every Game Needs":
http://magic.wizards.com/en/articles/archive/making-magic/ten-things-every-game-needs-part-1-part-2-2011-12-19
On the more practical side, you might want to look at Brenda Brathwaite's Challenges for Game Designers:
https://www.amazon.com/Challenges-Game-Designers-Brenda-Brathwaite/dp/158450580X
And in terms of local resources, Toronto is somewhat famous for its board game cafes, especially "Snakes and Lattes". You can try out all different kinds of games there:
https://www.snakesandlattes.com/
Hope that helps!
It seems OP got it early
This is what all 900 koroks and 120 shrines look like plotted out on a map. Kind of looks like a splatfest because I just used whatever stickers I had.
In all honesty, it was a complete pain in the arse because I missed 7 koroks at the end, and I ended up using an online map anyways. It was very much an eye test throughout, and it didn't help that 2 weren't even on the map (I think). But I finally got them all.
If you're curious where I got the map, it came with this guide:
https://www.amazon.ca/Legend-Zelda-Complete-Official-Collectors/dp/1911015222 , and then I had it laminated it.
The Legend of Zelda: Breath of the Wild The Complete Official Guide: -Expanded Edition https://www.amazon.com/dp/1911015486/ref=cm_sw_r_cp_apa_ELrPBbXJHF151
I love this one ! It's got tons of information and beautiful illustrations
Excerpt from "Reality is Broken: Why Games Make Us Better and How They Can Change the World" by Jane McGonigal.
The book can be found on Amazon.com here: Reality is Broken
Ms. McGonigal's TED Talk can be found here: Gaming can make a better world
> ".... But beyond a certain playing threshold - for most gamers, it seems to be somewhere around twenty hours a week - they start to wonder if they're missing out on real life.
> Technology journalist Clive Thompson has a name for this phenomenon: gamer regret. And he'll be the first to admit that he suffers from it as much as any other gamer. Thompson recalls checking his personal statistics one day - many games keep track of how many hours you've spent playing - and was shocked to see that he had clocked in thirty-six hours playing a single game in one week - as he described it, "a missing-time experience so vast one would normally require a UFO abduction to achieve it." He found himself vacillating between pride in what he's accomplished in the virtual game environment and wondering if all that hard work had really been worth it.
> As Thompson writes: "The dirty secret of gamers is that we werestle with this dilemma all the time. We're often gripped by ... a sudden, horrifying sense of emptiness when we muse on all the other things we could have done with our game time." He admits: "The elation I feel when I finish a game is always slightly tinged with a worrisome sense of hollowness. Wouldn't I have been better off doing something that was difficult and challenging and productive?"
> This internal conflict plays out in discussion forums all over the Web. The twin questions "How much time do you spend playing games?" and "How much time is too much?" are ubiquitous in the gaming community . . .
> ... What's needed is for games to go beyond flow and fiero, which make us happy in the moment, to provide a more lasting kind of emotional reward. We need games that make us happier even when we're not playing. Only then will we find the right balance between playing our favorite games and making the most of our real lives.
> Fortunately, that's exactly what's happening in the computer and video game market today. Games are increasingly teaching us the four secrets of how to make our own happiness - and they're giving us the power to make it anytime, anywhere."
I'm still working my way through the book, but this seemed like a relevant excerpt to this discussion, esp. as to why this type of discussion is common on this subreddit.
Edit As an aside; the way I maintain interest in games is by playing a lot of online multiplayer stuff, mostly Team Fortress 2. As the situation is always changing and evolving it's easier to stay in the flow, and as I'm constantly running into players better them myself (difficult to overcome obstacles) the fiero stays pretty satisfying too.
https://www.amazon.com/Ultimate-History-Video-Games-Pokemon/dp/0761536434
Thanks for the book link. He is also coming out with a 2nd edition in July this year.
As for them not having producers with strictly that job title, I recall a story by a Naughty Dog programmer that he observed one of the senior programming leads working on some basic user interface code close to the game's shipping deadline. He was surprised at the time that the lead was writing code that would typically be done by a junior programmer at other companies. He told the story to illustrate that the idea of doing whatever grunt work it takes to ship a title and a feeling of responsibility for a feature from start to finish is pervasive at Naughty Dog. Jason Gregory also said that you can look at it as them having more producers than any other company, rather than none, since everyone shares the responsibility.
In a similar vein, Valve is famous for having a relatively flat structure with no managers.
Of course, every company is different and Naughty Dog's approach is not necessarily superior. They can get away with it because they hire high caliber employees. What works for them may not work for most.
You want example code? View the videos of the guy who rebuilt Cave Story (or at least parts of it, with a level editor, enemies, etc.). Or check out Handmade Hero. I think there's a Handmade Quake now, too. If you're really serious about game engine design, buy the book.
The reason I suggest other people's stuff is I spent a lot of time building code bases I called engines, not building actual games. I've made and published exactly one complete game that has about 10k views on Newgrounds.com right now.
There are better people to get advice on what to do right from. I'm a professional web developer now and know plenty about where I went wrong.
But I'll gladly chime in more advice if you're willing to hear it. I'd say the biggest difficulty people have when writing any complex code (whether it's games, infrastructure systems or business applications) is you reach a certain point where knowing how to code isn't enough. You have to know how to think critically about problems. That goes back to the problem space vs solution space ways of seeing things, which isn't really taught in school.
Games are a really difficult problem, that also have really difficult solutions. If you just straight into the solution space (let me start coding modules, oh, I probably need something that renders fonts at angles, etc. etc.) you're not going to get anywhere. In order to build complex things like games, you have to get better at programming for sure in order to make so many things work together, but unless you get really good at figuring out your problem space - what exactly it is you're trying to actually solve -you're going to waste a lot of code and time.
And that's one reason most people suggest you start very small. You should be able to code something like Pong in less than a day, probably less than an hour for sure. Even something like Extreme Pong should be mostly easy for you to churn out. But many people struggle with that.
As an aside, I will say that writing a library to perform easings made my life a lot easier. A lot of what takes place in a game can be considered an "tweening animation" of a value from one state to another.
https://github.com/Pritchard/FB-Easing
https://github.com/Pritchard/FB-Easing/blob/master/Easing.bas
I used those for in-game animations, to stretch and skew objects, etc. but that's often more about bringing out the flavour of a game as opposed to the core mechanics. (Like you want an object that falls, but falls violently and shakes when it hits the ground? Chances are that doesn't make a ton of sense from a physics standpoint, so you have to script it. Easings would be one way to script the y-axis value to mimic that behavior.)
> What are the changes between the two editions?
Aside from being updated throughout for new versions of Unity (eg. WebGL deployment barely existed when I wrote the first edition) there's an entirely new chapter about 2D platformers. One of the most common cons in reader feedback (whether or not they liked the book overall) was there wasn't enough about 2D games.
> After finishing your book what book/resource should the reader focus on next?
I would say focus on learning game design. My book teaches how to program a game, but that doesn't necessarily mean you're able to design an original game. The afterword of my book mentions several books about game design (including Art of Game Design by Jesse Schell, who wrote the foreword of my book!)
https://www.amazon.co.uk/Game-Engine-Architecture-Jason-Gregory/dp/1568814135
https://gameprogrammingpatterns.com/
the game so complex the book costs more than it
Hey there, I'm a game designer working in AAA and I agree with /u/SuaveZombie that you'll probably be better off with a degree in CS. BUT... don't give up on wanting to be a designer!
 
You should realize that it's not giving up on your dream at all, in fact, it's great advice for how to reach that dream. A designer with an engineering background is going to have a lot more tools at their disposal than one who doesn't.
 
Design is way more than just coming up with a bunch of cool, big ideas. You need to be able to figure out all the details, communicate them clearly to your teammates, and evaluate how well they're working so you can figure out how to make something people will enjoy. In fact, working on a big game often feels like working on a bunch of small games that all connect.
Take your big game idea and start breaking it down into all the pieces that it will need to be complete. For example, GTA has systems for driving and shooting (among many other things). Look at each of those things as its own, smaller game. Even these "small" parts of GTA are actually pretty huge, so try to come up with something as small as possible. Like, super small. Smaller than you think it needs to be. Seriously! You'll eventually be able to make big stuff, but it's not the place to start. Oh, and don't worry if your first game(s) suck. They probably will, and that's fine! The good stuff you make later will be built on the corpses of the small, crappy games you made while you were learning.
 
If you're truly interested in design, you can learn a lot about usability, player psychology, and communication methods without having to shell out $17k for a degree. Same goes for coding (there are tons of free online resources), though a degree will help you get in the door at companies you might be interested in and help provide the structure to keep you going.
 
Here's some books I recommend. Some are specific to games and some aren't, but are relevant for anything where you're designing for someone besides yourself.
 
• Universal Principles of Design
• The Design of Everyday Things
• Rules of Play
• The Art of Game Design This and the one below are great books to start with.
• A Theory of Fun This is a great one to start with.
• Game Feel
• Depending on the type of game you're making, some info on level design would be useful too, but I don't have a specific book to recommend (I've found pieces of many books and articles to be useful). Go play through the developer commentary on Half-Life 2 or Portal for a fun way to get started.
 
Sounds like you're having a tough time, so do your best to keep a positive attitude and keep pushing yourself toward your goals. There's nothing to stop you from learning to make games and starting to make them on your own if that's what you really want to do.
Good luck, work hard!
http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135
Which Skyrim cookbook is this from? I’ve seen a few different ones, been eyeing this one for a while.
While I haven't read the books in this bundle yet, you might be interested in looking into Rules of Play. It's also published by the MIT Press and it is definitely a textbook on Game Design. It's currently a bit expensive, but it has gone on sale for much much cheaper in the past.
if your interested in an over-all history of video games The Ultimate History of Video Games by Steven L. Kent is a good read with a focus on arcade and early console games while Tristan Donovan's Replay: The History of Video Games has more of a focus on the development of pc games.
Raising the bar is a book filled with concept art. Unfortunately, its pretty hard to find a new copy, unless you are willing to spend $100+ dollars. Used ones are still viable at $50+/-.
As far as I know, no books exist based on the game.
Nice, still have mine they sell for a good price I believe.
edit:
amazon.ca
amazon.com
ebay
great find :D
I've learned enough to get by, so I can't say I've really "learned to code." But I love it and am going to continue beating my head against a wall learning it because I find it fascinating and challenging. It also ties into some of my musical interests (I studied computer music in graduate school).
Here are some of the things I've read. It doesn't happen over night. I would recommend reading in this order (or maybe read the first two ruby/rails items and then the first two JavaScript items). Pretty much all of my learning has been by doing, and I have tried to code my own small projects in between books.
Ruby/Rails:
JS:
I found Level Up! by Scott Rogers to be a good book to recommend for people thinking about becoming a dev. Nice, funny writing style that doesn't get too technical.
Game Coding Complete has been a great read so far. It covers a lot of "big picture" things and architectural discussion which I haven't seen in a lot of other books.
i bought the book "getting started with dwarf fortress", i still use it as a quick reference and a good way to get started. if you don't want a physical copy, there are loads of tutorials to get started, i use the wiki quickstart guide if i don't have my book handy
If you want, there's a really good book for learning the game. It's outdated (The book is from 34.11, we're on 40.24), but the updates haven't changed anything big from one version to the next. There'll just be some features that you'll have to figure out without the book ;)
And if you're wondering, yes I do own that book :D
[Game Engine Architecture] (https://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010) is pretty good, and has C++ code in it (I think)!
He's right. One of the 'holy grails' of game development books is "The Art of Game Design - A Book of Lenses"
Jesse Schell starts off by saying before you start designing a video game, start designing a board game because if your mechanics can't be explained or are too complicated for a board game, they just won't work in a video game.
For math I highly recommend this book
It breaks things down really simply with pictures and nice explanations.
Yeah, you can't just slap a theme on a game though. The game mechanics and the theme need to work off of each other.
I recommend reading some books about game design. These two are both really good:
its available on amazon canada as well - https://www.amazon.ca/gp/product/1911015222/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1
People talk about prototyping games a lot. Like, you have an idea so you build out a simple example so you can play it and see if it's fun on a basic level.
But what they don't really talk about, is prototyping code. It's hard to figure out how things fit together in a meaningful way if you don't already know the coding conventions or patterns that can help you build them.
As a self taught programmer whose work includes a good deal of coding now, I've gotten a lot of use out of building out small 'hello world' type examples of more complicated code structures.
Imagine you're trying to build a skyscraper, you wouldn't just try and build it straight out of your head, you'd follow a kind of miniaturized version of it, a blueprint. So that's what you should do as a programmer, make blueprints. Don't just make blueprints for your whole game, make blueprints for even the smallest sections of it if you don't feel like you completely understand it.
My wife is a senior-level project manager for a really large construction firm and her projects typically cost somewhere in the range of $500 million. When she's on the job-site supervising a part of the build, she doesn't refer to the blueprint for the whole project, she uses the blueprint for that specific part of the job. So if you're having trouble figuring out how to properly break a python game out into modules, don't look at coding examples of full games because you'll just find it overwhelming. Look for simple examples of python imports and module structure. But more importantly, build small examples of how that works using those examples to make sure it works how you're expecting.
Think of the game you want to make, and form some basic ideas about how it should fit together. Read up on programming patterns, game engine architecture, or artificial intelligence for games and whatever other topics interest you about game design. Make small code projects prototyping concepts that are interesting. I have a project folder on my computer that is filled with small examples of programming patterns, complicated data structures, skeletal game structures, and anything else that can serve as a blueprint for building something else.
So if you're reading and come across Entity Component Systems (ECS), and you think that theoretically sounds like a good way to build your game, don't start by trying to build a game using ECS. Build a prototype of an ECS pattern. Something really simple and instructive of how you would do it for a larger project, a blueprint.
For example, this is the actual code I wrote when I was prototyping one of my favorite patterns, the Service Locator.
class Service:
_audio = None
_graphics = None
@staticmethod
def playermoved():
if Service._audio:
Service._audio.play_footsteps()
if Service._graphics:
Service._graphics.animate_player()
class Audio:
def play_footsteps(self):
print("Pitter Patter")
class Graphics:
def animate_player(self):
print("Look at the player move")
audio_system = Audio()
graphics_system = Graphics()
Service._audio = audio_system
Service._graphics = graphics_system
Service.playermoved()
And if you read the description, you'll see that this example doesn't really fully articulate the pattern as described. But that's okay, because the point of the code blueprint is to experiment with implementing concepts in a way that works for you.
I haven't read it, but I've heard good things about Jason Gregory's Game Engine Architecture.
Game Engine Architecture is a great book for learning about engine design.
https://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231/ref=dp_ob_title_bk
This book is by far the best introduction to the math necessary for 3D games that I have come across. It gives you the intuition necessary without necessitating being an A++ calculus student (although that helps).
https://www.amazon.com/Elder-Scrolls-Official-Cookbook/dp/1683833988/ref=sr_1_1_sspa?hvadid=321609723112&hvdev=c&hvlocphy=9002004&hvnetw=g&hvpos=1t1&hvqmt=b&hvrand=12027831818057385557&hvtargid=aud-647006051489%3Akwd-622908174714&keywords=the+elder+scrolls+official+cookbook&qid=1556122144&s=gateway&sr=8-1-spons&psc=1
Try reading The Ultimate History of Video Games. It goes through how the rating boards came about, and what it was like without them.
Valve released a book about Half-Life 2's development called Half-Life 2: Raising the Bar.
http://www.amazon.com/Half-Life-2-Raising-David-Hodgson/dp/0761543643/ref=sr_1_1?s=books&ie=UTF8&qid=1404234956&sr=1-1&keywords=half-life+2+raising+the+bar
MDN updates more frequently than a book.
If you just need a reference, stick with MDN. If you want the book as a learning resource, it coud probably be helpful but I looked at both The Definitive Guide and Professional Javascript for Web Developers and liked PJ4WD better. non-affiliate amazon link
I don't have any games under my belt just yet (working on one for class with a group), but Level Up!: The Guide to Great Video Game Design by Scott Rogers was a solid read.
The guy worked on God of War and the Maximo series among other 3D games, so that'd probably be helpful for you.
.FBX is one of the most used formats in the industry, what usually happens is the artists output their work into .FBX files and either the engine loads it directly, or will convert it to a proprietary format that's most efficient for their engine. Unfortunately information on .FBX is not publicly available so you have to use their SDK.
http://usa.autodesk.com/adsk/servlet/pc/item?siteID=123112&id=10775847
http://docs.autodesk.com/FBX/2014/ENU/FBX-SDK-Documentation/
.OBJ is not a suitable format for animation it's only good for defining meshes and materials. A very good library that removes all the hassle of format loading is Assimp: http://www.assimp.org/
Lastly, animation formats don't store individual vertex positions, it will store matrix transformations. It's worth looking into how animation is done, I don't have any links but I would recommend looking at the following books:
https://www.amazon.co.uk/d/Books/Game-Engine-Architecture-Jason-Gregory/1568814135
https://www.amazon.co.uk/Game-Coding-Complete-Mike-McShaffry/dp/1133776574
https://www.amazon.com/Getting-Started-Dwarf-Fortress-complex/dp/1449314945
I can only think about "Game Engine Architecture Second Edition" by Jason Gregory Lead programmer at Naughty Dog :
http://www.gameenginebook.com/
https://www.amazon.fr/Engine-Architecture-Second-Jason-Gregory/dp/1466560010
Are you looking for how to make games? Not just programming, but actually make them? I have some suggestions, but they often aren't about programming. There is a million books about programming, but finding those that talk about the ideas and ways to successively improve is a better point to start from.
Making video games is easy. Put the pitchfork down and let me explain. Anyone can open unity and load some assets and call it a game. Making good games is difficult, and even if you are not looking at card/board games, you should be prepared to test your game on paper. It is easier to make iterative improvement if you can look for mechanical and mathematical issues by scrawling some notes on paper cards.
For a book that covers both programming and game design, I also suggest this one.
These books will cover the psychology, the pitfalls, etc that come with making a game. You do not need a class to make a game portfolio. You can often get things done faster by a book, because it's goal is to teach as you read, not set a timer for 15 weeks. It can assume you will do it over 26 weeks or more if the book is huge.
Anyway, this is a much larger reply than I intended. Hopefully these are informative. If nothing else, they are significantly cheaper than a class.
One of my favourite game design books actually makes reference to this. In the book Scott Rogers calls it the Triangle of Weirdness and uses it specifically to refer to writing a game's story
Characters - Activities - World
Pick one
He then uses The Wizard of Oz (Characters), Monty Python and the Holy Grail (Activities), and Star Wars (World) to back up his statement.
On YouTube Brackeys channel looks really useful: short, no-nonsense videos.
Additionally, you can find true gems of wisdom on GDC.
I'd also like to recommend a book about game design (in general): Level Up! -- The Guide to Great Video Game Design by Scott Rogers.
Is this what you mean by "Game Programming Complete"?
http://www.amazon.com/Game-Coding-Complete-Fourth-Edition/dp/1133776574
I'm asking because I like to backlog books like this and want to make sure it's the right one. I've also seen this one suggested elsewhere.
Alright, in that case it sounds like you can benefit from 'the general advice':
Yes the learning curve is intense. But this cartoon sums it up nicely...
http://dwarffortresswiki.org/images/4/40/FunComic.png
Edit: and I found this book to be very useful.
https://www.amazon.com/Getting-Started-Dwarf-Fortress-complex/dp/1449314945
If you don't mind reading or shelling out a bit of money, Game Engine Architecture is still a great resource
I recommend The Art of Game Design as a great resource for this specific question:
https://smile.amazon.com/Art-Game-Design-Lenses-Second/dp/1466598646/
And if you don't want to spend the money, here's a hot tip: download the "Deck of Lenses" app on your mobile device. It's basically an extremely summarized version of the book, organized into a "deck". As you consider your resolution mechanism, flip through cards in the deck and ask yourself, "how does this lens apply? is my mechanism successful or deficient when viewed through this lens?". Not all lenses are going to apply, but it's a very useful exercise.
My best award on the subject goes to:
https://www.amazon.com/Game-Mechanics-Advanced-Design-Voices/dp/0321820274
Otherwise, I like how the balance is described in
https://www.amazon.com/Designing-Games-Guide-Engineering-Experiences/dp/1449337937/ref=sr_1_1?s=books&ie=UTF8&qid=1492365738&sr=1-1&keywords=designing+games
and
https://www.amazon.com/Art-Game-Design-Lenses-Second/dp/1466598646/ref=sr_1_1?s=books&ie=UTF8&qid=1492365764&sr=1-1&keywords=art+of+game+design
Well worth the money: http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135
Jason Gregory - 3D Game Engine Architecture is a great book although it does focus on C++, but the majority of the content is language independent and more concerned with architecture rather than implementation details.
And as noted before, Real-Time Rendering is a must-have.
/u/rampion already made a great recommendation of Charles Petzold's Code that I highly recommend. Another great one is Tao Te Programming which is barely a book (in terms of length), but is available for free online.
I also really loved Game Engine Architecture but obviously that's pretty niche. I have more and will do my best to add them later
I kind of sounds like you're whining.
go to /r/gamedev
If you know how to program effectively and you want to do something solo. Learn how to Art. If you know how to Art, learn better programming skills.
here's some of my favorite book recommendations
Programming:
Game Coding Complete
The fucking bible as far as books on game development goes. Made by one of the senior developers on the Ultima series. Seriously. Good book.
Game Engine Architecture
Also a really good book, teaches you more about usability beyond yourself if you ever find time or reason to expand your team.
Art:
Drawing on the Right side of the brain This is a very good text for getting you out of your comfort zone and into the mindset you need to have to do good art. This book won't teach you how to make good art, practice will, but its a good first step.
I'd also start looking around, take a look at Blender, we have a great community at /r/Blender and start learning how to do modelling, theres some great tutorials on the gamedev subreddit, as well as a number of classes on Programming and one on Game Concept art at University of Reddit.
Now get up off your ass and start building a game. Pixel. By. Pixel.
and if you have any questions, shoot me a pm, I'd be glad to help!
I've found Jason Gregory's Game Engine Architecture a great read, was recommended to me by the program director of a game development masters program.
In terms of "tying it all together" I recommend this book - http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135
It covers game engines in a pretty general way, a light overview of every part and what role it plays in the whole. If you're having trouble figuring out architectural questions like what a game loop should look like, this book will help a lot imo, maybe faster than source diving in other roguelikes.
Outside of resources like that, I'd suggest just starting even simpler than a game loop. Draw a field of '.' to the console. Draw an @ on top of that. Make the @ move. One thing at a time, and your game loop will build itself.
Bad project to "learn programming" with
Start with something simple like a calculator or even Hello World
If you want to learn some game programming concepts you can take various courses online. Get https://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231 can be a start, then you can brush up on linear algebra and calculus.
Yes it sucks to have to do the basics first... if you absolutely have to "make games" fast use something prebuilt like Libgdx or Unity or Monogame and you can learn on the go
I'm not a professional graphics programmer, but I am a CS grad and a senior developer for about 10 years. I haven't yet had the time to dive into fully committing myself, however, here was my personal plan for when that moment came.
This gave some great advice and was my starting point:
https://interplayoflight.wordpress.com/2018/07/08/how-to-start-learn-graphics-programming/
​
Then I was going to read this to learn about game engine architecture:
https://www.amazon.com/Engine-Architecture-Third-Jason-Gregory/dp/1138035459/ref=sr_1_3?s=books&ie=UTF8&qid=1539093840&sr=1-3&keywords=game+engine
​
I have heard that this book is the actual implementation of a game engine and a good follow up to reading game engine architecture:
https://www.amazon.com/SFML-Development-Example-Raimondas-Pupius/dp/1785287346/ref=sr_1_1?s=books&ie=UTF8&qid=1539093789&sr=1-1&keywords=SFML
https://www.amazon.com/Mastering-SFML-Development-Raimondas-Pupius/dp/178646988X/ref=sr_1_2?s=books&ie=UTF8&qid=1539093813&sr=1-2&keywords=SFML
​
Then I was going to start diving into the 3D and mathematics
Read first:
https://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231/ref=sr_1_1?ie=UTF8&qid=1539094027&sr=8-1&keywords=3d+math
Read next:
https://learnopengl.com/
Then I was just going to try and build my own 3D engine and figure it out as I went along.
I've also heard that implementing actual siggraph papers is super helpful and once you're at that point, you've kind of arrived as far as graphics programming is concerned.
I think what you're experiencing with the analysis paralysis is very normal. I'm going to say that you have this fear because you're thinking about all the things you're going to have to do and it freaks you out. Don't think about all the books and all the work you're going to have to do to reach your destination. Simply sit down each day and work on something. Just improve upon what you did the day before and have a weekly goal or something in mind. This breaks up what you're trying to accomplish into smaller steps and isn't nearly as intimidating. Don't look at everything on the horizon. Just start writing code.
John Carmack said it best when he gave someone advice on becoming a programmer "You should write hundreds of programs".
Link: http://d3dvortex.blogspot.com/2005/07/programming-advice-from-john-carmack-i.html
​
​
​
​
​
I think they're from this book: https://www.amazon.com/Elder-Scrolls-Official-Cookbook/dp/1683833988
I got it recently myself and I'll be trying the recipes myself soon.
Let me see if I can find the link on amazon
Edit: here ya go! The Elder Scrolls: The Official Cookbook https://www.amazon.com/dp/1683833988/ref=cm_sw_r_cp_api_i_-mPWCbAYZPNKF
You can also find it on amazon.
https://www.amazon.com/Elder-Scrolls-Skyrim-Library-Histories/dp/1783293195
I'm currently midway through Characteristics of Games, written cooperatively by 3 people, probably the most notable of which is Richard Garfield (designer of Magic: the Gathering and RoboRally). It is really good, and has great insights into how games function. Most of what it discusses is focused on board games, though it does discuss videogames at times as well. Highly, highly recommended.
I also find the Ludology Podcast to be invaluable. It's hosted by Ryan Sturm (who also hosts the How to Play Podcast) and Geoff Engelstein (designer of Space Cadets and Space Cadets: Dice Duel). They tend to pick a topic and elaborate on it for an hour or so, and if you start at the beginning, it's a really great way to slowly introduce new things to think about when designing games.
Characteristics of Games Doesn't just talk about board games, but Richard Garfield is one of the authors.
An artist. :P
No but seriously, here are some things I'd love to be gifted as an indie game dev (if I didn't have them already):
"The Ultimate History of Video Games" is a good one as well, which is where I learned of these events. In that book, you get to see Coleco, Mattel, and Atari's side of things along side Nintendo's.
http://www.amazon.com/The-Ultimate-History-Video-Games/dp/0761536434
Same in germany. Notice the #1 Bestseller in Game Development tag? Congrats ;)
Edit: Actually #1 in all Computer & Internet related books in a foreign language.
The book Professional javascript for web developers link
An Essential Reading List For Designers
Source: www.tomfaulkner.co.uk
All books have been linked to Amazon for review and possible purchase. Remember to support the authors by purchasing their books. If there are any issues with this listing let me know via comments or pm.
Architecture
Communication Design
Fashion Design
Angela ButtolphEditors of Phaidon ?Furniture Design
Game Design
Graphic Design
Information Design
Industrial Design
(cont'd)
> 1) "Miyamoto hated DKC" : No he didn't, and he has made that clear in interviews. That infamous line was taken out of context, he was pissed that producers were putting pressure on him to make Yoshi's Island look like DKC, and then he complained about people caring more about how a game looks than how it plays.
The Donkey Kong Country Miyamoto quote apparently comes from an interview with Steven L. Kent in the May 1995 issue of Electronic Games magazine. I've never read that issue, but Kent did reprint the quote in his book "The Ultimate History of Video Games" (great book btw).
> An interesting story lies behind Yoshi's Island. When Shigeru Miyamoto first demonstrated the game to Nintendo's marketing department, it was rejected because it had Mario-related graphics rather than the waxy, prerendered graphics of Donkey Kong Country. Rather than change to an artistic look he did not like, Miyamoto made the game even more cartoon-like, giving it a hand-drawn look. The second version was accepted
> Miyamoto, who is rightfully proud of his work, was offended that the first version was rejected. That same month, I interviewed Miyamoto and Tim Stamper, creator of Donkey Kong Country, together and noticed that Miyamoto was a bit hard on Stamper, making such statements as "Donkey Kong Country proves that players will put up with mediocre gameplay as long as the art is good."
> In a later interview, Miyamoto admitted that Yoshi's Island had been a touchy subject at the time:
> I think that it happened after Donkey Kong Country was introduced. In comparison with the graphics of the Super Donkey Kong, there was not enough punch to Yoshi's Island. That was what I was told by the marketing people.
> I intensified my hand-drawn touch on Yoshi's Island from the initial part of the program. Everybody else was saying that they wanted better hardware and more beautiful graphics instead of this art.
> Even while I was working on the Super Mario World, I was thinking that the next hero should be Yoshi. Other people have created games based upon Yoshi. . . . Yoshi's World Hunters, Yoshi's Egg, Yoshi's Cookie, and so forth--games that I don't really like. So I decided that I should make an authentic Yoshi game.
He also repeated it on an episode of G4's Icons about DK.
I was glad that Miyamoto addressed this to IGN in 2010. For years, people used that quote as a lame excuse to hate on the DKC series. Like IGN founder Peer Schneider in the above linked Icons video:
> It's the epitome of bad game design. You're asked to collect all these different things that really don't do anything for the player. 5000 bananas. Yay, what does it get me? Nothing. It's just to keep you occupied and make you walk through the same levels again.
Yeah dipshit, that pretty much describes 95% of all video games.
Many of these can be found in this book.
this book is good https://www.amazon.com/Game-Programming-Patterns-Robert-Nystrom/dp/0990582906/
the authour has put the entire thing online for free
http://www.gameprogrammingpatterns.com/contents.html
you could download SFML https://www.sfml-dev.org/ (a C++ framework that can be used to make games)
and then try and recreate these games
https://www.youtube.com/playlist?list=PLB_ibvUSN7mzUffhiay5g5GUHyJRO4DYr
but make them more complete, more advanced and apply the concepts from the book
this book https://www.amazon.com/dp/0201615622/ is recommended on stackoverflow
> Failing that, are there any good cheatsheets/references for JS "gotchas" and unusual features that devs from other languages might not be familiar with?
There are entire books dedicated to this! (Also some entertaining talks.)
Here are some good JS books not aimed at total beginners:
Bonus (to give you a sense of the kinds of "gotchas" you'll find in JS):
// Even though you pass in numbers, JS sorts them lexicographically
> [5, 1, 10].sort();
[ 1, 10, 5 ]
// You "fix" this by passing in a custom comparator
> [5, 1, 10].sort(function(a, b) { return a - b; });
[ 1, 5, 10 ]
// This probably makes sense to someone, somewhere
> Math.min();
Infinity
> Math.max();
-Infinity
// Some things are best left unknown
> {} + {};
NaN
> var wat = {} + {}; wat;
'[object Object][object Object]'
Here are a bunch more in quiz form.
I can definitely relate, this sounds just like me last year! I've done things the hard way and it took me 5x longer. I also prefer screencasts to books. I always need to create a project to solidify those fresh skills, otherwise they'll be gone in a month. Also tutorials for things like Backbone assume you know how to use jQuery, Underscore, and things like REST, and JSON responses... this can quickly get confusing if your not familiar with all of these. My largest regret is not building enough practice apps in the last year. I really should have applied more by doing, instead of staying in the theoretical world.
Here are some insights that i've made and the courses/tuts/projects that helped me the most:
Learn the language first:
Set up a comfy environment
Take some time to start optimizing your development environment, the Paul Irish explains it very well below, but some of the topics are a bit too advanced for now (modules, build tools, etc...).
Learn the native DOM and it's API
Learn jQuery
Read "The Good Parts"
Though very cliche at this point, read through this classic. If you don't really understand it all 100%, make sure you hang on to it though as it gets better with age. Try and follow it as close as possible, then later feel free to break the rules. By then you'll know why you can break them.
Learn Underscore
This is a great library that gives you a lot of cross browser ES5 features and features that should be in JS. Not a lot of tuts on this one, reading the docs and source helps a ton here.
Learn Backbone
There are lots of these libraries but Backbone is the most popular and easiest to learn. Keep in mind this is a library, not an entire framework like ember. This means in a larger app you will essentially use Backbone to help build you own SPA framework for your app.
http://cheeaun.com/blog/2012/03/how-i-built-hacker-news-mobile-web-app
http://cheeaun.com/blog/2012/03/how-i-built-hacker-news-mobile-web-app_26
Learn Node
General Front-End, Programming
Read a comprehensive JS book
I really like Nicholas Zakas's book over the definitive guide. I find that he is able to tell more of a story and makes it easier for me to absorb.
Testing
Make sure you're comfortable with everything before moving onto testing... this includes frameworks etc.. Learning testing will only slow down the learning process if you're not comfortable with the rest. Mocha is the newer test runner and is better with async. However, Jasmine is very popular and time tested. The "Lets code javascript" below is an awesome course. Don't let the first sections turn you off, they may seem tedious at first (integration server, etc...) so feel to skip to dom/browser testing and then loop back when testing is more normal.
--
I just started sketching out a website to try and solve this problem. It has different paths to follow to fill in gaps of JS knowledge quickly (much like hackdesign.org)... unfortunately it's not finished yet! Watch LevelUpJS on Github in the future. I also have some more links on app architecture and things like modules but this list is getting a bit large!
Cheers and good luck!
I found these helpful
https://www.amazon.com/Art-Game-Design-Lenses-Second/dp/1466598646/ref=sr_1_1?s=books&ie=UTF8&qid=1481045565&sr=1-1&keywords=game+design
https://www.amazon.com/Level-Guide-Great-Video-Design/dp/1118877160/ref=sr_1_5?s=books&ie=UTF8&qid=1481045521&sr=1-5&keywords=level+design
https://www.amazon.com/Level-Design-Games-Compelling-Experiences/dp/0321375971/ref=sr_1_3?s=books&ie=UTF8&qid=1481045538&sr=1-3&keywords=level+design
There isn't a completely language agnostic book out there like you'd find with say Code Complete, but there are two books that fit your description but neither is really a beginner text.
 
Game Coding Complete
and
Game Programming Patterns, much of which is available on his website.
Once you get a bit more (ok, a lot more experienced), Game Engine Architecture is another great read.
 
Other than those 3 books, almost everything else is technology or language specific... like Learning Unity 5 or Learning Inverse Kinematics for __, etc.
 
While you are just starting out however, you should consider the beginners guide on Gamefromscratch, followed by various tutorial series or game engine overviews, as you aren't at the point where you really need to buy a book yet.
Honestly I bought the book "Getting Started With Dwarf Fortress" for like $10 on Kindle or something and LOVED it. It was not only a really enjoyable book to read, peppered with good dwarf humor and tragedy, but also walked me through building and maintaining a powerful fortress. It also helped walk me through the more complex aspects of the game like using liquids, machines, and dwarven logic circuits. I highly recommend it.
Heres the link
I wouldn't be able to teach you... But I learned some handy things from this book.
Sometimes you just have to fail a little to have a some FUN. Goodluck!
(Also, if you want something a little more...uh... friendly to start out with, I recommend Rim World. It's on Steam. )
As always one of the most recommended books will help you: Game Engine Architecture by Jason Gregory It does require some programming knowledge however, but it will show you the inner workings of an engine and how they are made.
A huge and detailed, but very good video series of an entire game engine and game is Handmade Hero.
I've heard the book Game Engine Architecture on a few lists as being good.
Get this book, it covers everything you want to know.
https://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010/ref=sr_1_1?s=books&ie=UTF8&qid=1479306169&sr=1-1&keywords=game+engine+architecture
That's a fantastic book! And, he just recently released a new version.
I'll start off with some titles that might not be so apparent:
Unexpected Fundamentals
These 2 books provide much needed information about making reusable patterns and objects. These are life saving things! They are not language dependent. You need to know how to do these patterns, and it shouldn't be too hard to figure out how to implement them in your chosen language.
 
Good General book
 
This book is great if you're going to make a browser based game
 
General Knowledge books
 
Provide a working moveable 3D model with C++ and DirectX, Very cool.
 
More general game base building
 
Working product results books, little if any modification needed
Releasing in a couple months (hopefully) 2 Very good books using C++ to develop by.
 
Not presented in the best manner but still noteworthy:
 
I used to love XNA...but now it's not feasible for commercial development. If you're a beginner to game design...starting out with XNA might actually be useful. It's easy to pickup and put out a working product. XNA is C#
 
 
Working product books, modification needed to make run on current systems
Provides a working FPS game in C++ on DirectX 9. Good for some starting out knowledge for an FPS
 
Good for 3D Terrain rendering in DX9...however much of this is outdated...some concepts still apply, and it's not the worst idea to see a working example.
 
TLDR: Click links starting at top, buy, read, profit
@1. Mysle ze pytanie ktore trzeba zadac sobie najpierw to "czym jest dobry game design". Ile ludzi bedzie gralo w dana gre? Ile pieniedzy gra zarobi? Jaki efekt bedzie miala na graczach? Ogolnie polecam fora czy nawet subreddity typu /r/gamedesign. Sa tez kursy oferowane za darmo online przez powazne uczelnie np MIT. Z ksiazek polecam Theory of Fun i The Art of Game Design
@2 Tak, spojz na Notch'a ;)
@3 Rob male, proste gierki. Polecam "game jams" Nie wiem jakie to popularne w Polsce ale w Internecie jest tego sporo i po krotce chodzi o taki "sprint" (na przyklad 24 godzinny lub jedno-weekendowy) podczas ktorego celem jest zrobienie gdy na podstwie jakiego hasla lub protych ktryteriow. Znajdz innych ludzi i zamiast samotnie, pracuj w grupie powiedzmy trzech osob co by sie wzajemnie motywowac.
Have you read Jesse Schell's Art of Game Design book? It's a great read for game designers if you don't have it as a reference.
In it, he gives you some good lenses to look through that encompasses almost every game design decision you should be making for your game. I am positive there is a lens in the book that you can look through for your game that addresses your unwillingness to bend reality to accommodate intriguing game ideas. Remember your audience isn't yourself or your own personal tastes, if something doesn't make sense for you, maybe prototype the idea and playtest it with some folks and then judge whether the idea is indeed enhancing the game experience, if so it shouldn't matter much if it makes sense to you or reality or not.
One of the most important aspects of game design is that the story should always be written first, with the design and technology then being informed by the story. What you need to do is come up with the game you want to make (which hopefully is also a game you think other people will have fun playing), after which you can create a design plan / feature list / implementation plan from that.
I suggest you read The Art of Game Design for general game design information and Richard Bartle's Designing Virtual Worlds for MUD-specific information. That's probably a good first step for getting you into serious MUD development.
Edit: link formatting
To be honest, I would recommend a low level functional book over a C# or C++ specific book that teaches you APIs. Most of the language/API specific books get hung up on details, work arounds and such rather than focusing on what is really important.
The mathematics of 3D programming or so was really really useful - it shows algorithms and goes into why certain algorithms are fast/slow and give good/bad results.
If you want API/C++ stuff, I'd go with
http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135/ref=pd_bxgy_b_text_z
Very well written and goes into debugging and such as well.
The common advice given to those new to game programming that want to develop an engine is to simply make games. Through the process of making a game you'll come across code that can be reused, and refactoring this code into a generic form will allow you to build up a library of useful snippets/classes/what-have-you and eventually an engine.
However, if you're curious about game engine architecture, there's a great book by Jason Gregory, Jeff Lander and Matt Whiting called Game Engine Architecture which describes the components that make up an engine and illustrate some design choices.
Take a look at this book, it's very well written and covers very wide range of game-engine aspects: Game Engine Architecture by Jason Gregory:
http://www.amazon.co.uk/Game-Engine-Architecture-Jason-Gregory/dp/1568814135
http://books.google.com/books?id=LJ20tsePKk4C&lpg=PP1&ots=pW7UHKb70s&dq=Game%20Engine%20Architecture&pg=PP1#v=onepage&q&f=false
I'm no mathematician, so I don't have a good answer. But judging from the math I usually need when messing around with graphics, I rarely need anything more fancy than matrix-vector multiplication and a few scalar products and cross products. You get a pretty intuitive approach to the math after a while.
From a philosophical point of view, I'd say the more the merrier. More knowledge in a field leads to greater understanding and being able to find more elegant solutions, thus saving work.
3D Math Primer for graphics and game development is nice as a quick introduction, although I suspect mathematicians would hate me for recommending it, for similar reasons I objected to mixing the graphics field / OpenGL with game development. For a more serious textbook on linear algebra, I'm afraid you have to ask someone else. The last math books I bought and read was about number theory and introduction to calculus and limits.
3D Math Primer for Graphics and Game Development is a great introduction to 3D math. It presents everything in a very approachable way (rather than a very rigorous mathematical way).
If you want to dive even deeper after that one, a good supplementary text is Essential Mathematics for Games and Interactive Applications. It goes deeper into the topics, but it isn't quite as approachable, so it's a good follow-up.
You want this book:
https://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231/ref=pd_sbs_14_t_0?_encoding=UTF8&psc=1&refRID=6SRYZDWC9WK865HFCXE7
Or get it's original version (the math hasn't changed):
https://www.amazon.com/Primer-Graphics-Development-Wordware-Library/dp/1556229119
Get them used or find them on ebay or something.
Go for it. Your background in comp will help in fx too as most fx peeps can't comp for shit.
Comp requires much less Computer Graphics knowledge so you're probably gonna want to brush up on math, and general CG.
https://www.amazon.com/gp/aw/d/1568817231/ref=mp_s_a_1_1?ie=UTF8&qid=1506026161&sr=8-1&pi=AC_SX236_SY340_QL65&keywords=maths+for+game+and+computer+graphics
Is a great start.
To be clear: are you interested in game programming, or game design? (I say this because the other post said you were interested in engineering, and I'm not sure that guy knew what he was talking about) While the two do go hand-in-hand, what discipline you will be practicing is very important to be aware of. If you are interested in game design (theory behind making games, regardless of whether or not they're electronic) then some books you'd be interested in would be Jesse Schell's The Art of Game Design, reinforced by exercises from Challenges for Game Designers.
If you are interested in game programming, that would require some introductory programming knowledge before diving into it, and there are others who would know where to find books for that, like on the sidebar of /r/learnprogramming. I would not recommend diving into a game engine without some basic programming knowledge unless you use an engine like GameMaker (but even that is just putting it off to a degree).
If you are going the book route, I have a few suggestions for you!
Not sure if he's a reader? Check out Challenges for Game Designers Basically a collection of game problems to solve, flexing those 'be creative within a bounded scenario' muscles that a lot of big dreamers don't have enough experience with.
Another solid choice is this one,
100 Things Every Designer Needs to Know About People (Voices That Matter). In general it's talking about layouts/formatting, but super solid read for our industry as well.
Both of these are light and fun reads. If you think they might be interested in something heavier, I can post some in that vein as well.
It’s the official Skyrim Cookbook
The Elder Scrolls: The Official Cookbook.
Also found here: http://www.amazon.com/The-Elder-Scrolls-Library-Histories/dp/1783293195
Edit: It's $10 cheaper!!!
The price to the zelda guide book dropped to $24
https://www.amazon.com/Legend-Zelda-Complete-Official-Collectors/dp/1911015222/ref=tmm_hrd_swatch_0?_encoding=UTF8&qid=1486899472&sr=1-1
https://www.amazon.com/dp/1911015222/ref=cm_sw_r_cp_api_242NybPQAAWSV
Amazon link here. There's currently a week to two week wait before it ships although some are saying theirs are arriving earlier. I ordered mine from Barnes and Noble and it got here in 3 days and it was only like a dollar more and had free shipping.
The Legend of Zelda Breath of the Wild: The Complete Official Guide https://www.amazon.com.mx/dp/1911015486/ref=cm_sw_r_cp_apa_i_6OnaBb8VNNEC6
Anyone happen to have bought this ? If so did you find it worth the $30 price tag was it actually useful?
Despite what you mentioned, anyone interested in real-time graphics, or computer graphics in general should have:
http://www.realtimerendering.com
https://www.amazon.com/Real-Time-Rendering-Third-Tomas-Akenine-Moller/dp/1568814240/ref=sr_1_1?ie=UTF8&qid=1494968752&sr=8-1&keywords=real+time+rendering
It was updated in 2008. Not cutting edge, but many of today's core ideas are covered well. But, if you want cutting edge, you read SIGGRAPH papers, blogs, or the like. RR is more of a reference. It'll be hard to find a published book that goes into a detailed area of real-time computer graphics.
I taught myself bits in high school with "C++ for Everyone". Despite its rating, I thought it was good 'cause it has exercises, and I did a lot of them. Works really well for laying foundations. I didn't go through the whole book though, and knowing the language is only part of the battle. You need to know about algorithms and data structures as well. For graphics, trees seem really useful (Binary space partitioning, quadtrees, octrees etc).
After university started, I read parts of "C++ Primer", which was when the language really started making sense to me. You'll get more than enough time to learn the required amount of C++ by next fall, but CG is heavy in math and algorithms. If your CS minor didn't go over them (much), my old algorithms prof wrote a free book specifically for that course.
For using OpenGL, I skimmed the first parts of "OpenGL SuperBible". For general graphics, I've heard good things about "Mathematics for 3D Game Programming and Computer Graphics", and "Real-Time Rendering".
Careful with C++. It may deceptively look like Java, but honestly, trying to write good idiomatic C++ after years of Java took a major paradigm shift
A few links:
Blaaaaargh quit focusing ideas! Start writing code! Playtest!
/r/gamedev is a heuristic process. You can't just plan out everything and expect to make game from thinking alone. You have to code and then playtest.
https://www.youtube.com/watch?v=RYXInr3N5UQ&t=3s
This talk is "Going with the grain", comparing gamedev to cutting wood. It helps to go with the grain of what your medium (computer, input methods) are good at. Work with yourself.
Try treating your game as an intelligent artifact eg. https://www.amazon.com/Things-That-Make-Smart-Attributes/dp/0201626950/ . Let your programming be a dialogue with it and see what it wants to say.
If you're still having trouble and feeling stuck in "idea mode", put the programming aside and try "Challenges for Game Designers: non-digital exercises for video game designers" https://www.amazon.com/Challenges-Game-Designers-Brenda-Brathwaite/dp/158450580X/ making board games built around mechanics like "Exploration" or "Randomness" or "Deduction".
TL;DR Execution is everything so start writing code and play your game.
Have you seen this, my dude?
​
https://www.amazon.com/Elder-Scrolls-Official-Cookbook/dp/1683833988/ref=sr_1_3?keywords=skyrim+cookbook&qid=1555341597&s=gateway&sr=8-3
psst...
https://www.amazon.com/Elder-Scrolls-Skyrim-Library-Histories/dp/1783293195
it contains this story (among others).
That's more than the game!
There is also the collectors edition for us mere mortals for $23 hardcover or $15 paperback.
https://www.amazon.com/Legend-Zelda-Complete-Official-Collectors/dp/1911015222/ref=sr_1_2?ie=UTF8&qid=1487373655&sr=8-2&keywords=legend+of+zelda+breath+of+the+wild
Promo Details
Some Suggestions
=============
The Legend of Zelda: Breath of the Wild The Complete Official Guide: -Expanded Edition https://www.amazon.com/dp/1911015486/ref=cm_sw_r_cp_apa_cbsJAbM4MC7M5
I’m probably going to write a book here, but I love this game so much and I’ve retained so much knowledge from it, feel free to ask any questions if you ever have any, I’d love to put my useless and specific knowledge to use!
I’ll stop here and save you the rest of my botw bible but I hope you have fun!!
Another good one is Reality is Broken: Why Games Make Us Better and How They Can Change The World by Jane McGonigal. It does focus on video games but it delves into what makes us happy and how games scratch those itches.
https://www.amazon.com/Reality-Broken-Games-Better-Change/dp/0143120611
If you're interested in this subject, I'd recommend checking out Reality Is Broken: Why Games Make Us Better, a great book detailing many of the ways that video games can convey benefits to people.
THIS is the book to read. Notice the authors.
http://www.amazon.com/Characteristics-Games-George-Skaff-Elias/dp/026201713X
Here's a few books I can recommend
The Ultimate History of Video Games: From Pong to Pokemon--The Story Behind the Craze That Touched Our Lives and Changed the World
https://www.amazon.com/Ultimate-History-Video-Games-Pokemon/dp/0761536434
Up Up Down Down Left WRITE: The Freelance Guide to Video Game Journalism
https://www.amazon.com/gp/aw/d/0989533506/ref=pd_aw_fbt_14_img_3?ie=UTF8&psc=1&refRID=MSPBR3N4XXNTK22E7VBG
Critical Path: How to Review Videogames for a Living
https://www.amazon.com/gp/aw/d/098514372X/ref=pd_aw_fbt_14_img_2?ie=UTF8&psc=1&refRID=MSPBR3N4XXNTK22E7VBG
The Videogame Style Guide and Reference Manual
https://www.amazon.com/Videogame-Style-Guide-Reference-Manual/dp/1430313056
Hope that helps!
This was my textbook from History of Electronic Gaming in college. Was the only textbook I ever read cover to cover. It covers more than arcades though so it might be a bit more than you're looking for.
http://www.amazon.com/Ultimate-History-Video-Games-Pokemon--/dp/0761536434/ref=sr_1_1
> and the bar for what people expect has been raised,
you might say they are... rasing the bar?
UK prices seem to be around £60 - £150 ($90 - $225), where the highest going price was for a sealed copy.
Might be more results in the US. Hop onto eBay, go to the advanced search, and tick the "completed listings" box as part of your search.
Edit: on Amazon US, the sensible used ones are going for betwen $70 and $190, depending on condition. That doesn't necessarily mean they're actually getting sold at those prices, of course.
Book suggestions? Now that's my jam.
Out of all the books i've read, here are my recommendations regarding game programming:
Eric Lengyel's Books (only one out so far). This is aimed at game engine development, but if the 2nd onward are as indepth as the first, they will be amazing fundamental knowledge. Also, they're not thick, and jam packed with information.
Game Programming Patterns. The only book that comes more recommended than this is the one right below it by Jesse Schell. This book is fantastic, but you should write one or two small games to really get the most out of this book. You can also read it online on his website free, but then you don't get a pic of him and his dog on the back cover.
Book of Lenses. This is your intro/intermediate dive into game design. There are a lot of game design books, if you only read one, it should be this one.
Gane AI By Example. This book is a hodgepodge of fantastic techniques and patterns by those in AAA. There are other books on the series (like Game AI Pro) which are similar, but in my opinion (at least when I read AI PRO 3), they're not as good. But more knowledge is never bad.
Truthfully, as I sit here looking over all my books, those are the only ones i'd consider mandatory for any seasoned developer. Of course plenty of developers get by without reading these books, but they likely pick up all the principles listed herein elsewhere, in bits and pieces, and would likely have benefited having read them early on.
Here are a few others that I do recommend but do NOT consider mandatory. Sorry, no links.
Unity in Action. Personally, I recommend this or a more interactive online course version (udemy.com/unitycourse) if you want to learn unity while having a resource hold your hand. Having read the book, taken the course, AND taken Unity's own tutorials on the matter, i'd order them in order from Course being best, book second, videos from unity third. But none of them are bad.
Game Engine Architecture. This is the king for those who want a very broad introduction to making a game engine. It comes highly recommended from nearly anyone who reads it, just so long as you understand it's from a AAA point of view. Game Code Complete is out of print and unlikely to be revisited, but it is similar. These are behemoths of books.
Realtime rendering. This is one I haven't read, but it comes very highly recommended. It is not an intro book, and is also over 1000 pages, so you want this along side a more introductory book like Fundamentals of computer graphics. Truth be told, both books are used in courses in university at the third and fourth year levels, so keep that in mind before diving in.
Clean code. Yeah yeah it has a java expectation, but I love it. It's small. Read it if you understand Java, and want to listen to one of the biggest preachers on how not to write spaghetti code.
Rimworld guy, Tynaan sylvester I believe, wrote a book called Designing Games. I enjoyed it, but IMO it doesn't hold a candle to Jesse Schell's book. Either way, the guy did write that book after working in AAA for many years, then went on to create one of the most successful sim games in years. But yeah, I enjoyed it.
Last but not least, here are some almost ENTIRELY USELESS but interesting diagrams of what some people think you should read or learn in our field:
https://github.com/miloyip/game-programmer
https://github.com/utilForever/game-developer-roadmap
https://github.com/P1xt/p1xt-guides/blob/master/game-programming.md
Looks like a great book, I'll have to check it out!
In case you're interested (and didn't already know), here's the price history for your own book. Amazon's prices are all constantly fluctuating, or at least 90% of them are, and algorithms must make 99.999% of those decisions. Sites like Camelcamelcamel allow us consumers to make the best choices despite that...
Edit: just noticed the price change that presumably flagged the guys at @GeekDailyDeal was actually an increase by a few cents, though it's still cheaper than for a long time
Just some I like:
Dev
Design
(I am weak in the design side, so take these recommendation with a grain of salt. I recommend them off of overall industry cred they receive and my own personal taste for them.)
below are books I have not read but our generally recommended to people asking this question
You can see a lot of these are theory based. My 0.02 is that books are good for theory, blogs are good for up to date ways of doing things and tutorial type stuff.
Hope this helps!
Battery is about to die so no formatting for you! I'll add note later if I remember.EDIT: another real quick.
EDIT2: Eh, wound up on my computer. Added formatting and some context. Also added more links because I am procrastinating my actual work I have to do (picking icons for buttons is so hard, I never know what icon accurately represents whatever context I am trying to fill).
I would love to add Level up by Scott Rogers (https://www.amazon.com/Level-Guide-Great-Video-Design/dp/1118877160) to the mix. I'm also writing for video games on indie scale tho.
Scott Rogers book is also about level design and that's important part of story telling in video game medium. For most, a lot of text is going to be dismissed by a lot of players so lot of the storytelling is good to come from somewhere else. Visuals, level design, character design etc. You need to learn from the start a good script format that is easy to understand for you and someone else reading. You can find a lot of formation online and even BBC scripts to read if you want from http://www.bbc.co.uk/writersroom/
Fundamentals like many here has stated are good place to start. Story crafting, plot devices and analysing your favourite games, movies I and TV series. Maybe check http://tvtropes.org/ and find your favourite game protagonist and read up what tropes writers used on them and how it shows.
Games as a story telling device are mix of visuals, plain text and user interaction and that mix is what makes a story in a video game. That's why a lot of video games have not so immersive story as script writers are tend to bring to the mix later in the development when level design has maybe been set in stone and coded.
I assume you want to make a story script for a game. I would recommend learning a formation for a basic film script or use celtx.com straight away because it's easier for you to get into scene thinking and also for your future co-workers. Celtx.com is free script writing tool, you should look up. (https://www.celtx.com/index.html)
And also read all comments above about learning fundamentals and skills to analyze the story arcs and storytelling. To write you must first read.
Disclaimer, I haven't personally built a full functioning game engine from scratch but I've been interested in game engine architecture. I recommend two books I'm currently reading, Game Engine Architecture and Game Coding Complete.
There's a book that teaches you how to play:
https://www.amazon.com/dp/1449314945/ref=cm_sw_r_cp_apa_6ubtyb3Q4T60D
AFAIK re: graphics, there are alternative tile sets you can install.
I sugget to take a look at [this book] (https://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010/ref=sr_1_3?s=books&ie=UTF8&qid=1517561114&sr=1-3&keywords=game+engine&dpID=51P2wXledgL&preST=_SY291_BO1,204,203,200_QL40_&dpSrc=srch)
Also, you can look (for example) [here] (https://docs.unrealengine.com/latest/INT/Engine/) to get familiar with engine subsystems.
Hope that helps
The first thing that I would say is: If you're thinking or making something bigger than a Pong clone, dial it way back. Your not going to make something fantastic, or Hell even good, straight out of the gate. Think of one idea that you have, and stick only to that. Make something very small, you can always build on it as you progress.
As for resources, they're limitless. There are tons of engines, assets, tutorials, book, and anything else you'd want. I'll make a small list of things here to get you started, but I strongly suggest looking for other things that you'd need on your own. Research and critical tinging is paramount in this hobby/profession.
Engines:
Art:
Music/Sounds:
Tutorials:
Books:
That's about all I can think of quickly. It should be enough to get you off the ground.
Have fun, and good luck!
Some people do, but remember also, game engines are hugely complex pieces of code that aren't for the feint of heart. This book shows a good portion of what can go into it.
Remember also that engines such as Unreal, Unity, etc. allows you to actually make a game without worrying too much about the lower level systems. More time spent actually making the game vs planning low-level systems = fun
I just got a copy of
Jason Gregory - Game Engine Architecture
http://www.amazon.com/dp/1568814135
There is the obligatory few chapters on "how to compile C++ with Visual Studio". I'm an experienced programmer and am just skipping that.
But the amount of depth across a broad range of core game concepts is really impressive. You can tell the author has worked on real production software and is wanting to share his hard-earned wisdom, starting with the important bits rather than the noob bits. For example, there's a great chapter on vectors and matrices, and great chapters on 3D rendering and lighting. A lot of books seem to stop there. But it's not baby talk, it assumes you have a decent high school math background, and for that reason there's room for chapters on many more topics.
A lot of it relates to 3D but 2D is often mentioned. A lot of it relates to C++. The reason is that that's the language used to get the most performance out of consoles and PC games.
This may or may not be what you're looking for, but if it is, I highly recommend it.
Here's some stuff to check out..
Challenges for Game Designers- https://www.amazon.com/Challenges-Game-Designers-Brenda-Brathwaite/dp/158450580X/ref=sr_1_1?ie=UTF8&qid=1469790243&sr=8-1&keywords=challenges+for+game+designers - A good overview and tool for learning various gameplay mechanics..
Level Up: the Guide to Great Video Game Design - https://www.amazon.com/Level-Guide-Great-Video-Design/dp/1118877160/ref=sr_1_1?ie=UTF8&qid=1469790273&sr=8-1&keywords=level+up+video+game+design - A nice overview of game design in general, which is good to know even if you're only pursuing level design at the moment
Game Maker's Toolkit - https://www.youtube.com/user/McBacon1337/videos - A really good series on game and level design
Reverse Design Series - http://thegamedesignforum.com/books/books.html - Books that deconstruct games in order to learn from them.. I'm going through the Super Mario World one right now and learning some nice things from it..
Some Reddit posts..
https://www.reddit.com/r/gamedesign/comments/35rvec/puzzle_design_how_i_do_it/ - I found this helpful back when I first read it.. o.o;
https://www.reddit.com/r/gamedev/comments/4remqy/a_fast_and_simple_method_for_writing_compelling/ - Nice stuff to keep in mind when designing story flow in levels..
Deviating a bit here.. but..
https://www.reddit.com/r/gamedev/comments/23oxp6/build_a_bad_guy_workshop_designing_enemies_for/ - A nice breakdown of enemy types in mostly 2D platform style games.. but a good reference
https://www.reddit.com/r/gamedev/comments/3p3z05/game_feel_why_your_death_animation_sucks/ - Some game feel videos
This book is pretty good:
https://www.amazon.com/Level-Guide-Great-Video-Design/dp/1118877160/ref=sr_1_2?ie=UTF8&qid=1480090759&sr=8-2&keywords=level+up
Heres the sources I used to create a 3D OpenGL engine.
https://www.youtube.com/watch?v=VS8wlS9hF8E&list=PLRIWtICgwaX0u7Rf9zkZhLoLuZVfUksDP
https://www.youtube.com/watch?v=GFYT7Lqt1h8&list=PLlrATfBNZ98eOOCk2fOFg7Qg5yoQfFAdf
https://www.youtube.com/watch?v=ftiKrP3gW3k&list=PLEETnX-uPtBXT9T-hD0Bj31DSnwio-ywh
https://www.amazon.com/Game-Coding-Complete-Fourth-McShaffry/dp/1133776574
http://www.randygaul.net/2012/08/23/game-object-factory-distributed-factory/
http://www.randygaul.net/2013/05/20/component-based-engine-design/
Use libraries for things you don't understand. Use Box2D or Bullet for example as physics engine.
You can learn as you go, no need to know everything at the start. Start with basic shapes without light or textures. Then add components as needed (component based engine design). Components can be things such as model, material (texture + data), AI, physics, controllers.
Get a few books on the subject, they are a great resource to get you familiar with the parts that go into making a full engine.
http://www.amazon.co.uk/Game-Coding-Complete-Mike-McShaffry/dp/1133776574/ref=sr_1_1?ie=UTF8&qid=1370533326&sr=8-1&keywords=game+coding+complete
http://www.amazon.co.uk/Game-Engine-Architecture-Jeff-Lander/dp/1568814135/ref=sr_1_1?s=books&ie=UTF8&qid=1370533364&sr=1-1&keywords=game+engine+architecture
http://www.amazon.co.uk/Game-Engine-Architecture-Engineering-Applications/dp/012229064X/ref=wl_it_dp_o_pd_S_nC?ie=UTF8&colid=3D6S8DHCZFLJF&coliid=I301TVJ1BKHNZ8
Chapter 22 of Game Coding Complete covers this.
I got my start by taking AP CS in high school. However, I had already gone to college and that was a while ago, so I read some books on the commute to/from work.
Initially, I read Sams Teach Yourself PHP, Mysql and Apache all in one to learn PHP.
Immediately afterward, I read Murach's Java Se 6 and Beginning Java Objects to learn Java.
Most recently, I read a portion of C++ Primer Plus, but got very sick of it. I've read most of Accelerated C++
I have a few other books on C# to read when the time comes to actually write code.
By the time I had read all of the above, I felt pretty confident on how to structure a program, regardless of language. As such, I was able to pick up Python and JavaScript quite easily just by reading online documentation at Python.org and W3Schools. When I'm writing a web app, I'll rely pretty heavily on PHP's and MySQL's online documentation to help me with whatever syntax quibbles I may have.
I still want to read Game Coding Complete and I'll probably want to find a few resources on programming within XCode.
They all tend to follow the same programming paradigms, to be honest. Java did a good job in getting me into an OOP mindset and C/C++ did a good job at helping me think about how to program things without layer of abstraction. Once I learned these concepts, it was pretty easy to get started with a new language. Programming in PHP can be super sloppy, but taking what I learned from other languages, I'm usually able to write fairly clean code in PHP (especially when I learned how to use classes).
I wouldn't recommend all of the books above, to be honest. I didn't have much ability to do online training at the time and compiled lists of books weren't nearly as useful at the time, so I relied mostly on Amazon book reviews. I'm sure you can find a few choice books on each language you want to learn and go that way. If you were to read books, I think Accelerated C++ is a good book, but works best if you already have some experience programming. I remember like Beginning Java Objects more than Murach's, though both are great as references (which is why they're both still in my bookshelf). C++ Primer Plus spends too much time teaching C and not enough time teaching C++ (you spend pages upon pages learning about C-style strings, aka char arrays, rather than just using the String Class, but I digress).
Ultimately, I could read a bunch about a language, but I never truly learned the language until I started writing in it. I've written a handful of programs just as proofs of concepts and I recommend you do the same while learning any language.
It seems like you're on the right path. I started working with major engines like unity and UDK. In addition I started writing small game clones (Pong, Pac Man, Asteroids) in C++ using DirectX. Once I was comfortable with all that I started working on my own flexible/reusable engine and writing my own tools. Using Unity and UDK gave me a good idea of what sort of features I needed to support and helped me develop comprehensive use cases. The whole point is that it is really an individual process. I don't have a degree, just been developing in C++ for the past 15 years. Tons of good literature out there too! http://gameprogrammingpatterns.com/ http://www.amazon.com/Game-Coding-Complete-Fourth-Edition/dp/1133776574 http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135. Those are some of the resources I found particularly helpful.
I'm writing an event manager for my game, and the game dev book i'm reading suggests using hashed strings as a unique identifier for game events. Why is it necessary to hash the strings? Shouldn't the pointer be a sufficient identifier? Aren't hashing functions usually expensive?
Getting Started with Dwarf Fortress
I bought the book off Amazon a few years ago, back in the days of v0.34.11
I'm not sure if it's been updated since then, I don't think it has been honestly, but it's still a good resource for learning the game since not that much has changed in Fort mode (which the book is about specifically) beyond the changes to trees, and the addition of taverns and libraries.
This might be helpful
I am a game engine programmer in the industry right now, do C++ and pick up Game Engine Architecture for a nice overview of many of the core subsystems of an engine. Java is a cake walk post C++, and still a worthy language - just not the industry standard.
For OpenGL stuff, check out Anton Gerdelan's tutorials and open.gl.
For some general game design books, I may recommend:
If you're planning on pursuing this as a career, there are tons of incredible opportunities for people experienced with lower-level 3D APIs. Making your own engine serves as a fantastic learning experience, and would be a huge investment in your future.
Below are some of my favorite books/resources right now that may help you along the way. These might not be immediately useful to you right now, depending on where you're at, but together they have more than enough knowledge for you to go far in 3D Computer Graphics.
Writing an engine isn't a trivial task. I don't mean to put you down or make you feel bad but it kind of sounds like you don't totally understand what a game engine does.
If you do want to write an engine, I would suggest starting with the renderer and expanding your understanding from there. The features of your engine depend upon what kind of game features you want to support. Particles? Visual effects? 3D sounds? Dynamic Resource management? and all of that behind the gameplay code.
Just get a square to show up on the screen. While you're working on that, check out a few books on game engine programming. There are a ton on amazon. This one is really good:
http://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010/ref=sr_1_1?ie=UTF8&qid=1453134607&sr=8-1&keywords=game+engine+architecture
If you need some more help getting started let me know! Engine programming is fun and rewarding but building one from scratch can be a monumental task.
For anybody interested in a discussion on the modern usage of Quaternions with respect to game development, see Jason Gregory's Game Engine Architecture.
Read Jesse schell's book and take everything in it to heart. Pick up game maker or unity/unreal, and start putting the book into practice. Amazon Link
This is going to be a hot take, but I'd consider going a step further and making your own lightweight engine using SDL; it will teach you not only a lot about programming, but also give you a lot more flexibility in the long run. Lazy Foo has an incredible guide on working with SDL Link
Feel free to DM me for advice. I'm not even close to doing this as a career (currently a software engineer and working on engine stuff on the side), but I can at least offer advice on programming and general engine work.
There's an app called The Art of Game Design: Deck of Lenses.
Its a deck of cards meant to make you think about different aspects of your game. It goes together with the book Art of Game Design, but can be used separately.
I think Arin likes The Art of Game Design: A Book of Lenses, Second Edition and either he or Jon liked Game Feel: A Game Designer's Guide to Virtual Sensation.
Personally my favorite game design resource is either Mark Rosewater's design articles or his podcast. I prefer his podcast but both covers most of the same information. MaRo is the lead designer for Magic: The Gathering so a lot of the articles are about MtG specifically or about tabletop games but nearly all the general design podcasts are worthwhile. Most importantly, he has around twenty years of successful (and unsuccessful) design under his belt, so he isn't just talking in vague generalities or theories. He has examples backing up pretty much everything he talks about including, and maybe most importantly, times he thought he was doing the right then and messed up. I think anyone interested in game design should listen to the "Ten Things Every Game Needs" and "20 Lessons" series. You can hear his GDC version of the 20 Lessons here.
*: But the absolute best thing you can read on game design is a gamemaker tutorial. Theory is useless without execution.
If you want some more information about what makes a game a game, The Art of Game Design: A Book of Lenses by Jesse Schell covers a lot of game theory such as what makes a game fun amongst many other conceptual ideas. I would highly recommend it.
Game Engine Architecture provides an excellent overview of how game engines work, from the ground up, in a way that's fairly accessible—that is, I understood most of what I was reading despite not having any experience programming at that level.
Also good:
Real Time Rendering
Real Time Collision Detection
Consider starting with something general like Game Engine Architecture.
It's platform agnostic, so you can follow it using whatever.
Read OpenGL tutorials on the side and use something like SFML, SDL or GLFW to handle input / window management / context creation / etc.
Jason Gregory's Game Engine Architecture is basically the de facto standard.
Other than Real Time Rendering which /u/horsman has mentioned above, I would also recommend:
===
As for learning math, I find it's easier for me to learn math while working on a project. Pick up a good vector / matrix math book, and write a software renderer. You'll get up to scratch with the necessary math in no time once you've put it to practical use.
==
As for a list of awesome sites, just take a look here: http://www.realtimerendering.com/portal.html
There's already a lot of great answers, so I won't go over all that again, but if you're interested in writing an engine, this is the book I used as reference material when I wrote mine: https://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135
Not necessarily source code, but Game Engine Architecture is practically the Bible when it comes to this topic.
I'm working on a large OpenGL tutorial site that is specifically aimed at beginners trying to learn modern OpenGL with clear samples and easy-to-understand sections. It's not finished yet but should provide a good resource for getting started and getting a hang of shaders. Take a look at www.learnopengl.com and see if it's something that suits your needs :)
Also, take a look at:
Real-Time Rendering: great book on modern OpenGL with a focus on shaders (although not specifically aimed at complete beginners).
Open.gl: good resource for starting modern OpenGL. Easy-to-understand.
Arcsynthesis tuts: very extensive OpenGL tutorial that goes into much more detail, making it more rewarding, but also more complicated for beginners.
If this is the book you're referring too, it came out in 2000 and is definitely outdated. From your post it sounds like you're kind of confused on what OpenGL really is. OpenGL is a specification for a graphics API that is implemented by various hardware vendors (AMD/NVIDIA for ex.) which you can use to make their hardware do stuff without having to worry about differences between the platforms. You can read up on the OpenGL spec and documentation at OpenGL.org.
FreeGLUT isn't a replacement/substitute for OpenGL, it's a library that makes it easy to open up a window and get an OpenGL context for rendering on Windows/Linux/Mac without having to worry about each OS's differences (it also lets you handle input I think). There are many libraries capable of doing this, or do this and provide much more: SDL, SFML, GLFW. GLFW is window/input only I think, but SDL and SFML also have their own simpler rendering APIs along with providing sound playback, networking and so on. Another really useful library is GLEW which lets you get access to various OpenGL extensions and modern functions across OS's.
If you want to learn modern OpenGL (3.3+) (which is the one you want!) the /r/opengl subreddit has some good links on the sidebar, and the 8th edition of the Red book just came out recently covering OpenGL 4.3. Although the Red book's focus is on OpenGL not rendering theory, so I think for a beginner you'd need some supplemental material to cover theory. A book I've found really helpful that focuses on the math/theory behind graphics programming is Real Time Rendering which is API agnostic (ie. just math/theory/algorithms). One of the authors of the book actually put up a course on Udacity: Interactive 3D Graphics, which teaches graphics programming through WebGL (including math/theory!) and you may find that really helpful. WebGL is OpenGL ES 2 in Javascript, and OpenGL ES 2 is based on OpenGL 2 but without the ancient fixed function stuff and looks more similar to OpenGL 3.3, so it's kind of inbetween OpenGL 2.1 and 3.3, so it's certainly modern enough and a course worth taking, even if your plans are to work on the desktop later.
There is a free version of VS, but you can do OpenGL programming on Linux as long as you've got the drivers for your graphics hardware, so no reason to switch unless you want to or can't get the graphics drivers.
The best way is to understand the graphics pipeline, what all stages are there, how your geometry data flows through the pipeline and what fixed pipeline does for you. Then you will start appreciating the programmable pipeline more.
If you're serious about understanding the core of Computer Graphics, get Real Time Rendering.
You can read first few pages for free at Amazon where they give a good introduction to the graphics pipeline.
Keep in mind that 99% of video games are developed using a game engine. For 3-D games the primary game engines are Unity and Unreal. Those engines may use OpenGL under the hood, but they give you much easier-to-understand high-level abstractions for working with 3-D objects. OpenGL is extremely low-level.
There are many concepts that are important to know either way, though - such as using a matrix to represent a 3-D transformation. For that, I'd recommend a textbook on computer graphics like Real-Time Rendering.
Programming is one thing, game programming is another. Get a good handle of the basics first. Build some small tools and get a feel for developing with C#.
After you feel comfortable there (so a solid understanding of design paradigms, efficient development, classes/variables/interfaces, composition over inheritance, etc) then move onto game specific development. I would recommend grabbing some graphics books (I personally can't recommend Real Time Rendering highly enough) and maybe a few basic math books covering linear algebra. Understanding AABBs will also help for more games that involve moving components. Learn to sweep test and test for collisions.
Stay away from writing your own tech when possible. If you want physics in your game (by physics I mean real physics that can't be created by AABBs) then grab an existing library like Box2D and use that. I use Shoebox for creating sprite sheets.
In terms of frameworks, I've been using MonoGame but there are others (libGDX is a great one, obviously there's Unity which is a full engine but I'm not a fan of it for anything other than prototyping).
Basically, take your time. Build things that are realistic for your skill level (don't go off thinking that a Skyrim clone is a good place to start). Think up a basic idea of something small... then cut it in half (because I can guarantee you it'll still be too big in scope).
I'm always a fan of seeing people learning to develop games! Good luck!
Real Time Rendering?
I liked this one https://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231/ref=sr_1_1?s=books&ie=UTF8&qid=1485480730&sr=1-1&keywords=3d+maths+primer+for+game
Some things:
GPU Pro is the sequel to the ShaderX series, its mainly just a rename not much has else has changed.
GPU Gems 3 is available for free here: http://http.developer.nvidia.com/GPUGems3/gpugems3_part01.html
GPU Gems, GPU Pro, and ShaderX(excluding the first 1-2 books) are basically collections of rendering techniques and tricks, they don't cover any basics, so you probably shouldn't buy them if you are looking for an introduction.
While books like the Black book and Graphics Gems are an interesting read, a bit too much stuff in them are somewhat redundant.
The "Must reads" on the site are pretty good, depending on your background you maybe want to also read a Math book. like: http://www.amazon.com/Math-Primer-Graphics-Development-Edition/dp/1568817231
personally, I used this book to refresh myself on the basic vector math and finally understand some 3d linear algebra concepts. It probably goes a bit deeper than you'd ever need to know if you're using an engine (how 3d transformations work on the matrix-level, quaternions, polar mathematics), but the book uses extremely accessible language to explain everything, so you rarely feel confused like your typical math textbook.
I haven't read it, but this book is that standard in what people typically refer to for gamedev math. If you want to be experimental, the same author just released the first part of a series for game engine development. while it ultimately goes in a different direction, the first book here should cover the important math needed, and it is under half the length of the other books.
Checkout Challenges for Game Designers.
Challenges for game designers is a highly recommended book, although it is not designed to be used with kids. Might have good exercise ideas, though.
Edit: also, will there be time to play games? Playing some simple games and breaking down the mechanics involved, like deduction, set collection, drafting, etc, could really be illuminating.
I've just started reading Challenges for Game Designers. It comes highly recommended.
I would also suggest looking into Cheapass Games and their theories on design, which are largely about reusing components common to all games.
This course is just intended to be introductory, so yes, there's plenty of things to learn after this first step.
The most important goal is to figure out how you can keep practicing, and for that you need to be able to share and discuss your work with others. If you manage to find local game designers while taking this course (e.g. fellow participants of 11.126x) the next step might be to start a project with them. I also love game jams, which are like game hackathons. The Global Game Jam happens every year in late January, and if making a game in 48 hours sounds appealing to you, it's a good challenge.
There are quite a lot of good books I'd recommend. Challenges for Game Designers (Brathwaite/Romero & Schrieber) is probably a good second step after our class, especially if you're focusing on card/board game design. If you're looking for reading that's focused on more digital design, look at Game Design Workshop by Tracy Fullerton.
Also, I have a whole lot of classes on MIT's other online courseware site, OpenCourseWare! Just search for "Philip Tan".
Challenges for Games Designers is a book I regularly recommend when people ask me for a book.
Otherwise it's just lots of work, Games Design is like a muscle it gets easier and stronger through use.
Run through the exercises in this book: http://www.amazon.com/gp/aw/d/158450580X/ref=mp_s_a_1_1?qid=1411126640&sr=8-1&pi=SY200_QL40. They are all non-digital games, but that's they best way to start to understand how to design games. Each chapter goes over some key concepts and then presents challenges that enforce them.
https://www.amazon.com/Elder-Scrolls-Official-Cookbook/dp/1683833988
This one is more just baked goods, but Magnus does have a Nordic Cookbook that's also worth a look through.
If you're a gamer at all, the book that brought me to this sub to learn more about mead was The Elder Scrolls Cookbook. Fun recipes, even if you're not trying to recreate something from the game world.
https://www.amazon.com/Elder-Scrolls-Official-Cookbook/dp/1683833988
​
It is the official Elder Scrolls Cookbook
For those interested :
The Elder Scrolls V: Skyrim - The... https://www.amazon.fr/dp/1783293195?ref=yo_pop_ma_swf
Check out this baby. It collects a lot of books from the single player games and pairs them with nice artwork. There's an ESO version, too.
http://www.amazon.com/The-Elder-Scrolls-Library-Histories/dp/1783293195
https://www.amazon.ca/Legend-Zelda-Complete-Official-Collectors/dp/1911015222
真のエンディング見ないままコンプ率上げるためにハイラルを彷徨う毎日
祠116、コログ309くらいでやっとコンプ率50%超えた(攻略サイトの使用なし)
ぶっちゃけ600個もコログの見落としがあるとか信じられないけど、最近になって
杉の木のてっぺんに登ると触れるタイプのコログの存在を確認して軽く驚いた
ガイドブックをそろそろ解禁しようかな
Thanks, ordered the Breath of the Wild CE guide for $27.59. Seemed like a good price. https://www.amazon.ca/gp/product/1911015222/ref=od_aui_detailpages00?ie=UTF8&psc=1
Certainly! https://www.amazon.com/gp/product/1911015486/
In addition to the farming:
Like the original guide, it comes with a map with Korok seed locations -but- I would highly recommend using the atlas unique to this guide instead. I was very, very careful with my poster-sized map but it still wore out fairly quickly. You don't have to worry about the atlas in the expanded guide wearing out nearly as fast.
You have quite a bit of research to back you up. James Gee out of Wisconsin is one of the more outspoken advocates of what you just said. Learning takes place through video games, even if it's not the kind found on standardized tests. In fact, the sources are endless. On top of that, don't even be so quick to dismiss edutainment. Some 2004 research suggests that those trivial edutainment games still increase learning. It's probably because even though the content is dry, simply being a video game is enough to increase motivation and self-efficacy. Practically any well-designed video game has potential, with some especially interesting work happening right now with Portal.
This book is great:
Characteristics of Games by George Skaff Elias, Richard Garfield and K. Robert Gutschera
http://www.amazon.co.uk/Characteristics-Games-George-Skaff-Elias/dp/026201713X
Characteristics of Games is a touch dry but it goes into pretty good depth.
https://www.amazon.com/Characteristics-Games-Press-George-Skaff/dp/026201713X
Dude earned a Ph.D. in combinatorial mathematics.. I'm going buy his book https://www.amazon.com/Characteristics-Games-Press-George-Skaff/dp/026201713X
I would always suggest starting with Characteristics of Games before diving deeper.
Many of the suggestions on this list are great (Koster's "A Theory of Fun" is especially good in my opinion), but one of the best books I've read is Katie Salen and Eric Zimmerman's "Rules of Play".
In some ways it's an introduction to game design for designers, but it's way more than that - it touches on the philosophy behind "play" and "games," histories of gaming, personal anecdotes, insights from famous designers and way more.
You can ind a PDF of it very easily on Google, but I think buying it is very, very much worth it.
Also, as a shameless self-plug, I did my PhD work on videogames so I'm happy to talk about resources etc. - PM me or reply and we can chat about it!
Rules of Play is an amazing book, it's a shame you haven't read it. Its one big drawback is that it focuses very little on video games in particular and goes in-depth on what separates games from non-games, and how various kinds of games are constructed.
It may not be useful to someone looking to get their hands dirty and start throwing Flash at the Internet, but it's a very good "big picture" book when you want to know more about the philosophy and mindset of building games. How to encourage behaviors, how to subtly direct play so your players don't get lost or confused, how and why you give feedback via play mechanics, and things like that.
For basic Ludic principles, you will probably want to read Rules of Play at least.
Software isn't important (yet - you will be led to that by your programming), being able to draw isn't important though it can make things easier when you are on your own (you will need for sure to know how to use Photoshop or Gimp), actually making things and working out what is fun is important. For that, I'd recommend, while you are learning the basics of programming, making card games and board games. Then, once you have some programming basics, try and make a computer game - either an implementation of one of your physical games or to try making your own versions of classic games (lightbikes, pacman, breakout, rtype, pretty much every game made before 1985 that isn't Elite can be made by a beginner). You can also try focusing on making something classic but playing with one element of the gameplay and seeing where that takes you.
Have to add another recommendation for The Art of Game Design by Jesse Schell. A Theory of Fun for Game Design by Raph Koster is also a very good, accessible read (and heavily illustrated, which is always nice!)
Finally, Rules of Play: Game Design Fundamentals is good for a more exhaustive, technical look at game design theories.
For game DESIGN, I personally like A Book of Lenses and Rules of Play. I didn't get much out of Theory of Fun, and the internet seems to like Level Up! but I haven't read it.
And none of those teach you really about game DEVELOPMENT -- the process, gameplay architecture philosophies, the pipelines, the team structures, the milestones, the industry jargon. The closest I've seen to that is having a games producer de-code chapters of Rapid Development for how it relates to games, back before I joined the industry and had my trial by fire. :)
Do you know what kind/platform/genre of game you're making, and what size the team is?
(Re)lendo o Rules of Play, livro sobre game design bem interessante.
http://www.amazon.com/Rules-Play-Game-Design-Fundamentals/dp/0262240459
Great questions!
G4tv's Filter example: http://www.youtube.com/watch?v=Kr4rZgV8BAE
G4tv's Icon example:http://www.youtube.com/watch?v=ubokT1_AZWo
While G4 had the ability to have gaming journalist on their shows (with a mix of fans) at this point, we won't, and I don't think they are necessary at this point. That's not exactly what we're looking to develop. You could read books based on the history of video games and get some much more from them than a video could ever provide (http://www.amazon.com/The-Ultimate-History-Video-Games/dp/0761536434), but ours isn't just the facts on the history of video games, it's the stories of those who were playing. I think a roundtable debate-type show would work wonderfully with industry veterans in a podcast, but that's not what we are working at.
We want to build a show that gives you the history and the story of the console/game/company, but also the perspective of the people who were playing the games, following the companies, and the impact it had on them. The countdowns are decided by industry professionals but by the people participating and the viewers themselves.
I really like the idea of what you're talking about, but that's not quite what we're going for at this time.
Phoenix: the Rise and Fall of Videogames by Leonard Herman.
The Ultimate History of Video Games by Stephen L. Kent.
High Score! by Rusel DeMaria and Johnny L. Wilson
I hope these help. They are some of my favourites.
The Ultimate History of Video Games: From Pong to Pokemon--The Story Behind the Craze That Touched Our Lives and Changed the World by Steven Kent
Game Over: How Nintendo Conquered The World by David Sheff
Joystick Nation: How Videogames Ate Our Quarters, Won Our Hearts, and Rewired Our Minds by J. C. Herz
Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture by David Kushner
Digital Play: The Interaction of Technology, Culture, and Marketing by Stephen Kline, Nick Dyer-Witheford and Greig De Peuter
Replay: The History of Video Games by Tristan Donovan
All Your Base Are Belong to Us: How Fifty Years of Videogames Conquered Pop Culture by Harold Goldberg
Vintage Games: An Insider Look at the History of Grand Theft Auto, Super Mario, and the Most Influential Games of All Time by Bill Loguidice and Matt Barton
Raising the Bar is pretty good, if somewhat difficult to find a hardcopy of.
I couldn't find it either, BUT I discovered that there is a book about the Half Life games!!!!!!!!!!!!!!!!!!!
GET ON THIS EFFIN HYPETRAIN BOYS!!!!!!!!!!!!!!!!!!!!!!!!
If you want a book about the making of Half Life 2 with lots of concept art, there is one already:
https://www.amazon.com/Half-Life-2-Raising-David-Hodgson/dp/0761543643
Yup! I have limited control over this, but I'll try to get it everywhere I can. amazon.de has it for sale now.
I'd put them in this order: Experience, Knowledge, Portfolio, College
Nothing beats experience, and with it will come the knowledge. But it always helps to spend your free time reading, too. There's tons you can learn from books that will slip by you, even after decades of experience.
Then, a portfolio of your previous work is always more telling than a piece of paper saying you managed not to party yourself into a failing grade. (I'm a little salty about college.)
Game Patterns are going to be your most important thing to know if you want to get on the coding/development side. There's a book by Robert Nystrum - who worked for EA, and hangs out here on Reddit - that is one of my favorite books on programming patterns to date (and the patterns are not limited to game design). I would strongly recommend this as a starting point for any game dev.
Scrum is fine and dandy if you're working on a small team, but I wouldn't focus too heavily on it, especially not if you intend to work alone. Even if you're going to work on a small team, Scrum is a development lifecycle that you can learn in 6 minutes by looking at a chart. Don't worry about it.
The language of your choice is going to primarily be driven by what platform you're designing for, and what kind of game. Working on a AAA title? You're probably going to be in C++. Working on a game for Facebook? Probably going to be in Flash. Working on a game for cell phones? Probably going to be in Java. Looking to make a simple DirectX (windows only) game? Probably going to be in .NET.
As for anything else (assets / scripting / etc.) this will come with time. I would strongly recommend you start with a very, very simple do-it-yourself game (think Tetris). Even if it's a clone of another game. (But don't clone Tetris. They LOVE to sue people.) Minesweeper is always a good one to start with (being a strictly event driven game, you can whip up a fully functioning mine sweeper in an afternoon).
Then move on to another simplistic 2D game. (I feel like everyone should start by making an Arkanoid clone, though I've also helped people make simple 2D racing games and such.) Finally, move on to making something a bit more complex that would be worthy of your portfolio, without trying to jump into the next great MMO.
And who knows, maybe even one of your tech demos can make you filthy rich. (We all dream of being the next "Notch" with
MinesweeperI meant "Minecraft"...)Edit: I also left out the possibility of using a game engine for your development. Unity is popular, but there are more game engines out there than you can shake a stick at.
Personally, and this is strictly personal preference, I prefer the flexibility given by rolling my own code. Game engines can cut your development time by YEARS, but then you're forced to find, and work around any quirks or limitations the engines have (and they all have them). I find that so unbelievably frustrating to run into a wall like this that I'd rather take the extra eons to roll my own. (But then, I've never managed to release a completed commercial title, so there's that.)
I agree with learning vanilla js, but I would add that you should be looking at things like the DOM specs. To me, it's like building a house. These are the things that all the houses (frameworks) are build from. You don't need to be able to build a house, but knowing the basics can save you from huge mistakes, or just serious time wasting. Knowing the basics means that you know what the frameworks are there to help with, which means that you can evaluate their weaknesses and strengths yourself, and then you won't need to ask other people what they think.
I'm currently working through Professional Javascript for Web Developers, and just the first few chapters I've covered have me blown away at how little I actually knew. I've done tons of online tutorials and courses, and this book blows them all out of the water completely. But keep in mind that I'm the type of guy who really hates not knowing how things work. I don't want to do something just cause "that's how you do it", I want to do something because "that's the best way to do it right now, here's why..."
Level Up! 2nd Edition by Scott Rogers - funny, accessible and packed with knowledge. Much lighter than The Art of Game Design if you're looking for an entry point.
I've decided that for my summer project before starting university I'm going to make a game with hopes that it will be somewhat similar to the kingdom hearts series.
As a 3D artist I have a lot of work cut out for me, especially considering I have about 3 and a half months to do this. I hope to do it all using just UE4, 3DS Max and Photoshop, being solo the whole time. Now I just need to go back through my old work to refresh some key aspects to game design and read this book again.
Wish me luck!
Reality is Broken by Jane McGonnagal
It's non-fiction about the way video games can impact society.
http://www.amazon.com/Reality-Is-Broken-Better-Change/dp/0143120611
In short, real life isn't really designed like games are so you don't get as much of the positive feedback sort of stuff in day to day life as you do in games. There are ways to 'gamify' parts of your life though, to make them more enjoyable and such to do. If your interested in this sort of stuff and how you(and the world at large) could incorporate it more, I recommend this book by Jane McGonigal, Reality is Broken.
I draw Good :3 I embraced my inner spirit and really captured my essence.
Enjoy!
Item (used)
Thank you for the contest!
One of my favorite books is Characteristics of Game Design (https://www.amazon.com/Characteristics-Games-Press-George-Skaff/dp/026201713X).
By suggesting the possibility of a system that is absolutely not an inference that I "want" said system or that I think it's "good" or alternatively "bad". I am well aware of what terms I used, what they could mean, etc. but for a conversation like this I didn't think it was worth a whole lot of thought. I was just saying that such a thing "could" exist. But now it's stuck in my head a bit.
A really small "deck" mechanic that could possibly be scaled to mmo action game speeds might be something like the Crusader class from 3.5 D&D in The Book of Nine Swords. I had to refresh myself a bit on how it worked.
They start with five "manuevers" at first level, but when they start combat they only have two of those readied. You "could" use dice or any other random method to determine which ones in table top, but cards were a pretty convenient way to do that. It was a tiny deck, but still a deck. You would get back additional manuevers every turn. Where it got interesting was eventually between some feats (and stances?) and more manuevers at higher levels and some class features they could be played quite a bit like an MMO tank, shrugging off a portion of damage and using that to reset some of their manuevers.
It was a small enough number of decisions that I think you could play something like that pretty quickly. Maybe throw in something like the world of warcraft monks stagger mechanic where as they mitigate damage they add "wound cards" to the deck and they can clear "wounds" with certain manuevers, or take more of them or use them to deal damage with counterattacks.
I've been meaning to read Characteristics of Games. It's the textbook that Richard Garfield uses in his game design classes.
Not sure why my post gets downvoted? Lol, i guess i should just not respond?
anyways, here is one book. It's very general but actually really valuable as a starting point https://www.amazon.com/Characteristics-Games-Press-George-Skaff/dp/026201713X
Set additionally REALLY pisses people off because of the hand occlusion cause by the mechanical laying out of the cards.
But things based of mental skills like set are really only fun when played with things that dim those mental skills. Otherwise, it's more a test of "who's best at pattern recognition" by the third game.
In games with too much skill and too little randomness, enjoyable games are really only possible with someone of almost the same skill level.
http://www.amazon.com/Characteristics-Games-George-Skaff-Elias/dp/026201713X by George Garfield (the creator of Magic) talks about this and many other game topics. Ebook available here
http://www.amazon.com/Characteristics-Games-George-Skaff-Elias/dp/026201713X
and
http://www.amazon.com/Thinking-Strategically-Competitive-Business-Paperback/dp/0393310353
are both great books about dissecting strategic situations. It will really help.
When playing with repeated partners, it's also a problem they know how YOU play. It's important to vary strategies sometime so you don't cede the field to your partner.
The book Characteristics of Games does a good job of talking about strict elimination versus logical elimination versus effective elimination. I think this is relevant here.
Strict elimination: The player is literally out of the game.
Logical elimination: The player can't win, but they're still in the game (aka mathematical elimination).
Effective elimination: While there's a theoretical chance the player could win the game, it's not realistically going to happen.
Strict elimination isn't a problem (except for the player who has to twiddle their thumbs while everyone else keeps playing). It can be boring for the eliminated player, but it doesn't break the game.
Logical elimination is horrible. It can lead to kingmaking in multi-sided games.
Effective elimination is almost as bad, because the effectively eliminated player may want to be done, but the other players will want them to play it out since there's still some uncertainty.
So, back to the original question: If the game has reached the "logical elimination" point, as in the original example, I think it's appropriate for the losers to congratulate the winners on their victory. "Ah, good game - you've got the win. Congrats. Another game?" Forcing the eliminated team to go through the motions seems like the worse evil to me than denying the victors the pleasure of the final couple of moves toward the official victory.
Effective elimination would be trickier. One player / team feels that the other has an insurmountable lead, though they theoretically have a shot at victory. In this case, the game should continue, but everyone should try to make it end as soon as possible. (For instance, being down to just a couple of territories in a game of Risk.)
These issues can be a symptom of poor game design. Fortunately, they're rare in most modern board games.
You might want to give a few of these a read before diving right in. Just because you have some experience playing various games does not mean that experience is going to completely transfer over to game design.
Kobold Guide to Board Game Design
Characteristics of Games (MIT Press)
The Art of Game Design: A Book of Lenses, Second Edition
Rules of Play and The Game Design Reader by Katie Salen and Eric Zimmerman are great reads about the craft and art of play. Here they are attempting to establish a critical vocabulary to handle games as pop culture. If you're serious about taking games as an art, they're very interesting reads. The Game Design Reader is my favorite.
Also, heard some great things about Janet Murray
s Hamlet on the Holodeck. This was written around the time of Star Trek: The Next Generation, as well as a time when Adventure Games were king. It's interesting to me essentially because this futurist look at video games as entertainment actually doesn't follow the progression in the last 20 years. That is, until recently with Quantic Dream and Telltale games. That said, I've become even more interested in looking at Mechanics as vocabulary (see the other front page thread about Mechanics that tell a story).
Hope these help.
A good starting point is to identify what you want to do exactly. Find your focus on what you plan on attempting, then think smaller. Most first projects are very ambitious (while good) can lead to you making something not worth your time, headaches and just frustration.
However with that being said, here’s a few ideas to help get you started. If you want to just jump in and get your hands dirty and start working on a visual level you can try these programs:
More Advanced:
---
Alternatively in conjunction of playing more games in your lifestyle, I would highly recommend you start to read blog posts, writings and articles on game design, theories and practices as well what industry leaders are talking about. While most people who love and have a passion for games watch game reviews, you’re going to want to focus onto sites like:
---
A book you may want to consider picking up:
---
Back to your original topic about programming. While doing all of these so you understand what it takes to make a game, how a game shapes or how a game can be fun its time to start learning the important type. Which is the programming side. Now before you continue, programming isn’t always for everyone, but don’t let that discourage you. You may find while programming you love it, you may find you don’t like it. Programming is a tool which you can add to your arsenal of design and implementation and its smart to grasp the basics if you plan to get into game development even if you find yourself not savvy in it.
The game makers I listed above each have a language that works with them. For example Game Maker has GML which is its primary language. RPG Maker has RUBY as a base and they use RGGS3 (I think that’s the current revision). Flash uses a scripting/programming language known as ActionScript 2 or 3 depending on what your accomplishing. Unity 3d uses C# and Mono, Javascript and I think another language but don’t quote me on that.
Since you want to start from scratch the only advice I can give you is this. Don’t give up. Keep persistant. I would recommend that you start at an entry language that helps break down a lot of the tedious tasks and makes it more adaptable towards learning such as Python.
Some resources:
I hope to see questions popping up as your understanding the basics of Game Design and game creation. It is always good to see people entering the field and tragic when people give up. Remember, start small. Do not expect to make a Minecraft clone within the first few days of learning a programming language, you need to practice and start small. Chances are your first few games are going to be clones of Snake / Pong / Tic Tac Toe etc. These are learning tools to help you understand how its created, the logic behind it and building/stepping blocks into a solid foundation.
Don’t give up and start learning everything you can. Apply yourself and keep moving forward and you will do just fine. Welcome to the club!
Need more information. Is this a hobby? Are you trying to program a game or are you trying to design a game? And just FYI, programming is hard... programming a game is the hardest. There are many movie parts to game programming. Just be aware of that.
If you're a hobbyist and you want to learn how to make digital games, start with an easy to learn programming language like Processing. http://processing.org/
If you want to design games then pick up this book http://www.amazon.com/Rules-Play-Game-Design-Fundamentals/dp/0262240459
If you want to jump into 3d, try out http://unity3d.com/. I recommend programming in C#.
If you're a hobbyist, you don't need to delve in super deep and use complicated tools. Processing is very friendly and was designed for graphic oriented designers to learn how to program. Unity3d makes it very easy to make 3d games with specialized IDE and interface.
My recommendation for this would be twofold: Grab an Unreal 4 subscription and burrow through the ever-increasing collection of tutorials there. You'll learn the nuts and bolts of level development using the same tool the professionals use. To develop your design skills, there are three books I'd recommend you read, in this order: Raph Koster's A Theory of Fun, Jesse Schell's The Art of Game Design, and Katie Salen and Eric Zimmerman's Rules of Play.
Following these two tracks of learning the practical elements of game development along with the theory of why game design works the way it does will get you started on a good footing.
> I have no doubt that all of the other ones are amazing games.
Actually a lot of the games I mentioned are terrible or niche. I mentioned them because you need to play bad games to learn why they don't work. Basically, you need to have a vocabulary and literacy in games before you start designing.
Also, the "I'm only designing for my friends" canard (in addition to being the #1 backpedal the instant an amateur is challenged), is a bullshit defense because if you're designing for your friends and don't intend to publish then you don't need advice from us, just do your thing.
E: A few good books that you should read before designing anything: Robin's Laws by Robin Laws, and Rules of Play
If you can get away with a required book, I would insist you use Theory of Fun. It's not about boardgames specifically, but more about what is fun and why games are fun. It's quite easy to read (every other page is a drawing), but it's excellent and deep. It would definitely give you a good foundation to go on and talk about games from a more educated standpoint.
"Why do you like this game?" "Ok, do you remember where the book says that's a fun thing to do?"
Or look at some critically acclaimed games and see why they fall under good design, or some popular, yet poorly designed games and why some people don't like them (Monopoly for one).
Scott Nicholson had a great video series called Boardgames With Scott that might have some useful videos. He's currently at MIT on sabbatical doing game design/teaching research (looks like maybe he just finished).
If you're looking for a book for yourself,
You'll notice a lot of them aren't specifically games, but deal with fun and play. It's important to understand those before you can talk about games. That is also a good topic. What is a game? How do you define it? http://en.wikipedia.org/wiki/Game#Definitions
I personally like Chris Crawford's definition, but you get a lot of backlash from the general public for such a strict definition, as if forms of interactive entertainment are somehow inferior if they are not "games."
I'm just sort of rambling and vomiting thoughts here, but to summarize some topics I would want to go over:
Artificial intelligence could be an interesting side topic. Looking at search algorithms and how they are used to solve tic-tac-toe and how you use the EXACT same method to solve checkers or play chess and go (currently unsolved).
If you do decide to talk about a variety of games, here are some I would suggest you look at:
As you can tell, I love stuff like this. Let me know what you think about my ideas, or if you want to talk more or throw ideas back and forth, feel free.
Other sources:
Play a ton of games. Try games that are outside of your comfort zone! the Book Rules of Play is great too
I found "Level Up! The guide to great video game design" to be an interesting book that describes on what you should aim for in your game mechanics, enemies and such. Plus pretty easy to read, both in length and content.
I haven't read this other one, but I've heard Rules of play is a pretty good one too.
Another great source are youtube channels. My personal favorite is Extra Credits. I'm just about to get into the industry so it might be worth keeping that in mind ^^"
I'm not going to continue to argue with you because it's clear that we're not going to agree.
However, if you're interested in the evolution of the game industry, there are some good resources for you I can recommend. And yes, oversaturation was a problem but there were many societal factors as well.
http://www.theverge.com/2013/1/16/3740422/the-life-and-death-of-the-american-arcade-for-amusement-only
This is a fairly concise article that could be a summary of https://www.amazon.com/Ultimate-History-Video-Games-Pokemon/dp/0761536434 which is more in depth but really recommended. I enjoyed it greatly, its fascinating.
Just giving a glance at the full playlist, I can see a couple of one-off filler episodes. I can also understand the need to expand to doing a genre episode, like MMO, instead of just sticking to a single company.
This kind of content in general is the stuff I love. The recent Game Informer has something like a 10 page article on Ubisoft that is absolutely great. One of my favorite books is still The Ultimate History of Video Games
I think I could literally watch 100 hours of content just like "All Your History".
This was also the first arcade game that charged 50 cents instead of the de facto standard 25. Rather controversial, but justified when you consider the technology.
Also pulled out my http://www.amazon.com/Ultimate-History-Video-Games-Pokemon--/dp/0761536434/ref=sr_1_1?ie=UTF8&qid=1323953193&sr=8-1 copy. No mention there, but the Dragon's Lair unit cost $4,300 (which is just under $10,000.00 in today's dollars) which could justify a 100% price increase.
You can also google "dragon's lair 50 cents" and find plenty of other confirmations.
edit: added citation original PDF from Spartanburg
The hardware was licensed out by the creator, Trip Hawkins. If you really want some info on the history of video games, read this.
http://www.amazon.com/Ultimate-History-Video-Games-Pokemon/dp/0761536434/ref=pd_bbs_sr_1/103-4689418-4815003?ie=UTF8&s=books&qid=1188143982&sr=8-1
Your local library might even have it... this book is freaking great.
Older Atari arcade equipment had a pretty interesting testing process. They had the biggest guy in the company try to break them. If he could break it, you had to redesign it.
I think this was the book I read that in.
I highly suggest this:
http://www.amazon.com/The-Ultimate-History-Video-Games/dp/0761536434/ref=sr_1_1?ie=UTF8&qid=1348588635&sr=8-1&keywords=the+history+of+video+games
I love books on gaming history. If you're interested, I'd recommend Steven Kent's Ultimate History of Video Games and David Sheff's Game Over
I think this originally appeared in Half-Life 2: Raising the Bar. It only had a short print run, but PDF copies are floating around the web. It's a pretty neat book on the making of HL2.
I effing love that book and I'm glad I got a copy while I still could.
http://www.amazon.com/gp/aw/d/0761543643
Have a look at that.
The books called 'Half-Life 2-Raising the bar'
This may be what you're looking for. I actually have a copy myself but haven't cracked it open yet :P
Game Programming Patterns by Robert Nystrom. It started as a free online book, but he got it published so it's on Amazon now.
https://www.amazon.com/dp/0990582906
What kind of games? Mobile games? Browser games? Desktop/console games?
If you're into building games entirely from the scratch and have it run on desktops and mobile devices, I'd suggest trying out the SFML framework (C++). They have some nice tutorials on their GitHub Wiki
Keep in mind that those are just the basics. If you prefer some more comprehensive literature, I'd recommend the following books:
Game Coding Complete
Game Programming Patterns
Game Engine Architecture
If you are looking toward application development(games or otherwise) I'd suggest looking at more practical beginning programming books, don't even worry too much about making a game yet or building complex algorithms. I've found the Head First series fairly good in the past, so maybe try out https://www.amazon.com/Head-First-Java-Kathy-Sierra/dp/0596009208
Once you get your head around basic application development a bit more, I would highly suggest learning design patterns and can fully recommend the Head First book on that topic.
https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124
You can follow that up with the Game specific book on patterns, https://www.amazon.com/Game-Programming-Patterns-Robert-Nystrom/dp/0990582906
With all of that you should have enough to start asking more pointed questions and being able to Google up useful answers and tutorials that will get you on the road to building games.
Edit: That said, if you are looking at doing to extensive AI programming, specializing in engine design or other systems type development, start looking for books on the topic that interests you most. It's pretty easy to Google up book lists on these kinds of topics, and from there you can cross reference recommendations and should be able pick out ones that will help you get started.
The Pragmatic Programmer
Design Patterns
Game Programming Patterns
"Game Engine Architecture"
http://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010/
and "Game Programming Patterns"
http://www.amazon.com/Game-Programming-Patterns-Robert-Nystrom/dp/0990582906/
http://gameprogrammingpatterns.com/
come to my mind.
Amazon link
Game Programming Patterns
Great book. Code samples are concise, mostly in C++ but simple enough to follow without being a C++ expert. Text is so well-written I'm enjoying reading the book cover-to-cover, it flows well and the author comes across as a naturally funny person. But you don't have to read it straight through, each chapter covers one design pattern and stands on its own, with references to the other chapters.
> Professional JavaScript for Web Developers
I don't know of any significant differences between editions but I'm using the 3rd edition(latest) published in Jan of 2012:
http://www.amazon.com/Professional-JavaScript-Developers-Nicholas-Zakas/dp/1118026691
I've heard great things about Jon Duckett's JavaScript and jQuery - Interactive Front-End Development. Apparently the book's binding completely blows (pages falling out even with very little wear and tear), but the content is supposed to be really great for people just getting started with JavaScript and struggling with some of the core concepts. This book is made for visual learners, who get more out of diagrams, analogies, and examples than from reading long, tedious blocks of text.
In other words, this book seems to be great for JavaScript novices (and programming novices) who just want to jump in, learn some basic concepts from a well designed and easy to read book, and start actually working with some JavaScript in the browser. From the book's Amazon page, each chapter is described as follows:
Once you're a bit more comfortable, the go-to book for beginner to intermediate JavaScript learners is Nicholas Zakas's Professional JavaScript for Web Developers. It's a much thicker tome, but covers more concepts in more depth.
This book is much more than just "pure JavaScript outside of the browser" (it also contains lots of info/examples for doing real things in the browser), but it does go into great detail about all the intricacies, syntactical oddities, and gotchas of ECMAScript, which you do really need to learn to become a fully competent JavaScript developer. This book is also written well and is easy to read, but it's not designed/presented as nicely or simply as Duckett's book. The Amazon page says the book is written for the following three groups of developers:
No, I have not yet approached the instructor about this. The entire book uses inline HTML event handlers. Unfortunately, I am not in charge of choosing the books for our curricula.
I've already started reading about event handlers in javascript, and I have been supplementing my own education by reading Eloquent Javascript and Professional Javascript for Web Developers. However, for my class we're forced to read the book and use its examples.
I've already pointed out that one of the examples, when using the text provided from the textbook and even after converting to HTML5, simply will not work at all in IE. In another instance, we were doing online introductions and I mentioned I was working through EJ and she started asking me about whether or not I thought it would be good as a textbook in class. I'm pretty sure she's aware of the flaws of the book, but just hasn't been able to settle on a modern replacement.
It's driving me crazy to know that I'm not learning standard best practices, but I just don't know how to proceed. Do I really have to be "that guy" that calls the teacher out on their textbook? Is it ok for me to ask that I create all my event handlers properly in javascript instead of the way the book teaches?
I would recommend https://nostarch.com/oojs or https://www.amazon.com/Professional-JavaScript-Developers-Nicholas-Zakas/dp/1118026691
I guess it really depends on what you want to use it for. Though as it is primarily the programming language for the (front-end) web, i'll assume more or less towards that.
Do you have any html/css knowledge? I'd definitely agree with others that the best way to learn is by doing. This method of learning became a lot easier for me once I was able to start manipulating elements of a webpage; it became much more intuitive and concrete a learning experience. Some basic things to do may include storing html elements in JS variables, attaching events to these elements - for example clicking on en element will execute some code, manipulating other elements' css, creating or removing elements from the page. (the JS library jQuery will be your friend here)
I like this site: http://www.codewars.com/
You'll be prompted to complete challenges which actually accomplish a, small, but technically useful goal, such as writing a function which takes a string of text, and returns the string with each word in reverse order. This was a nice 'next level' for me after doing codecademy.
Professional JavaScript for Web Developers, while lengthy, gave me a comprehensive and best-practice-filled ground-up walkthrough of basic JS. If you're comfortable with codecademy's JS course, this may be a good next step. I definitely felt a very distinct difference in my JS knowledge before and after going through this book.
The javascript jabber podcast was also pretty helpful to me in just listening in on experts in the field talk about the current state of JS. While my first months of listening, the discussions were 90% over my head, I picked up on the terminology, some popular tools, and just the JS environment at large. Easy enough to just have on in the background, commuting, whatever.
Finally, this subreddit, and sometimes r/learnprogramming have some helpful discussions to keep an eye out for.
JavaScript books I'd recommend:
JS Good Parts. Short read but interesting and important concepts covered.
http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742
Professional JavaScript for Web Developers. Covers every detail of JavaScript in web development. Huge book with about 900 pages of information. This covers all the technical details from syntax to core concepts.
http://www.amazon.com/Professional-JavaScript-Developers-Nicholas-Zakas/dp/1118026691
I haven't read the one you linked, but have seen it around. It's probably good.
It will probably serve well enough off as a starting point. It looks to cover a broad range of topics as they pertain to computing, so it certainly wouldn't hurt if you're unfamiliar with those concepts listed in the syllabus. Perhaps such a broad exposure might help some particular facet of computer science really stick out to you as a road you'd like to travel down.
What concerns me is that the course is taught using a stripped down version of JavaScript. I'm not exactly sure what is meant by this--if it's an actual variant of the language or just a "don't bother setting up the template, here's the snippet for this exercise" type deal. CodeAcademy does a lot of the latter--which is fine, but again can leave you with a sense of doing something without truly knowing how to pull all the pieces together.
If you're set on learning just the language of JavaScript really well, bookmark 'JavaScript Is Sexy'. It's maintained by a fellow Redditor and has proven a comprehensive approach to learning the language correctly. Of the two books he recommends, you're definitely better off getting Professional JavaScript for Web Developers by Zakas. Follow the course and advance through it the later stages of intermediate and advanced JavaScript. By then you should be feeling comfortable enough to dabble. Then start looking at frameworks (Ember.js, Angular.js, Knockout.js, Backbone.js) and possibly some server-side stuff like Node.js.
I haven't got more that a handful of chapters in, but so far I really like Professional JavaScript for Web Developers
Here's a good list I keep posting because people often ask the same question - not like it's a bad thing.
In any case follow the below, but I really suggest for total newbies to first go through the course Codecademy offers. It won't teach you much in how to do things but the syntax education is good. Follow their HTML and CSS courses and when you're done, create a site using just HTML and CSS. Once done, try to emulate a few of your favorite sites using just these two languages.
Once done you should check out the free 30 day Tutsplus courses on HTML/CSS and jQuery. At some point you will want to go back to Codecademy and take their JS course. Syntax and method of doing or starting certain things is important. It's incredibly easy to pickup the actual methods of doing things once your head understands the syntax used.
Any form of education that follows a hierarchical format makes for easy learning.
__
Codecademy isn't bad. It won't teach you much in the way of doing things but it does teach you the way to type out code, the general process and stuff. I can't speak for myself because I work as a professional developer and have been tinkering with code for 10 years now, but I did give the first lesson to one of my brothers. He's not great with computers or the Internet, but he was able to follow the first two sections of the basic HTML/CSS course and able to make his own site albeit very basic in nature nearly a month later (3 week gap following him doing the lessons). He was able to do a rough basic site of his Facebook profile, and he nailed it. It should open doors for you in terms of having the basic knowledge of how to do things. It'll allow you to read more advanced stuff and pick it up much faster than if you hadn't.
Below is a list I sent to someone on here a while back.
>
>http://www.reddit.com/r/webdev/comments/1eqaqo/best_books_or_online_resources_for_comprehensive/ca2w2dn?context=3
>PHP and MySQL Web Development (4th Edition)
>
>Beginning PHP and MySQL: From Novice to Professional
>
>Read the second book, do all the examples, then go back to the first book. Pay a lot of attention toward array manipulation. When you're comfortable with that, get into OOP. Once you do and OOP clicks for you, you'll be able to go to town on anything. I've heard a lot of good about Jefferey Way's video lesson courses over at TutsPlus. I've never used them nor do I need to, but I've never heard a single bad thing about their video courses. Their Javascript and Jquery is a great starting point. This is great stuff too if you're willing to put in the time.
>
>Professional JavaScript for Web Developers
>
>JavaScript: The Definitive Guide: Activate Your Web Pages
>
>Responsive Web Design with HTML5 and CSS3
>
>The Node Beginner Book
> Professional Node.js: Building Javascript Based Scalable Software
>
>Paid online "schooling":
>
>http://teamtreehouse.com/
>
>http://www.codeschool.com/
>
>Bonus:
>
>http://hackdesign.org/
>
>
>I've got a shit ton (Excuse my French) of books in print and E-Format that I could recommend, but it would span a couple pages. Anything is easy to learn so as long is it's served in a hierarchical format that makes it easy to absorb the information. A year ago I started to learn Ruby and using ROR as a framework. I can say it's been quite fun and I feel confident that I could write a fully complete web app using it. I started node.JS a few months ago, but it's been on break due to being sick and some unexpected events.
>
>My knowledge is extensive only because I wanted it to be. I'm not gifted by any means nor am I special. Not by a longshot. Some people are gifted when it comes to dev and design, most are not. Most only know one or the other. I forced myself to learn and be good at both. I'm 23, I started when I was about 12. I'm only breathing more comfortably now. I know a load of people on here and other sites who make me look like complete shit.
>
>
>Also for what it's worth, sign up to StackOverflow. It's the bible and holy grail rolled up into one site. It's amazing.
>
>Also;
>
>Hattip to /u/ndobie
>
>> CodeAcademy
> Team Treehouse
> CodeSchool. This is more programming but still very useful & has free stuff.
> Tuts+
> Google. Probably the best way to find out how to do something specific.
> This subreddit. If you have any questions about how to do something, like parallax scrolling, try searching for it, then ask, make sure to include an example of what you want if you don't know what it is called.
http://www.amazon.com/gp/aw/d/1118026691?pc_redir=1396283200&robot_redir=1
this book is like a religious experience
Also, look into the Smashing Library
Professional JavaScript for Web Developers by Nicholas C. Zakas
No problem. I think I answered all of your questions, then, but if you're still a bit shaky on anything, don't be shy to ask more questions.
If you're serious about good user interaction on your sites, I highly recommend JavaScript. I was in your boat too for a while. I didn't find any value in JS beyond making quick popups or input validation.
However, after working at my current job where I did much more client-side programming in JS, I truly appreciate the value of the language. It has evolved far beyond its initial intentions.
If you want to be a real JS guru, read this book cover to cover. Even if you don't want to be a guru, it is a very helpful reference:
Professional JavaScript for Web Developers
Your question is based on some flawed assumptions, which makes it hard to answer. Any game programming 101 course will tell you that strict realism makes a terrible game. That's been known since video games were first invented.
Pretty much nothing you've ever seen in a video game is programmed to be "realistic". Take for example jumping. You've never seen a game where jumping was programmed as authentic jumping for a human body, because that kind of movement feels horribly flat and unresponsive in a video game. So instead, game programmers add things like acceleration curves, sticky platform edges, changing direction in mid-air, etc. None of that is realistic in the slightest, but it makes for a much more fun game. Even the most so-called realistic games routinely take this approach, it's pretty much universal. Realism is generally the first thing sacrificed when trying to make a game more enjoyable to play.
So if you are serious about this, I would strongly recommend you read some of the popular books explaining how to design and program a game. They deal with this issue extensively and early. Here's the one I had in mind regarding this particular question. I believe there's a whole chapter on this very issue.
Level Up! The Guide to Great Video Game Design
Not precisely, no. I own Level Up! The Guide to Great Video Game Design which is pretty good, and does cover some building block mechanic type stuff. But it also has a lot on character design, story, and craft (like game design documents and stuff) as well.
https://www.amazon.com/Level-Guide-Great-Video-Design/dp/1118877160/ref=sr_1_1?ie=UTF8&qid=1522621423&sr=8-1&keywords=level+up+the+guide+to+great+video+game+design
Level Up! by Scott Rogers is a great book. It's an easy read and includes documentation examples.
http://www.amazon.co.uk/Level-Up-Guide-Great-Design/dp/1118877160/ref=sr_1_11?s=books&ie=UTF8&qid=1416048383&sr=1-11&keywords=game+design+book
This book is great for it. There's PDF versions around the place.
This book breaks down gameplay mechanics, level design and such. It's a really fun read.
> I would like your help pointing (pun intended) me in the right direction
No, no, you want some pointers for what to do next.
You can't learn just by looking. You need to pick a goal, then try to implement it. When you have very specific questions, you can ask here or stackoverflow. Don't do something complicated at first: Start with a trivial game like tic-tac-toe. Get it all working end-to-end, then start adding features to transform it into something interesting.
But don't forget this is an entire Linux-based computer, so you don't have to only use the tools that came with it. There are 1000s of games for Linux, and hundreds of game-building environments. Plus, there are lots of languages (Python, Lua, Ruby, Go, NodeJS, etc), and plenty of ways to paint a GUI (i.e. SDL, OpenGL, etc).
In many games, they only use C++ for the low-level bits, then wire up the high-level logic with a scripting language like Lua.
P.S. I've heard this is a good book.
There was also another good quote about the "Mexican Pizza" strategy (which referred to some fast food chain having a pizza taco basically), which basically described taking two seemingly unrelated things, tossing them together and making something strangely appealing. Simple concept, but quite effective.
From this book, if you're interested. It discusses the game design process in a streamlined way, definitely helped me when I started learning about it all.
Game Engine Architecture is a pretty good overview of how to put a game engine together in general, from tools to graphics to game-play systems. You can pretty easily take what's in it and use it to make a 2D game. (3D math is also useful in 2D!)
Edit: Game Coding Complete (https://www.amazon.com/Game-Coding-Complete-Fourth-McShaffry/dp/1133776574/ref=sr_1_1?ie=UTF8&qid=1484886864&sr=8-1&keywords=game+coding+complete) was also a decent read, though not nearly as in-depth as Game Engine Architecture.
I've been doing a lot of research lately on the best books in programming in general to start a blog about each one and their importance to an inspiring developer. These are two of the books which will help you greatly getting started on designing your first game.
The first book is completely about design patterns, you will need to learn about these as creating software in general requires knowledge of how specific design patterns work and when you should use those patterns. The second book in the list is a complete guide to creating a small sample game, albeit not in libgdx, it should provide you with enough material to get you started.
I also recommend the Game Programming Patterns and Game Engine Architecture books which were stated in a previous comment. I have both these books as well as the Game Code Complete book and will be buying the Design Patterns book I mentioned as it is the most highly recommended book for any developer.
Game Engine:
Game Engine Architecture by Jason Gregory, best you can get.
Game Coding Complete by Mike McShaffry. The book goes over the whole of making a game from start to finish, so it's a great way to learn the interaction the engine has with the gameplay code. Though, I admit I also am not a particular fan of his coding style, but have found ways around it. The boost library adds some complexity that makes the code more terse. The 4th edition made a point of not using it after many met with some difficulty with it in the 3rd edition. The book also uses DXUT to abstract the DirectX functionality necessary to render things on screen. Although that is one approach, I found that getting DXUT set up properly can be somewhat of a pain, and the abstraction hides really interesting details about the whole task of 3D rendering. You have a strong background in graphics, so you will probably be better served by more direct access to the DirectX API calls. This leads into my suggestion for Introduction to 3D Game Programming with DirectX10 (or DirectX11).
C++:
C++ Pocket Reference by Kyle Loudon
I remember reading that it takes years if not decades to become a master at C++. You have a lot of C++ experience, so you might be better served by a small reference book than a large textbook. I like having this around to reference the features that I use less often. Example:
namespace
{
//code here
}
is an unnamed namespace, which is a preferred method for declaring functions or variables with file scope. You don't see this too often in sample textbook code, but it will crop up from time to time in samples from other programmers on the web. It's $10 or so, and I find it faster and handier than standard online documentation.
Math:
You have a solid graphics background, but just in case you need good references for math:
3D Math Primer
Mathematics for 3D Game Programming
Also, really advanced lighting techniques stretch into the field of Multivariate Calculus. Calculus: Early Transcendentals Chapters >= 11 fall in that field.
Rendering:
Introduction to 3D Game Programming with DirectX10 by Frank. D. Luna.
You should probably get the DirectX11 version when it is available, not because it's newer, not because DirectX10 is obsolete (it's not yet), but because the new DirectX11 book has a chapter on animation. The directX 10 book sorely lacks it. But your solid graphics background may make this obsolete for you.
3D Game Engine Architecture (with Wild Magic) by David H. Eberly is a good book with a lot of parallels to Game Engine Architecture, but focuses much more on the 3D rendering portion of the engine, so you get a better depth of knowledge for rendering in the context of a game engine. I haven't had a chance to read much of this one, so I can't be sure of how useful it is just yet. I also haven't had the pleasure of obtaining its sister book 3D Game Engine Design.
Given your strong graphics background, you will probably want to go past the basics and get to the really nifty stuff. Real-Time Rendering, Third Edition by Tomas Akenine-Moller, Eric Haines, Naty Hoffman is a good book of the more advanced techniques, so you might look there for material to push your graphics knowledge boundaries.
Software Engineering:
I don't have a good book to suggest for this topic, so hopefully another redditor will follow up on this.
If you haven't already, be sure to read about software engineering. It teaches you how to design a process for development, the stages involved, effective methodologies for making and tracking progress, and all sorts of information on things that make programming and software development easier. Not all of it will be useful if you are a one man team, because software engineering is a discipline created around teams, but much of it still applies and will help you stay on track, know when you've been derailed, and help you make decisions that get you back on. Also, patterns. Patterns are great.
Note: I would not suggest Software Engineering for Game Developers. It's an ok book, but I've seen better, the structure doesn't seem to flow well (for me at least), and it seems to be missing some important topics, like user stories, Rational Unified Process, or Feature-Driven Development (I think Mojang does this, but I don't know for sure). Maybe those topics aren't very important for game development directly, but I've always found user stories to be useful.
Software Engineering in general will prove to be a useful field when you are developing your engine, and even more so if you have a team. Take a look at This article to get small taste of what Software Engineering is about.
Why so many books?
Game Engines are a collection of different systems and subsystems used in making games. Each system has its own background, perspective, concepts, and can be referred to from multiple angles. I like Game Engine Architecture's structure for showing an engine as a whole. Luna's DirectX10 book has a better Timer class. The DirectX book also has better explanations of the low-level rendering processes than Coding Complete or Engine Architecture. Engine Architecture and Game Coding Complete touch on Software Engineering, but not in great depth, which is important for team development. So I find that Game Coding Complete and Game Engine Architecture are your go to books, but in some cases only provide a surface layer understanding of some system, which isn't enough to implement your own engine on. The other books are listed here because I feel they provide a valuable supplement and more in depth explanations that will be useful when developing your engine.
tldr: What Valken and SpooderW said.
On the topic of XNA, anyone know a good XNA book? I have XNA Unleashed 3.0, but it's somewhat out of date to the new XNA 4.0. The best looking up-to-date one seems to be Learning XNA 4.0: Game Development for the PC, Xbox 360, and Windows Phone 7 . I have the 3.0 version of this book, and it's well done.
*****
Source: Doing an Independent Study in Game Engine Development. I asked this same question months ago, did my research, got most of the books listed here, and omitted ones that didn't have much usefulness. Thought I would share my research, hope you find it useful.
Game Coding Complete
I have a pdf of this book which covers a lot of the basics and some advances stuff of making games. It is focussed on programming and includes code snippets and lots of examples.
I don't know enough to answer you without knowing I'm not completely wrong but I can point you in the right direction.
I recently purchased Game Coding Complete http://www.amazon.com/Game-Coding-Complete-Fourth-Edition/dp/1133776574/ref=sr_1_1?ie=UTF8&qid=1334788077&sr=8-1
and it describes a model very similar to what you're talking about (separation of game and rendering). I can't recommend this book enough, I'm only 5 chapters in and I'm already loving it. The fourth edition is freshly updated as well.
Here's the source code from book http://code.google.com/p/gamecode4/ Maybe you can answer your own question by reading it (its C++ / directx)
Sorry if you have no interest in buying a book but what you described fit the book fairly well, Good luck!
You may want to check out this book:
Getting Started With Dwarf Fortress
He walks you through from the basics of setting out, setting up forts, getting dug in, getting crafting started, beginning a military... so much information! It's also illustrated and very easy to read.
While the information covered is for the last version (0.34.11), it all carries over and will teach you the basics you need to know. Once you understand the fundamentals, THEN the !!FUN!! begins :)
Well the learning curve is a short book (which you can also read online) but it's fucking awesome after you've defeated the curve
seriously fucking awesome dude go check out /r/dwarffortress
I found this book, Getting Started with Dwarf Fortress, and thought it'd be an interesting read for a newish player, but it was published way back in 2012, and DF has changed a lot since then, so I don't know if it's worth it.
There is also a novel that helps you learn all the major features.
https://www.amazon.com/Getting-Started-Dwarf-Fortress-complex/dp/1449314945
I've been meaning to get around to it eventually, I just wrote from the stories I've heard about the game.
The simulation in that game is ridiculously detailed, and since it's single-threaded, it brings basically every CPU on Earth to its knees once your fortress starts to grow.
The stories that game generates are insane. The best one I've heard was a bunny that fell down a shaft to Hell and then proceeded to survive and kill multiple demons until the dwarves could mount a rescue.
Just looking on TVTropes I've found one where a dwarf used a heavy coffin as his weapon, and then put the corpses in the coffin to make it even more lethally heavy.
Another one was a fort overrun with demons, the last survivor is a seven-year-old cornered. This child then proceeds to dodge every attack for half a year before starving to death.
At this point I'll just quote directly from TVTropes:
> The key word for describing Dwarf Fortress is "complex". The game attempts to simulate real physics, biology, and even chemistry as accurately as possible, with a surprising degree of success, at the cost of user-friendliness. For example, in lieu of Hit Points, the game has a detailed, IVAN-esque Subsystem Damage mechanic for all dwarves, monsters, and other creatures, and an attack targeting system that allows any unit to attack or grapple any part of its opponent's body with pretty much any still-attached prehensile appendage. The game only gets more convoluted from there, becoming denser with each update. The fans joke that the sole developer, Tarn "Toady One" Adams, will continue to make the game more and more granular until it reaches the subatomic level and begins to simulate quantum mechanics and particle physics. Judging by the way the game is growing, that prediction may become true.
It should say something that this exists and is almost 250 pages long.
As far as I know this i the only book for DF. It is a bit dated but pretty much everthing still applies today, except maybe for woodcutting, no need for farms anymore
Getting Started Dwarf Fortress
So Game Engine Architecture looks pretty good, although it looks like it is for 3d game programming. Is there something like that, but for 2d game programming?
https://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010/ref=dp_ob_title_bk
Maybe this book might help you with the essentials: http://www.amazon.com/Game-Engine-Architecture-Second-Edition/dp/1466560010
>Game Engine Architecture, vol 2
Fuuuck that's a pricey book
I agree with your sentiments that game programming in Rust is new, so it may slow me down. But I' am in no rush to put out a game. I'd be very interested in really getting to know how game engines work; even bought a book. I' am also interested in learning Rust for its potential utility in my job anyway.
Hey! I'm doing the game design focus and have / am working at some indie studios.
The focus isn't nearly enough to get a job in the industry, you need to teach yourself a lot more.
Books. Game Engine Architecture, for example.
Read books, read through repos on github, and most importantly: write your own!
I recommend Game Engine Architecture if you want a very broad but extremely useful reference guide.
I ordered these for our company library, based on recommendations for/from other programmers (of all levels).
ISBN | Title
---|---
978-1568814247 | Real-time Rendering
0321486811 | Compilers: Principles, Techniques, and Tools (2nd Edition)
1482250926 or 0123742978 | Essential Mathematics for Games and Interactive Applications, Third Edition 3rd Edition
978-1482264616 | GPU Pro 6: Advanced Rendering Techniques
1466560010 | Game Engine Architecture, Second Edition
978-1482243567 | Multithreading for Visual Effects
978-0123750792 | Physically Based Rendering: From Theory To Implementation
Consoles and PCs are more alike than ever, but it's still not close enough. For example, the unified memory architecture (with the onion and garlic buses) means that somebody programming on PC versus Xbone/PS4 means that they need to think differently.
> They are also on the same x86 Architecture as modern PC Gaming has been.
100% irrelevant and shows you don't really know what a programmer is doing when they are writing code. We don't use assembly language any more.
Source: I do programming and have read this (brilliant!) book: http://www.amazon.co.uk/Game-Engine-Architecture-Second-Edition/dp/1466560010
So as some of the others: I'm not from the gaming industry either (though I plan to make games on the side). And an other disclaimer: I'm over 30.
Let me just say most people in their 20s don't know what they would like to do, and even if they do, your interest will change over time, so just try to say flexible and don't fear making a switch if you are unhappy, of course within reason and financial security.
I recently switched from my regular office job to a less regular one in software development. My official background in software dev before was: none. I picked up coding like a year ago or so, because a C# course for game development was super cheap on Udemy (and by super cheap I mean like 10 or 15 USD), and continued learning coding ever since. Though I was a privileged candidate for my current job, because it was an internal hire, I basically got it by showing them what I can do. And we don't even code in C# in my new role lol
So my point is: learning doesn't have to be expensive, while some jobs require a specialized college degree a lot companies nowadays are more interested in whether or not you can do the job.
Also there are some Game Music courses on Udemy as well, though they might be too basic for you, still worth to check out imho :)
If you are interested in game design I would recommend this book too The Art of Game Design: A Book of Lenses https://www.amazon.de/dp/1466598646/ref=cm_sw_r_cp_apa_i_nay4AbC7P2BFB
Well for game design, I cannot overstate the impact that the book The Art of Game Design has. It lists where to start building a game, how to find mechanics, how to deal with chance and map building, what the players expect, how to engage the player, how to use audio correctly and many many more. Go check it out, if you are already familiar with programming, the more the better. But to be a great game designer takes much more - and a lot of it can be found in the book.
Happy creating :)
You're telling me (I design board games as one of my hobbies, read up on game design, talk about game design with other people designing games, etc). It seems very apparent to me you'd want to hire people specifically for game design aspects. But it's not always completely apparent to everybody. Also, Niantic starting out may not have had the funding available to dedicate somebody to focus on game design.
Technology: What technology are you using to create your game, mostly which engine... Where I read about these four aspects it was reffering to all kinds of games (Which would include card and board games as technology)
Story: The lore, history and narrative told in your game
Mechanics: What are you able to do in a game; e.g: Jump, Dash (for jump an runs) or block and hit (fighting game)
Aesthetics: What makes the game correspond to the players senses: music, visuals, light, shaders etc
Hope that helps (Source: https://www.amazon.de/Art-Game-Design-Book-Lenses/dp/1466598646 )
A lot of people have already talked about going to university for computer science, design, etc... but make sure you're also reading (The Art of Game Design), watching video series (Brackeys), and try participating in clubs or local meetup groups to get to know the industry and get your name out there.
Well it sounds like its time to start prototyping and analyzing what does and doesn't meet your documents/requirements. Getting these out should motivate your team and make you feel a bit more confident in what to do next.
As far as looking for resources, there are quite a few out there. I really recommend checking out The Art of Game Design by Jesse Schell, it's one of the most practical books on game design (a lot like Raph Koster's are way more theoretical). I'd also check out gamasutra for a great design-focused community, there's a lot of resources there that can help you out.
Also, don't worry if everything falls apart. Game design is a lot of work and people can tend to be pretty flaky about it. That's why I've tried to learn every aspect of development so I don't have to depend on others.
Merry x-mas :)
I highly recommend Jesse Schell's The Art of Game Design: A Book of Lenses. It's primarily focused on videogame design, but the topics are broad enough that most are applicable to boardgame design.
A lot of the balancing comes from play testing with actual players and a basic understanding of probability math.
Randomness in games can often be a fun addition because it leads to surprises and can make a boring game more interesting. But you also want to use with caution because you want your players to still feel like they are in control. Too much RNG can make people feel that the game is unfair.
Pre-built maps are good if you want people to be able to master them, and generated maps are good if you want people to think on their feet every time. Pre-built can make things predictable, whereas generated can add replayability.
As for symmetrical maps, do you mean both players start with an even playing field? If so, that's ideal for balance. If you do intend to give one player a map advantage, you'd have to properly balance the other player to have some other advantage. Imagine playing golf. The player at a disadvantage might be granted a handicap. The important thing is that both players must feel like they are treated fairly.
Edit: If you're really interested, I'd recommend The Art of Game Design by Jesse Schell. There's 2 excellent chapters in there about game balance that details probability math, good design, and player psychology when dealing with balancing.
Thanks for the great question! I'll answer the way my mother always answer my long emails...
It seems you're not lacking skills on the technical side, if you want to make games on you own, you may want to gain skills on the game-design side. This is the must-have : http://www.amazon.com/The-Art-Game-Design-Edition/dp/1466598646/ref=dp_ob_title_bk
And another must have : http://www.theoryoffun.com/
Buying him computer hardware might be nice, but there's a lot of other ways to give something related to games and game design.
There's always a great big pound of dice. It's full of dice of assorted numbers of sides, and a game designer remotely interested in tabletop (which should be all of them) can use a healthy supply of dice for making tabletop games. There's always the fun of just rolling dice giant handfuls of dice.
I'm out right now but I'll add the link when I get back home.Here's the link: Pound of diceI'd also look into games he hasn't tried. BoardGameGeek has a lot of board games listed and reviewed that you could get, and of course there's always steam. For board games I'd recommend:
There's also a lot of books on game design you can get him. You may have to check to see if he owns some of these already, but I've found them to be great reads that I can recommend to anyone interested in game design.
The Art of Game Design is a fantastic book focused on exposing all of the different ways to look at game design and all the different options and approaches you can explore. I highly recommend it.
As for me, I look at why a core mechanic works in an existing game break it down into the most abstract components. Like Punchout is about learning timing and sequence recognition. Reacting quickly to an enemy's "tell" makes me feel powerful, and not knowing the "tell" makes me want to explore and try things out and challenge my intuition. So apply it to something else, what else requires reflexes and discovering enemy patterns? I unno... Ping pong? Ping pong requires finess and I want a discreet Turing nature to the success of my volleys, can I simplify the controls? What about that game where I put my hand on top of yours and you have to slap my hand before I pull them away? Whack-a-mole requires reflex but the pattern is random, can I change that?
Just break down games into the smallest components and know that that is something that can be explored and try mixing things up
I just finished The Art of Game Design: A Book of Lenses by Jesse Schell and thought it was super insightful!
There are books. Almost all of them suck. The only one that is any decent is mostly all theory so you will have to figure out the implementation details on your own:
http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135/ref=sr_1_1?ie=UTF8&qid=1321484581&sr=8-1
The problem is that a game engine very large and complex and often needs to be built with a particular game type in mind. There is a reason all of the UDK games look like UDK games.
Ask yourself this: Do you want to build an engine or a game? You are unlikely to do both in any reasonable amount of time (multiple years). Perhaps you can scale back your design's grand vision of an open world game to something more manageable with an off-the-shelf engine like UDK or Unity rather than build an engine.
You need to learn architecture. For this do NAND2Tetris and get some used architecture textbooks from the computer engineering department.
Caches are a big deal. People forget they exist, but you're going to need that knowledge in embedded. DMA's, or even normal memory reads, might only be coherant with some cache levels. That sentence should make you gag.
It gets worse when you start to think about concurrency; which you should, frequently, because it isn't the 90s anymore.
Get used to debugging. A lot. Learn practices that make that easier. I mean both learning archaic shit like
ddd
and writing unit tests, following best practices, etc. In embedded you're going to be violating best practices often, but it is important that this teaches you "... so the rest of my code is as clean as possible" than "... what's one more sin next to so many?".Most architectures are the same nowadays but the GPU is a notable exception (though less and less each generation). Learn CUDA - use Udacity's course on the subject.
What every programmer should know about memory.
Start writing projects in C++. Go ahead and become a real C++ nerd.
constexpr
everything you can. You don't need other languages except maybe barebones Python, Bash, and the Turing complete language known as the Preprocessor. You'll learn ~what you really need to know of C from C++.Get very familiar with 'Godbolt'.
Write for maximal performance. This is a dying art. You'll have a competitive advantage if you're good at it. If you don't become filled with rage by the word "premature" you're not optimizing enough.
Profile your damn code!
Profile your damn code, but with a different link this time!
Know your latency numbers.
Make SIMD a part of your daily life. You might not always have vectorization, but this is the easiest way to show you're capable of exploiting hardware features.
Computer graphics people are relatively well-respected by the embedded software community, and there is a lot of overlap as they use similar skills. Taking a detour through graphics is a good idea even if you don't plan to work in graphics. It's fun, too!
One way or the other you have to find a relevant application domain and solve problems in it... if not graphics try: video game programming, GPGPU, robotics, control systems, computer vision, animation, networking, VR/AR, and a bunch more.
Do not put VHDL or Verilog on your resume without first being sure you're masochistic enough.
Learn to start being very choosy in what advice you listen to. Most people solve problems under a totally different set of constraints, and what they'll preach until the sun burns out might be pants-on-head stupid for you.
You might already have picked up some of those funny ideas from being a web dev, so be on the watch for that.
The book Game Engine Architecture has a lot of real world wisdom from a much more relevant view, so read it.
Also, most people are taught in a way that is not really beneficial to an aspiring embedded SWE (e.g. Java schools). Most people have to learn that type of stuff as they mature as a programmer... hence the requirements. You can be hired into these types of positions right out of university, but you have to show a knack or focused interest in it.
And to be frank, it is just plain harder than web dev or slapping CRUD apps together, so fewer fresh grads would be able to do the work well even if they followed the 'right' path in university.
You can get some experience by writing on an embedded platform, but unless you want to probably shouldn't. The principles I am describing are more important.
Do one or two solid projects. Not dozens. Not perfect. Not amazing. Just one or two simple-but-pretty-good things in your portfolio, that show that you are not just a web dev or Java School Student.
Get relevant work experience as early as possible. Relevant means same skills, not same application domain.
Remember, it being hard isn't a bad thing. It is a barrier to entry that once you cross becomes a competitive advantage. The harder it is, the greater the advantage. Always double down on the hard technical skills.
I would go with <a href="http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135/ref=pd_sim_b_2"&gt;this one</a>
It does not focus on collision algorithms and graphics basics, instead goes right into message architectures, entity systems and so on. It's my favourite game dev book and I regularly look into it as a reference.
Look into the primitives offered by OpenGL:
http://www.opengl.org/wiki/Primitive
Any geometry you want to render has to be represented using those primitives. So you could produce a wireframe by using line strips. The set of points where x = x1 is a line strip, the set of points where x = x2 is another line strip, and so on until x = xn. Then do the same with y held constant at each value on its domain (not a very good explanation, but hopefully you get the gist of it). A surface would have to be represented using triangles - more difficult than wireframes, but there are books like Real-Time Rendering that discuss techniques for subdividing surfaces. If you aren't adamant about implementing that yourself, I'm sure you could find free libraries that can do this for you.
Real Time Rendering was recommended to me by a few professional graphics devs when I asked them the same question. This is NOT a light read, and it won't tell you how to use a specific API (DirectX, OpenGL), but it will give you the foundations to better understand an entire graphics pipeline and the various techniques used.
Other posters have mentioned starting with a software rasterizer. I'd highly suggest this as it helped me a lot when I had to do a very small one in college. There is a more recent version that is likely better(haven't looked yet), but this is the book we used and it can be picked up for dirt cheep!
My bad, I meant the second major in game dev*. I think you're better off just taking maths and learning the physics + maths required for engine development (realtime and 3d rendering). Also, I recommend picking up this book: https://www.amazon.com/Real-Time-Rendering-Third-Tomas-Akenine-Moller/dp/1568814240 but it requires knowledge of linear algebra (which shouldn't be too hard to learn, but it definitely will take a while).
Best of luck :)
part of being a scientist is reviewing a wide range of references - you might be expecting a bit much from one online source. let me suggest this one and this one, and especially this one are going to have the general graphics pipeline explanation chapters that you're looking for. if $$$ is a problem (and it is for most of us with these texts), perhaps you can insist that your local library gets them?
you can also pick up some good ideas by visiting course pages for some of the more well-known university graphics programmes - some of them have slides online, otherwise check out their reading lists - these guys are the best in the world at teaching graphics. read what they read.
http://www.cs.cornell.edu/Courses/cs465/2007fa/
http://graphics.stanford.edu/courses/
http://www.cs.utah.edu/research/areas/graphics/
http://www.cis.upenn.edu/~badler/courses/cis560.html
but i suspect, your best bet for this sort of stuff is actually Eric Haines' online course, which has a free version. it uses webgl but the main concepts are exactly the same as desktop gl and it's really very good https://www.udacity.com/course/cs291
also, interesting side note - Myers-Briggs has been widely discredited. it's actually based on Jung's germanic mysticism, which comes from ancient European magic. earth/air/wind/fire, alchemy, the four humours, the four personality components etc. etc. not a drop of science in it, but employers insist on you doing it.
This site has some basic tutorials on OpenGL. I've also heard that this book provides a good solid overview without drowning you in minutia. Finally, if you really want to get into graphics, make sure you have a firm grasp of Linear Algebra.
I have this book. I haven't even begun to scratch the surface of its contents but it's worth its weight in information. Link here: Real-Time Rendering, Third Edition
I can't tell exactly what you want to improve upon. If you just want better intersection algorithms/code, look at:
http://www.amazon.com/Introduction-tracing-Kaufmann-Computer-Graphics/dp/0122861604
http://www.amazon.com/Real-Time-Rendering-Third-Tomas-Akenine-Moller/dp/1568814240
The real performance gains in ray tracing, though, are parallelization and reducing the number of intersections tests that need to be done at all.
Parallelization is trivial.
For reducing intersection tests, you're best bet is some kind of space partitioning algorithm, like an octtree, k-d tree, or grid. It's not very hard either. The main idea is to pre-process the input into a grid-like data structure and do intersection testing by "walking" along the ray, through the cells. In each cell, do an intersection test with each object in that cell. Find the closest hit, and bail out. Traversing the grid is super easy and a lot faster than intersection testing. And (ideally) grid cells have very few objects, so the number of intersection tests is cut down a bunch, too.
The original paper for that technique, if you can find it, is this: http://portal.acm.org/citation.cfm?id=95111
Some books I enjoyed:
The Algorithm Design Manual by Steve S. Skiena, $61.15
Real Time Rendering, 3rd. Edition by Tomas Akenine-Moller, Eric Haines, Natty Hoffman, $71.20
Structure and Interpretation of Computer Programs, by Hal Abelson's, Jerry Sussman and Julie Sussman, Free
Clean Code by Robert C. Martin, $37.85
in case you are confused, Real Time Rendering being referred to in the post is the title of the book, as well as the name of the sub-domain. Dense read, but it's still one of the best books out there (and a new edition comes out summer!).
I'm reading through and enjoying 3D Math Primer for Graphics and Game Development. It starts you off with simple 2D Cartesian coordinates and progresses to more advanced topics (like the math behind lighting in computer graphics, which I'm currently on).
If you are curious about matrices I highly recommend this book: 3D Math Primer for Graphics and Game Development
Even a dummy like me was able to write a simple 3D software renderer with the help of this book :)
[EDIT] I misread your post. Sounds like you want to study statistics. I don't know good stats books, soz.
Get one of the standard recommended game math books and read the chapters and work through every single practice problem:
https://www.amazon.com/Essential-Mathematics-Games-Interactive-Applications/dp/1482250926/ref=pd_lpo_sbs_14_t_0?_encoding=UTF8&amp;psc=1&amp;refRID=FD2D86BG1HCV3SXTBF30
https://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231/ref=pd_lpo_sbs_14_t_1?_encoding=UTF8&amp;psc=1&amp;refRID=FD2D86BG1HCV3SXTBF30
https://www.amazon.com/Mathematics-Programming-Computer-Graphics-Third/dp/1435458869/ref=pd_lpo_sbs_14_t_2?_encoding=UTF8&amp;psc=1&amp;refRID=FD2D86BG1HCV3SXTBF30
The book "3D Math Primer for Graphics and Game Development" covers most of the important topics:
https://www.amazon.com/dp/1568817231
It is also rather fun to read, probably the only math book I have ever read from cover to cover.
Hello Kevin,
Everyone learns at their own pace, so it would really be hard to say how long it would take you. Additionally, real-time rendering is so broad that it is impossible to know it all. As you learn more, you will likely find a sub-area that you'd like to specialize in.
Right now, the majority of work that is done in 3D graphics game programming is usually in C++. That being said, there is a lot that is done in JavaScript via WebGL. Don't worry too much about programming language or API as you start out. There are a lot of concepts to learn first.
To get you started, may I recommend this free online course by Eric Haines, one of the authors of Real-Time Rendering?
It is geared toward beginners and has plenty of exercises to test yourself.
If you find yourself having trouble with the mathematics, check out the book 3D Math Primer for Graphics and Game Development
If you want to do a deep dive, I'd also vote for Linear Algebra. Understanding matrix math, vector spaces, affine transformations, projections, and quaternions is incredibly useful.
In that vein, I highly recommend this book. It's a pretty easy read and covers that stuff plus a ton of other (related) topics that is useful when dealing with game engines or computer graphics. I find myself referring back to it more often than I probably should at this point.
I haven't read it yet, but it was recommended on http://realtimerendering.com book list and it's got good reviews on Amazon.
3D Math Primer for Graphics and Game Development, 2nd Edition
by Fletcher Dunn et al. https://www.amazon.com/dp/1568817231
As for calculus, there is an old book Calculus Made Easy by Silvanus P. Thompson. Free to download at Project Gutenberg. https://en.wikipedia.org/wiki/Calculus_Made_Easy
If you find KhanAcademy's math lessons too long or just want text instead, check out amazing Paul's Notes. This is by a professor, started intially for his students. http://tutorial.math.lamar.edu/
More cool resources:
CodingMath on Youtube. Tightly edited. To the point. https://www.youtube.com/channel/UCF6F8LdCSWlRwQm_hfA2bcQ
3Blue1Brown on Youtube. More general math. https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw/videos
Nature of Code. A book about programming behaviors and forces. Could be an easy first step to understanding physics- and AI-related algorithms. http://natureofcode.com/book/
Why not set yourself some challenges and see if you can stick to them? Constraining components can be a great way to spur creativity. For example, create some aspect of your everyday life as a game, but you can only include 20 cards. Next challenge restrict yourself to 10 cards. Then no cards.
Alternatively, maybe try this book? I have it on my bookshelf but have never opened it... https://www.amazon.com/Challenges-Game-Designers-Brenda-Brathwaite/dp/158450580X
https://www.amazon.com/Challenges-Game-Designers-Brenda-Brathwaite/dp/158450580X
Can't recommend this book highly enough, but to be honest you need to be in a group of people to get the most out of it. I basically built my introductory game design class on it. Great introduction and practice for game design.
Sounds like the challenge that you are having is getting hung up on the technological aspect, which I would bet is incredibly common among aspiring designers. Game design transcends medium. Technology simply enables game play from design. To provide a chance-driven strategic experience, any number of tools can be used: dice, cards, computer, or even just a drop of water and an angled surface. For simulating fast paced combat, a computer provides a number of advantages, but many prefer to use inflatable barriers and paintball markers instead.
Check out Challenges for Designers. It is a practical guide to game design strategies for video game designers, but utilizing non-digital means. It forces you to consider what actually makes a game fun, interesting, or challenging, without getting caught up in rendering engines, input methods, or the myriad other technical considerations that you, as a designer, won't actually have direct control over on a reasonably large game team anyway.
Once you have cohesive ideas about exactly what you want to see in a gaming experience, I think that you'll find learning the how to be a hell of a lot easier. Then you won't just be sitting at the keyboard trying to "design a level," you will be creating the specific player experience that you envision, which will define what tools to use and provide guidance on what questions to ask the pertinent communities for those tools.
When all else fails, build a Tetris clone. :) And no, that's not a joke.
You should check out the book Challenges for Game Designers: non-digital exercises for video game designers. I know it says it's for video game designers, but! note that it is non-digital exercises: The vast majority of the exercises are actually board game exercises. Plus, they stress that video game design and board game design has a lot in common. Really, there is plenty in the book for both. As the title suggests it focuses on giving the reader practical experience, each chapter has a short introduction to some game design term or concept, and then a bunch of exercises in the end, which are usually an exercise in creating a game prototype in a certain genre, using a certain mechanic, or whatnot. Here's a link to the amazon.com product page in case you want to look a bit in the book, or order it.
A few of the places in the book really target video game design, from a quick re-skimming of the books chapters: talking about multiplatform, talking about designing UI (Though, I think you could take this as a lesson in designing "UI" on game boards: trackers on the board, and personal player boards), and talking about social networks.
Buy Challenges for Game Designers or Game Design Workshop, Second Edition. Or both. Do the stuff in them. Basically, both of these books teach you to actually design games, instead of programming, by designing in pen&paper first. It's a good approach.
A few other books there are also a good read for you guys.
This is coming from a student in the game design program at DigiPen, a game development college where the teams behind Portal and Portal 2 both graduated.
Start by introducing yourself to game history. Learn about the different types of game families: racetrack games, war games, positional games, mancala games, dice games, card games. There are thousands of different non-digital games and you should start getting to know them.
I recommend Board and Table Games by R.C. Bell as a handy guide. http://www.amazon.com/Board-Table-Games-Many-Civilizations/dp/0486238555
Learn the mechanics of paper games. A board game is essentially a level in a digital game. Card games are about information. Learn about the probability curves used in dice games. And above all, design games. When you design games, ask yourself WTF: What's this for? If it's useless or adds nothing, scrap it. Never be afraid to kill a rule or even an entire idea if it's not working right. In the industry, they refer to this as being able to kill your baby.
Some great books on design:
Challenges for Game Designers
An excellent read and it has a ton of great exercises for non-digital design.
http://www.amazon.com/Challenges-Game-Designers-Brenda-Brathwaite/dp/158450580X/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1300163628&amp;sr=1-1
Game Design Workshop
Another great read.
http://www.amazon.com/Game-Design-Workshop-Second-Playcentric/dp/0240809742/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1300163687&amp;sr=1-1
If you're young enough to be in public school, why not try out DigiPen's K-12 Game Design summer program?
https://projectfun.digipen.edu/workshops/courses/game-design/
RPG Maker is a good start, but don't get stuck with it. Try out GameMaker, Unreal Engine, Unity3D, Flash and ActionScript 3.0. You'll need to be able to code or at least script if you want any chance in the industry.
WATCH THIS VIDEO! http://www.escapistmagazine.com/videos/view/extra-credits/2443-So-You-Want-to-be-a-Game-Designer It is paramount to what it means to be a designer.
TL;DR: Prototype and test your game idea, don't worry about art all for a long time, do not get into game design because you think you'll be able to make a career out of it
I've picked up game design over the last six months and have really been enjoying it, and while I'm not looking for a partner I can give you some pointers to start. I'll try to deconstruct some of what you're saying because I think you're making some incorrect assumptions about game design and how to do it. I think some of this is going to sound cold or mean, but I don't intend it to be. I just want you to go in with realistic expectations, and if you can accept that I'm finding game design to be a lot of fun.
First, think about is why you want to make games. You seem to be trying to use a project as a jumping off point to design games professionally. Honestly, at least as far as board games go, there really isn't much money in designing games for most people. Sure there are a few people who design board games professionally but for most, if you make any money at it, it'll be like a second job. If designing board games is something you want to do, it should be something you do for the joy of designing board games in and of itself, not because it sounds like a cool profession.
Personally, I think everyone who is passionate about board games should try designing their own games, but they need to go into it knowing that they're designing board games because they enjoy the creative process, not because they'll make a living at it. I love the perpetual puzzle of game design and having something in my head manifest itself in the form of paper, cardboard, dice and bits.
Second, how to actually start designing games. You talk about wanting to make a "finished" game. I think what you mean is you want to see a game design taken from beginning to end. Designing any type of game is what's called an iterative design process. If you don't know that means you take your game idea, you make a prototype of it, test it out, realize it's awful but maybe find some gems that are fun, refine it, make a new prototype, rinse and repeat. These first prototypes should be rough. For example, I'm working on a dungeon-crawler card game and my "cards" are just pieces of paper cut up with my text on them and then put in card sleeves with poker cards as a backing. Art is something that should come towards the end of the process because you'll be making so many changes this early in the design process that getting someone to do art would be a waste of time (and probably money).
Eventually, when you think your game is at a stage where it's kind of fun is when you start playtesting with other people. Get people together, have them try your game design and see what they think. If they're friends, tell them to be honest. Realize that they'll point out things you didn't think of and they'll hate bits of your game that you love and it'll feel like getting gut checked. Like I said I'm fairly new to game design, but from what I've heard from professional game designers and from my local game design group, that feeling never goes away. When your baby starts getting torn apart it's one of the worst feelings in the world, but it has to be done to make something better.
The reason you go through all of this is no matter how good you think your game idea is, it definitely won't be good when it first goes from your mind to the paper. It probably still won't be particularly good after you've improved it several times, but hopefully you'll see something good and be able to combine those good bits to make something really enjoyable. If you see no hope in it maybe to shelve it for later and try something else.
Third, you brought up working with an artist to talk about the look of your game and coming up with lore and such. This is something you really shouldn't even worry about until you have a game prototype that's starting to near the final stages. When you're at the point you feel the game is ready for what's called blind playtesting, which is when you feel your game is ready to be tested by complete strangers.
Below I've linked a few videos and a podcast I hope you'll find useful.
One Thousand XP's Board Game Design Time Playlist - It's a small video series discussing different aspects of board game design
The Dice Tower's Top 10 Tips for Game Designers - Some great tips on designing board games that covers some of what I posted here and more
The Game Design Roundtable Podcast - They interview people about how they designed their games and have regular audience Q&A episodes. I think it's enjoyable for anyone who enjoys games (they focus mainly on board games but also do some video game stuff) and essential for anyone just getting started in game design
I've also started going through the book "Challenges for Game Designers" which has chapters talking about different aspects of both board and video game design and at the end of each chapter are challenges for making board games based on the material covered in that chapter.
Finally, I want to reiterate something I said previously. Don't get into board game design thinking you're going to make a career out of it. Maybe someday you'll become the next Alan Moon, Friedemann Friese, Donald X. or Reiner Knizia, but even if you do it'll be a long road before you get there.
When people bring up wanting to get into game design because they're passionate about games and want to make a living doing it I relate the attitude of my dad. As much as I love him, every hobby he's ever been interested in goes in these steps. First, he says, "This looks really cool I'd love to do that." Second, he says, "If I get good enough I could make money at this." Then he tries whatever it is he's interested, realizes he's not good enough out the gate to sell it and gives up. He's 60 years old and has been having a hard time the last couple of years because the closest thing he has to a rewarding hobby is playing Hearts and Spades on his laptop. The problem is he never sticks with a hobby long enough to actually get good and enjoy it because his aim was to try and do something he could sell.
If you get nothing else out of this post I hope this is what sticks with. Make games because you love making games, don't make games to make money. One day your dream might come true and you might be able to design games for a living, but that shouldn't be your primary goal.
Cool.
actually i tried about 5 engines , and construct 2 is easiest and fastest one.
and there is some tutorials on card game also:
https://www.google.com/search?q=construct2+card+game&amp;rlz=1C1GCEA_enIR764IR764&amp;source=lnms&amp;tbm=vid&amp;sa=X&amp;ved=0ahUKEwiHm_yz3_XZAhVn74MKHaCqDHIQ_AUICigB&amp;biw=1366&amp;bih=637
actually it's better to design and prototype card games in paper and cards, even if it's too fancy, you can make a simplified version with cards.
i read some chapteres of this book and it was amazing, read it if you had time.
https://www.amazon.com/Challenges-Game-Designers-Brenda-Brathwaite/dp/158450580X
good luck :D
Challenges for game designers is excellent. The real meat of the book is the set of excercises and projects, with a lot of excellent information and discussion to back it up.
Not directly related to game design, but these days nobody has an excuse not to have read the art of war. There are many free versions of it out there, including an audiobook. Check its wiki page!
Sounds like a fun idea! Some friends and I have been getting together and designing and playing our own games lately for our weekly gaming nights. I'll try and recruit them as well. :)
There's this great book called "Challenges for Game Designers" that might be fun, if you're looking for more inspiration. (though what you've got already is fantastic.) Each chapter in the book discusses a different game design problem, (pacing, puzzles, randomness, etc.) and there are challenges at the end of each section where you create a tabletop game, or at least a design document, detailing how you would make a game that addresses the problem. Anyway, love that book and wanted to mention it, ;-P
Looking forward to seeing where this goes!
If you want to be a game designer, just first accept that you're training for a marathon not a sprint.
Start with small exercises, not a full game just, like, quick sketches of game mechanics or ideas.
Do lots of tutorials, like "how to make a shmup in [whatever game engine]" and then when you finish the tutorial just add one or two things to make it your own, then move on to another tutorial.
After a few of those, start participating in 48 hour game jams.
There's a site I participated in for a bit called 1 Game a Month in which the idea was simply to finish one game a month. Not a masterpiece every month, just something finished every month.
It really is worth it to invest time in learning how to actually finish a project as opposed to always thinking about finishing it.
I recommend reading the following short articles:
The Chemistry of Game Design
Understanding Challenge
And I recommend the following books, not necessarily to read cover to cover but to read until the content doesn't seem to interest you, then just kinda skip around to the interesting bits:
Challenges for Game Designers by Brenda Braithwaite
The Art of Game Design by Jesse Schell
And finally I recommend reading this book from cover to cover:
A Theory of Fun by Raph Koster
I have an easy loaded potato soup (stovetop)
An easy twice baked potato
Scalloped potatoes are pretty simple.
I do a good hot sausage pepper pasta.
Crockpot roasts are a great way to start to use it. Even just a roast coated with Onion soup mix comes out amazingly.
I'd also challenge him with some baking, it takes a bit of practice, but it's so easy to make cookies, pretzels, cobbler, biscuits, there are so many simple ones out there that only seem intimidating.
Since he can cook eggs, learning to make an omelet is an easy way to expand on something he already knows. (Scramble, pour into pan, after it sets, top it with whatever toppings, fold it over, and there you go.)
Pancakes and Waffles are fun.
Whipped cream and Butter both are super simple if you have a mixer or whisk.
Message me if any of those peak your interest!
A good way to experiment and learn are those dinner services, like Hello Fresh, Home chef, plated.
They send the ingredients, instructions, and are super easy to follow and learn at the same time.
If you can afford it, it's got recipes from all over the world and is almost like a guided cooking class.
I'd also recommend:
https://www.amazon.com/Top-Secret-Restaurant-Recipes-Creating/dp/B002EER116/ref=sr_1_3?keywords=top+secret+recipes&qid=1573332058&sr=8-3
This cookbook is a series, and I had a lot of fun with those!
Also, if your son likes a specific show, game, or pop culture thing, there are many fun cookbooks for that, too! literally it seems like there are thousands of them.
IE:
https://www.amazon.com/Star-Wars-Galaxys-Official-Cookbook/dp/1683837983/ref=sr_1_8?keywords=pop+culture+cookbooks&qid=1573332145&sr=8-8
https://www.amazon.com/Fallout-Vault-Dwellers-Official-Cookbook/dp/168383397X/ref=sr_1_7?keywords=gamer+cookbooks&qid=1573332193&sr=8-7
https://www.amazon.com/Elder-Scrolls-Official-Cookbook/dp/1683833988/ref=sr_1_9?keywords=gamer+cookbooks&qid=1573332193&sr=8-9
It's only recently been released. I don't know if Reddit auto blocks links, but here is the link to the Amazon page for the cookbook. I hope you get it and try it out! https://www.amazon.com/Elder-Scrolls-Official-Cookbook/dp/1683833988/ref=sr_1_1_sspa?crid=2OA29GTT0DPJ5&keywords=elder+scrolls+cookbook&qid=1556507736&s=gateway&sprefix=elder+scrol%2Caps%2C149&sr=8-1-spons&psc=1
They have art in them too, a good reason to buy even if you already have an ebook version.
https://www.amazon.com/Elder-Scrolls-Skyrim-Library-Histories/dp/1783293195
ummm... https://www.amazon.com/Elder-Scrolls-Skyrim-Library-Histories/dp/1783293195/ref=sr_1_2?ie=UTF8&amp;qid=1497601423&amp;sr=8-2&amp;keywords=skyrim+book
I would love to see something like this made. Its funny how i hate reading books in real life, but ive spent so many hours reading skyrims books. I actually went out and bought the hard cover versions. I dont know if you know they exist but you should definitely check them out if not: http://www.amazon.com/The-Elder-Scrolls-Library-Histories/dp/1783293195?ie=UTF8&amp;keywords=skyrim%20books&amp;qid=1459137947&amp;ref_=sr_1_2&amp;sr=8-2
Some things id love to see are some journals from survivors after the bomb fell. Some raider ones would be cool to, i want to know what there up to.
Vault tech books describing the experiments in the vaults. There is a great description on them all on the wiki.
Love to see some throw backs, to the mojave. Maybe some tall tales like series about the legion.
I personally would love to see books for weapons mods. Make them all locked until you find the book that teaches you how to actually create them. I really miss blueprints from NV. It made scavaging rewarding, when you finally came across that mod you were looking for.
Either way i would be all for a mod like this. You could probably get help from the community for short stories too. Im sure /r/falloutlore would love to write some up for you.
There are the skyrim and elder scrolls online lore books. They have in game books and history. I think there are 5 or so.
Here is one of them
https://www.amazon.com/Elder-Scrolls-Skyrim-Library-Histories/dp/1783293195?keywords=elder+scrolls+lore&amp;qid=1536786881&amp;sr=8-4&amp;ref=mp_s_a_1_4
I just bought this, this, and this last week and am anxiously awaiting their arrival. TES lore is awesome.
Here is the mobile version of your link
I think minigames being in BotW are a pretty safe bet now - taken directly from the description of the official player's guide (which can be seen on Amazon, among other places), it says:
> Also includes optional challenges, mini-games, unlockables, Easter eggs, and more.
It's not as reliable as seeing the minigames for ourselves, but it'd be kinda weird if the description mentioned them without any reason. So here's hoping!
Actually, Amazon lowered their price for Collector's Edition:
https://www.amazon.com/Legend-Zelda-Complete-Official-Collectors/dp/1911015222/ref=sr_1_2?ie=UTF8&amp;qid=1486906995&amp;sr=8-2&amp;keywords=breath+of+the+wild+piggyback
$24
https://www.bookdepository.com/The-Legend-of-Zeld-Breath-of-the-Wild---The-Complete-Official-Guide/9781911015253?ref=grid-view
$28
https://www.amazon.com/Legend-Zelda-Complete-Official-Collectors/dp/1911015222 it's this one
standard edition: https://www.amazon.com/gp/offer-listing/1911015230/ref=dp_olp_0?ie=UTF8&amp;condition=all&amp;tag=nisa-20&amp;m=ATVPDKIKX0DER
collectors edition: https://www.amazon.com/gp/offer-listing/1911015222/ref=dp_olp_0?ie=UTF8&amp;condition=all&amp;tag=nisa-20&amp;m=ATVPDKIKX0DER
Amazon link ^^^heh
Hmmm...doesn't include Odyssey. I wonder if there will be an edition that includes it similar to what they did with the Breath of the Wild The Complete Official Guide: Expanded Edition?
My husband bought me this book The Legend of Zelda: Breath of the Wild The Complete Official Guide: -Expanded Edition https://www.amazon.com/dp/1911015486/ref=cm_sw_r_cp_api_i_7SXvDb4YY5T4W
And I just restarted the game with the goal of 100%-ing. My plan is basically the same as yours. I got Rivali’s Gale as soon as I could and then unlocked all the towers. Next I’m gonna get the three remaining divine beasts, then the shrines, then all the loot, korok seeds, Hyrule Compendium and mini games.
I’ve played through it so many times but haven’t fully completed it yet.
Here it is https://www.amazon.com/Legend-Zelda-Complete-Official-Expanded/dp/1911015486
The updated hardcover guide with all the info for the DLC as well.
The link goes to Twitter, then [Amazon](The Legend of Zelda: Breath of the Wild The Complete Official Guide: -Expanded Edition https://www.amazon.com/dp/1911015486/ref=cm_sw_r_cp_apa_i_rlm4Db0V1S96F)
I also forgot to mention this in my last comment, but you may want to pick up a copy of Game Design Architecture.
I haven't read it yet, but I hear it's very good.
XNA takes care of most engine requirements for you, I believe, but you'd probably still get some value from reading the book I'm currently working my way through: Game Engine Architecture (Amazon link)
It gives a decent level of information about most components of a game engine, showing the alternative implementations that most engines tend to choose between. It's not overloaded with source code, but that's not the point of the book. It will allow you to understand what XNA (or other engines) may be doing under the hood, so that you can better know how to make use of it.
If you're inexperienced, I'd recommend reading this book. It covers a lot of areas with a professional perspective. It doesn't go that much into details, but the bibliography of that book can be explored for further reading.
there is a chapter in http://www.amazon.com/gp/aw/d/1568814135?pc_redir=1410689459&amp;robot_redir=1 that talks about game objects and components that should help you get your mind on the right track.
OK, so right now I have three books in question (priority in that order):
What do you think?
Real Time Rendering, but I'll probably need another week or two to get through that, it's a bit of a tome.
Very well-written and interesting, though.
If you're really serious about getting into 3D-programming with DirectX I recommend getting a good book. A quick search on Amazon will get you the most common ones.
As for online resources my favorite is braynzarsoft.
EDIT:
My favorite books on DirectX:
Introduction to 3D Game Programming with DirectX 11
Practical Rendering and Computation with Direct3D 11
Real-Time Rendering
Check out Real-time Rendering, 3rd ed.
Thanks a lot! I actually have that first book bookmarked but I forgot to put it on the list.
I'm leaning closer and closer to purchasing a copy of The Art of Game Design: A Book of Lenses and it's one I'm actually really curious about.
On Game Physics Pearls - I peeked into the first few pages and it looks like something that I will pick up once I have a bit of experience in that area...does that sound about right or would you say it could cater to beginners fairly well?
Game Physics seems like it may be a bit more beginner-friendly but you are right about it not being a tutorial, which is kind of important for me at this step. I'm definitely bookmarking this until I know a bit more on the subject, though. I'll be taking a Physics course next September so it may be a good time to look at it after that!
Real-Time Shadows looks very interesting but I'm unsure to the difficulty level of it to a beginner. It sounds like I need to brush up on my math after three years of not using it very often at all.
Thanks a lot for the suggestions!
*I'll be taking a course on Linear Algebra here in the coming semesters, but that book does sound like a good introduction along with how it works within 3D programming. I'll keep a look-out on that for a while; do you think it would be very worthwhile to read that before something like Real-Time Rendering?
You could look at 3d graphics programming, threading or distributed programming.
Or webGL, HTML5,CSS, JS
WebGL Programming Guide
OpenGL Programming Guide
Real-Time Rendering
The Art of Multiprocessor Programming
Beej's Guide to Network Programming
I haven't really made anything that's screenshot worthy yet. I'm almost done with the world editor so when I get that done I'll finally be able to show off some stuff.
As far as tutorials your probably not going to find anything that's specific to 2d. I mostly do 3d graphics programming so most of my shader knowledge comes from doing that, almost anything you do in 3d translates pretty easily to 2d.
Here are some good books I've read on shaders:
Practical D3D Rendering and Computation
Distills the API quite well and explains a lot of pitfalls with creating buffers and the pipeline usage. I'm working on just reading it so I'm familiar with D3D 11+ even though I don't use it day to day.
Real-time Rendering 3rd edition
Another fantastic reference for graphics with a more theoretical look at things, explains TONS of modern techniques and even older ones such as rasterization on CPU, etc.
I would start with the book Real-Time Rendering. It's pretty much the book on graphics programming. I don't think there's a single graphics programmer at my company who doesn't own a copy.
I'd combine that with the code samples that come with the DirectX SDK. I personally found the DX10 samples to be better learning material than the DX11 samples (which tended to be less beginner-oriented). Your mileage may vary.
Finally, if you have access to an existing code base, a great way to learn things is to just start modifying existing shaders. This frees you from needing to deal with the API calls, etc and lets you get right to learning how shaders work.
Also in the OpenGL Common Mistakes - Triple buffering it's said :
"You cannot control whether a driver does triple buffering. You could try to implement it yourself using a FBO. But if the driver is already doing triple buffering, your code will only turn it into quadruple buffering. Which is usually overkill."
So basically you can't even implement triple buffering in OpenGL, you need to rely on the capability of the GPU driver.
Not that it should help much anyway. From Real-Time Rendering, Third Edition :
"The drawback of triple buffering is that the latency increases up to one entire frame."
The book 3D Math Primer for Graphics and Game Development has an accessible and readable treatment of this topic for a beginning self-learner, which I found easier to learn from than the relatively terser Essential Math for Games Programmers.
Great book https://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231/ref=dp_ob_image_bk
This book helped me out alot to learning the fundamentals and math behind 3D graphics. I would recommend getting it as a starting point and great foundation, it also has exercises in it.
3D Math Primer
Game Engine Architecture
I'd like to recommend these two.
Well, I don't know how far he is, I just want to show some tutorials that would work on Linux. They are OpenGL 3.0 and forwards, so if mobile development is the purpose, the old tutorials are propably better.
But I agree, linear algebra is important to actually understand what is done. I read this was good too: http://www.amazon.com/Math-Primer-Graphics-Development-Edition/dp/1568817231/ref=dp_ob_title_bk
I recommend http://www.amazon.com/Math-Primer-Graphics-Game-Development/dp/1568817231/ or the earlier edition http://www.amazon.com/Graphics-Development-Wordware-Library-ebook/dp/B0026A6CJ0/ref=dp_kinw_strp_1 which is more affordable.
I usually tell people to check out these tutorials: https://www.youtube.com/fuseman. He's https://www.reddit.com/user/Fuseman/ on the Reddits. VR is a heck of a lot of fun to play around in. Get yourself a Vive and do every single one of those tutorials. By the time you're done, you'll have enough knowledge to make your own game.
The other piece of advice is to learn some math. This book has been particularly helpful to me.
Maths is fundamental to 3d, from everything from the description of geometry or implicits, the transformations of undistorting / distorting images, how renderers operate shaders that model reality, how the resulting images are composited. One good way to get a head around it is to check out Fletcher Dunn's 3D Math Primer for Graphics and Game Development.
As far as how much you have to get into it yourself - hopefully the software you use does most of the heavy lifting. Department by department you might want to be more familiar with different topics. As a Lighter I don't need to get into the weeds of Euler vs. Quarternion rotations (although I know broadstrokes), but if I was a Rigger it might be a lot more practical.
I found the 3D Math Primer for Graphics and Game Development super useful as a general introduction and reference for a lot of the mathematical concepts used in game development.
Not really specific for any libraries, but always useful to have good mathematical grounding to build on.
Ah, I could see that. If you grab a calc book you should be able to get lighting etc. And the rest is all linear algebra. There are a lot of really good books on the topic, but one that's really good for graphics beginners is frank Luna's, "introduction to 3d game programming" series. It doesn't matter if you're using glad or directx (you should), its a great math primer for the first few chapters. This is also a great book: http://www.amazon.com/gp/aw/d/1568817231/ref=redir_mdp_mobile
https://www.amazon.com/Art-Game-Design-Book-Lenses/dp/0123694965
https://www.amazon.com/Game-Design-Workshop-Playcentric-Innovative/dp/0240809742
https://www.amazon.com/Challenges-Game-Designers-Brenda-Brathwaite/dp/158450580X
https://www.youtube.com/watch?v=zQvWMdWhFCc
For my class we have challenges for game designers
It's a decent enough book but not the best it is great though because of the exercises is gives for different game types
Challenges for Game Designers is full of non-digital game design exercises. One of the authors, Ian Schreiber, put together an accompanying free online class/blog.
Brenda Braithwaite (Romero) wrote an entire book on this.
Challenges for Game Designers https://www.amazon.com/dp/158450580X/
Following a problem from a book of game design challenges (this one for those curious), I'm starting a WWII era RPG based on the Brothers in Arms video game series. Game play has a focus on combat (is that bad for an RPG?) so I'm currently working out the details.
The intention is for it to be used in a classroom setting with high school students, which means rules need to be simple and easy to learn. This has proved to be quite the challenge to maintain interesting combat mechanics inspired by the core mechanics of the series, while keeping rolls to a D6 and math to a minimum. Feel pretty excited about it though!
https://www.amazon.com/Elder-Scrolls-Official-Cookbook/dp/1683833988/ref=mp_s_a_1_1_sspa?keywords=elder+scrolls+cookbook&amp;qid=1566127180&amp;s=gateway&amp;sprefix=elder+scro&amp;sr=8-1-spons&amp;psc=1&amp;spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEzVlJQSTgwWk9CM0gzJmVuY3J5cHRlZElkPUEwNTMxNzg2NEQ5NDFXTkRFU0hRJmVuY3J5cHRlZEFkSWQ9QTA4OTM4MTYxTUhVVUQ0RFIxMldZJndpZGdldE5hbWU9c3BfcGhvbmVfc2VhcmNoX2F0ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU=
Found this on Amazon:
https://www.amazon.com/Elder-Scrolls-Official-Cookbook/dp/1683833988/ref=asc_df_1683833988/?tag=hyprod-20&amp;linkCode=df0&amp;hvadid=344022255097&amp;hvpos=1o1&amp;hvnetw=g&amp;hvrand=6148566043342311538&amp;hvpone=&amp;hvptwo=&amp;hvqmt=&amp;hvdev=m&amp;hvdvcmdl=&amp;hvlocint=&amp;hvlocphy=9005913&amp;hvtargid=pla-526023670309&amp;psc=1&amp;tag=&amp;ref=&amp;adgrpid=69543897072&amp;hvpone=&amp;hvptwo=&amp;hvadid=344022255097&amp;hvpos=1o1&amp;hvnetw=g&amp;hvrand=6148566043342311538&amp;hvqmt=&amp;hvdev=m&amp;hvdvcmdl=&amp;hvlocint=&amp;hvlocphy=9005913&amp;hvtargid=pla-526023670309
>https://www.amazon.com/Elder-Scrolls-Official-Cookbook/dp/1683833988
How many meads/wines recipes do this book have?
Make sure you check out the AMA here:
https://www.reddit.com/r/skyrim/comments/alhett/im_the_elder_scrolls_the_official_cookbook_author/
You can pre-order the book here:
https://www.amazon.com/Elder-Scrolls-Official-Cookbook/dp/1683833988
Every recipe was taken from the Official Elder Scrolls cook book:
&#x200B;
Ok, but actually the Sweet Rolls really lived up the the hype. Yeasty, bready pastry with a nice cream cheese icing. Also, fittingly my dog Opalstole 3 sweet rolls off the cooling rack while I ran to the liquor store...
They aren't based on novels like the Witcher. That said, there's a new lore series that I'm in love with.
Here's the first book link:
The Elder Scrolls V: Skyrim - The Skyrim Library, Vol. I: The Histories
https://www.amazon.com/dp/1783293195/ref=cm_sw_r_cp_api_h6evxbDD2ZP71
Here is the desktop version of your link
Well there are world canon books such as this: The Elder Scrolls V: Skyrim - The Skyrim Library, Vol. I: The Histories https://www.amazon.com/dp/1783293195/ref=cm_sw_r_cp_api_wjsmxbCCX1K6Z
Or fiction books such as this: The Elder Scrolls: The Infernal City https://www.amazon.com/dp/0345508017/ref=cm_sw_r_cp_api_Tksmxb7876QEF
Sadly there are only two fiction books. They take place before Skyrim and explain why Vvardenfell is a pile of ashes.
if you go one amazon there are three volumes of books on Skyrim. The first book contains all the books found in game. It's not available for kindle, but might be worth checking out: https://www.amazon.com/Elder-Scrolls-Skyrim-Library-Histories/dp/1783293195/ref=sr_1_2?ie=UTF8&amp;qid=1500991304&amp;sr=8-2&amp;keywords=skyrim+book
Etsy have some beautiful gaming prints. I can understand a non gaming wife not wanting an obvious gaming print on the wall. Have you had any luck finding him a gift? If you are still stuck you could take a punt on a Skyrim game guide and hope he hasn't already got it, or have a look at this:
https://www.amazon.com/Elder-Scrolls-Skyrim-Library-Histories/dp/1783293195/ref=pd_sbs_14_t_0?
_encoding=UTF8&psc=1&refRID=S0PB9C75904MF0ZDF4JA
I thought it sounded like a nice thing to have on the book shelf. It's a complilation of all of the little books that you find in Skyrim. You should definitely get youself that print.
If you were on the fence like I was, this might convince you to go ahead and pick it up. There's also a Skyrim book they're releasing in June with the same savings.
Here's the books:
Legend of Zelda: Art and Artifacts Limited Edition
Legend of Zelda: BotW Official Guide Collector's Edition
Legend of Zelda: BotW Official Guide Deluxe Edition
The Arts book is a collector's item as well as something I'd sift through from time to time. A coffee table book basically. The CE guide arrives on 3/3, so once I beat Zelda once, I'll use it to collect everything. The DE is just another collector's item/coffee table book once it arrives on 3/31.
https://www.amazon.com/dp/1911015222/
Amazon
https://www.amazon.com/Legend-Zelda-Complete-Official-Collectors/dp/1911015222
This one?
https://www.amazon.com/Legend-Zelda-Complete-Official-Collectors/dp/1911015222/ref=sr_1_2?ie=UTF8&qid=1550865713&sr=8-2&keywords=botw+guide
I want to say that it was $39.99
This is the new version (I think)
https://www.target.com/p/legend-of-zelda-breath-of-the-wild-the-complete-official-guide-by-piggyback-hardcover/-/A-53395522
The official BoTW guide book suggests playing in the Zora, Gerudo, Rito and Goron order. Not sure if that reflects the same thinking suggested in the article, but I think it's pretty compelling.
Is this guide different (content wise) from this guide? https://www.amazon.com/gp/product/1911015222/ref=oh_aui_detailpage_o00_s00?ie=UTF8&amp;psc=1
Can’t find it now :( google isn’t cooperating.
Hardback is listed on amazon for about $40 but is out of stock “temporarily”.
https://www.amazon.com/Legend-Zelda-Complete-Official-Expanded/dp/1911015486
Just out of curiosity, why is the price of Zelda BotW official guide extended edition dropping so quickly? 40 to 25 in just one month? I just got mine, it seems very good.
The Legend of Zelda: Breath of... https://www.amazon.com/dp/1911015486?ref=ppx_pop_mob_ap_share
I bought this to help me along the way, and there is a physical map included that I use to cross reference shrines.
I know it's $36 but honestly it gives a ton of insight to the game and is really worth it considering the hours put in.
Official Complete Guide Expanded Edition. Has everything you ever need to know about the base game plus the dlc. Has been my best friend in my journey.
The Legend of Zelda: Breath of the Wild The Complete Official Guide: -Expanded Edition https://www.amazon.com/dp/1911015486/ref=cm_sw_r_cp_api_i_FlwTCb2WCR33R
I played the game through with my wife and got to 33%.
Second time through I picked master mode and bought this guide.
We're having a blast with this book revealing secrets we didn't know existed.
It provides a strict walkthrough to beat the game with the minimum requirements met. (Towers, Devine beasts, major quest's only)
Then provides a by region quest guide. Then maps galore for farming. Korok locations and tips. I'm still working through it but I love the book and it's quality presentation. I'll be proud to keep it as a memento of our good times playing.
https://www.amazon.com/dp/1911015486/ref=cm_sw_r_cp_awdb_t1_meHdBbDGC2QT2
I was going to order the guidebook for $30 ( https://www.amazon.com/gp/product/1911015486/ref=oh_aui_detailpage_o00_s00?ie=UTF8&amp;psc=1 ) but Amazon didn't even ship it for three weeks. So I chatted with support the other day who told me it never shipped because of a technical error. So I followed their directions and reordered three days ago and they upgraded me to one day shipping. However, I still have not received any update on the order and I am so confused. Has anyone ordered this book and had it actually get delivered? Also, at this point should I even get the book? I'm not very far into the game and playing slow, and I think I would find it useful for info about the game, not necessarily solutions to Shrines. Plus I like collecting.
Ginormous guidebook with a full sized map of the shrines/koruks.
https://www.amazon.com/gp/aw/d/1911015486?psc=1&amp;ref=ppx_pop_mob_b_pd_title
I use the templates from this book.
Level Up by Scott Rogers is great! I've had my tattered copy for years and it's by far one of the best game dev books I've read. He also goes over a lot more things than level design, so I'd highly recommend it.
Not GML-specific but these are my two favorite game development books.
Try out this one for software architecture, wish I read it earlier
Read this to get thinking about game design
Game Design has nothing to do with programming. Familiarize yourself with the different roles in development and you will find books for the right topics. r/gamedesign is nice on its own. Depending on your use of technology, you might want to look into the corresponding subs aswell.
Good reads on game design are Level Up! and The Art of Game Design.
> It's not about a tutorial, it's about making the early game fun.
Ah, I think I see where I misunderstood. Yeah, first time I played, winter a year ago, I tried to do that. Had the bad luck of getting a starting asteroid that only had iron, nickel and uranium. Dug through it like swiss cheese before I realized I had to trek over to a neighboring asteroid. Still, it was pretty fast.
I think you're right -- it might be nice if it spawned a couple "scripted" asteroids near you that had some tiny deposits of everything (minus U). Then, beyond that, you'd have to search, but at least you could have agency on how you did that search.
In a sense, you're pointing out that walking is not gameplay. You're totally right.
> Sorry, didn't mean to be a dick. Well, I did, but I'm still sorry.
LOL, it's the internet. It's kind of expected. Thanks though!
Level Up
I use to recommend skipping straight into game dev since that is what I did but recently I realized it is best to learn programming first. Which is why I stopped gamedev completely to relearn everything about programming.
I have not actually done most of the things I linked because I want to learn a lot more before startin game dev again. I have done (1) mooc.fi's intro to java part 2 and (2) the first two courses in the coursera python course so I know if you actually do intro to java part 1/2 and the full coursera course you will be ready enough to start game dev tutorials specific to whatever you want to create games on. I created 25+ game prototypes last year with less than those 2 courses teach..
1 is java programming, 2 is python programming but you make some games like asteroids, 3 is just a page describing how a JRPG works, 4 is multiple tutorials about gamedev, 5 is just a reddit post about do not repeat your self which I have learned from ignoring it that it is EXTREMELY important, 6 have not read yet but I am pretty sure it has to do with the reason I stopped gamedev to relearn from the basics, 7 I have not read but I most programmers recommend the book code complete and it has a similar name so it will probably be decent, 8 actual game dev
and.. maybe get a 6 month free pluralsight account from microsoft visual studio dev essential program thing and https://www.pluralsight.com/courses/encapsulation-solid
I am not sure how useful the pluralsight encapsulation/solid videos will be yet but it has made me think of OOP differently..
A quicker version would be just to do 1, 2, then whatever game framework/engine's tutorials you want.
I too am an engineer, been working in the Field for about 6 years, im a professional C++ developer, ive designed and implemented several simple game engines, the basics are: There is an Engine, which handles the graphicss, File IO and the other OS like portions of the game, then there is the Gamelogic, which maintains all the rules and functionality of the game, then on top of that there is game layer which would incorporate all the mods and scripting.
for ease of development, its very likely that the Game logic and game layers are implemented in LUA with the intention of rolling over into actual C++ when they stabilize to 1.0 and since the game is still alpha im willing to bet the "base game" "mod" that is in the mod list is actually a giant piece of LUA code
https://www.amazon.com/Game-Coding-Complete-Fourth-McShaffry/dp/1133776574 i recommend you read that book
Edit: seeing the devs did reply, looks like just the top layer is in LUA.
I would recommend game coding complete. It covers many aspects of game development, from code in c++ to crunch working hours.
https://www.amazon.com/Game-Coding-Complete-Fourth-McShaffry/dp/1133776574
I'll take a look at them. Thank you :)
EDIT: Are you referring to this one and you probably mean Game Coding Complete ?
thanks. try this 960 page book
it might have something in there :)
I would suggest reading "Game Coding Complete: 4th Edition". I just started reading it, and it covers all the things I've wondered about making games. Check out the reviews. http://www.amazon.com/Game-Coding-Complete-Fourth-Edition/dp/1133776574/ref=sr_1_1?ie=UTF8&amp;qid=1347389908&amp;sr=8-1&amp;keywords=game+coding+complete
Right now I'm reading a mammoth book to help me build a good foundation. Game Coding Complete
I hope to make a 2d sidescroller, and after that I want to make a big retro RPG like Crono Trigger
This book is amazing, BTW: http://www.amazon.com/gp/offer-listing/1133776574/
http://www.amazon.com/Getting-Started-Dwarf-Fortress-complex/dp/1449314945
^ theres a good resource. Use the wiki at the same time and the weekly questions thread on here and youre all set. If all that SOMEHOW fails, theres the Bay12 forum.
I get that thats all a bit impersonal, and itd be even easier with someone looking over your shoulder, but i for example just dont have the time to dedicate to helping you that directly. Now, if you just wanted to ask random questions over text because its more direct/personal and dont mind timezone differences, thats a different story.
https://www.amazon.com/Getting-Started-Dwarf-Fortress-complex/dp/1449314945
This one. Trust me, it was one of the most tranquil reads in my life.
It's not a narrative book or anything but I deeply enjoyed reading it, I couldn't wait to sleep so I could keep on reading it on the next day - every chapter showed a new possibility that could be done in DF. You can totally learn without it but it is a great learning resource on the game.
It was made in an older version without things like taverns and stuff but the basics still applies.
https://www.amazon.com/Getting-Started-Dwarf-Fortress-complex/dp/1449314945/ref=nodl_
That’s what got me through the initial learning curve.
It may be out dated in some ways now, but I did refer to it past time I played (about 6 months ago)
Since some other people are trying to be cute, start with this wikipedia page here: https://en.wikipedia.org/wiki/Software_design .
I don't know of any online tutorials for the process of game development, but I am aware of a book named Software Engineering for Game Developers which goes over the process, step-by-step, of designing, outlining, and implementing the software part of a game. Note that this is one of the most dry, boring books on games I have ever read, but it's not about game design, it's about game development, and outlining software requirements is not a topic many people get excited about.
Basically, they go through the process of creating a requirements document which is a glorified to-do list of everything that the game needs to do, dividing those specific requirements into "stripes" which are different levels of completeness of your game, and then from there deciding on the best way to chop up the concepts into objects. The book is a monster 1000 page beast, but if you're serious about needing a step-by-step process, you won't get better than this.
My suggestion (if you don't purchase or, ah, otherwise obtain a pdf of the book) would be to simply start with this glorified To-do list that lists every feature your program should have in version 1. Then write up all the subfeatures that those features will require. Then divide all these items into groups where it makes sense and make each group an object (or object hierarchy). Do some research and see what parts might already exist, such as rendering, graphing, input, GUI, or serialization libraries, and incorporate them into the design. If you don't know what, exactly, goes into a game, try looking up a book such as Game Engine Architecture which will outline all the different parts that a game engine needs.
Then write the program.
Note where your design was insufficient or flawed, and don't worry about keeping the list intact--add or remove items as needed. Wash, rinse, repeat: the more you practice this on new programs, the easier it will be as you gain experience with what needs to be written out and what can be ad-libbed. The more advanced tools (such as UML et al) will be useful later, when you have more complex projects with more moving parts, that need to be explained to other programmers.
Until then just stick with lists.
Hey Big_cow, congrats on your new job - I envy you and hope to join you shortly, as I am currently on a similar path (26, currently not in the industry but working my way in - started about 3-4 months ago).
I have a question/request for advice: I'm a non-gaming software engineer (around 3 years experience, currently doing DevOps at a healthcare-IT startup; no college degree). My current trajectory/plan is to write a few (3-4) games of varying levels of completion (some just for learning, maybe one as the "crown jewel" of my portfolio) with Unity and Unreal, and a game engine (not on par with Unity or Unreal, but one that fundamentally handles the basic functionality like rendering, physics, and AI to the extent that I could write a simple platformer or shooter game to prove it works - I'm currently working my way through this book), then try my luck in the industry.
Do you think that me already having experience programming will make a big difference? I see other game programmers like John Carmack, the Eidos folks who wrote Deus Ex: Mankind Divided, or the GTA V team and feel absolutely intimidated. Do you think I'm in for a serious struggle in terms of finding a job?
I'd recommend this book, though if new to coding it may be a bit overwhelming https://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010/ref=pd_lpo_sbs_14_t_0?_encoding=UTF8&amp;psc=1&amp;refRID=NC95XNX16602MDF2SG80
Read game engine architecture
https://www.amazon.com/Engine-Architecture-Second-Jason-Gregory/dp/1466560010/
For programming, what kind of programming is he into? Here are some cool programming books and things:
Well if you want to be the next Carmack, get cracking! :) You have a lot of ground to cover, such as: mathematics (matrices, linear algebra, etc), physics, artificial intelligence, real-time processing, multithreading, architecture, networking and protocols, rendering, sound, and much more!
It is certainly possible with enough time and dedication to develop your own engine. It's just that there are so many excellent engines already out there, that you would be competing with projects that have already invested many thousands of hours and have loads of titles already developed for them. Why not get involved with an existing project to start?
BTW I really like your idea of creating a FPS with one room and focusing on making that environment the richest possible, exploiting a wide variety of techniques. Do it!!
Is your ultimate goal to create an engine? Or to create a game? Remember, the engine is in many ways a means to an end - it's not much use without a game that uses it!
Either way, I think you would be well advised to get involved with one of the open source game engine projects, and start contributing. Once you've learned how they work, you will be in a much better position to design your own. And realistically, you can't really just design an engine without a game - you need to know how games work in the first place, and what features and architectural decisions and designs make for a good engine.
Consider joining:
Here's a list of good books to get you started:
The Reddit /r/gamedev wiki has a great list of resources:
There are lots of great videos on YouTube featuring Carmack's gamedev talks, so I highly recommend watching those too.
There are lots of books that purport to do something like this, but the field is so varied in terms of tools and styles, it's kind of a fool's errand. One merely ends up writing a, Here's How I Did-It/Would-Have-Done It.
One book I like that is very comprehensive when it comes to game design is The Art of Game Design. It does try to address the practical matters of making a game, but that's not its primary focus.
One book I would recommend for finishing is The Game Jam Survival Guide and just doing a game jam like ludum dare. A game jam is a great way to get experience finishing a game, and time is so tightly constrained that it forces a very different, scope-limited mindset. The ideal is never, ever attainable and yet some really creative, amazing games do come out of these jams.
Don't be suckered by a "Game Design" program. There are VERY few good ones. Most of them....as in, 99% of them...are rip-offs.
Learn programming, 3D-modeling, or animation. Pick one that you're more interested in and then full-speed ahead. These will make you useful in more than just game development roles, thus helping you in the future when you have trouble landing a game dev job. At least you'll still be doing something you like in the meantime, and still building your skill in that area. Many really popular game designers have specialties outside of just "Design". Some are excellent programmers, some are artists, some have excellent business skills (really good at project management), and some are brilliant story-writers. Most game design positions are not entry-level, because you REALLY have to know what you are doing, before someone will trust you enough to let you touch the design. The only real way to prove that you are actually a good game designer is by having games to show off. That proves that you have some idea of the design process and know how to maintain a game from start to finish. This is HARD.
Some like to say that these degree programs for game design help them by giving them the incentive to push through and finish their stuff, otherwise, they might not have the motivation. Well, that's very problematic, because that means that you will not be the type of person who can finish a game. Game development requires you to be highly self-driven.
Most of what "Game Design" programs teach you can be learned by picking up a few game design books and making your own games (alot of them, too). Game design is learned by making games, not by having a professor tell you about it. You have enough mentors in the game development community already. They will always be there to critique what you do and give you tips on how to improve your work. Pick up a couple of books like The Art of Game Design and Designing Games. You can look at other books in whatever other area you want to master and just get started on making games. Turn off your console and just get started. Start small. Make very simple, basic games to start off with (B.A.S.I.C.). It's about learning the process first. Do that while reading a ton of highly-detailed game postmortems online. Just learn the process. THAT will be your real education.
And finally, start working your way up to putting together a portfolio. Portfolios speak much louder than a resume (although, a resume is still important). And that doesn't mean having a bunch of "Game Design docs". Games. Not docs. Games. Then build up your confidence and hook up with a team, so you can fight your way together to the end of making a complete game. (this may be one of the only valuable things that a game design program can provide you out of the box, i.e., a team that you are forced to work on a game with)
The single most important tool you will ever have is discipline. No degree will be able to top that. Give up the idea of being a hardcore gamer, because you are now going to need to become a VERY disciplined person. You're going to need it.
Finally: Don't forget to have fun. Good luck! :)
The single most important skill a game designer needs is what I call "Player Empathy." You must be able to figure out what the player is thinking, what he/she wants to do next, and how to entertain them while they are playing the game. Beyond that, there are so many different types of games - and therefore game design - that it's pointless to try and summarize in a forum like this. I did write a book about game design, which you can probably get from your local library. The Amazon link is here: https://www.amazon.com/Game-Design-Bob-Bates/dp/1592004938/ref=sr_1_1?ie=UTF8&amp;qid=1487025482&amp;sr=8-1&amp;keywords=bates+game+design
It's been out long enough that it's a bit dated on the production side, although the game design fundamentals still hold true.
But the best book to get, and it's much more current is Jesse Schell's book, which you can find here...
https://www.amazon.com/Art-Game-Design-Lenses-Second/dp/1466598646/ref=sr_1_1?ie=UTF8&amp;qid=1487032271&amp;sr=8-1&amp;keywords=Jesse+Schell+game+design
If you're building your very first game, I would advise not waiting for it "to be done" before you show it to people. As soon as you have made any portion of it, get it in front of people to see their reactions. Look up the name Sid Meier and see what he has written about how he develops his games a little piece at a time. Iterative development is where it's at!
Glad my feedback was useful.
Thinking in terms of simplicity doesn't necessarily make for a better game. Fun should probably be more of a focus.
I definitely wouldn't say that I had "fun" or was hooked by your prototype. Creating fun in game design can often mean designing a good game loop. You game loop right now is 5 seconds long, consisting of "press a button for 4 seconds". Not very interesting or rewarding as it stands.
Here's a book I highly recommend:
https://www.amazon.com/Art-Game-Design-Lenses-Second/dp/1466598646/ref=sr_1_3?ie=UTF8&amp;qid=1537819025&amp;sr=8-3&amp;keywords=game+design
It's all about game design, independent of coding or anything else.
Which Book is better?
This One or This One?
If you want to learn how a company makes a compelling game then read The Art of Game Design
Thank you for the advice. I have learned a bit on my own (shameless portfolio plug here ) The dilemma I am having is the part of Game Development I enjoy most is Game Design the systems mechanics and rules part I have been reading some theory on my own Theory of Fun & The Art of Game Design: A Book of Lenses would recommend both. Anyway I find I learn very well in a class room environment seeing peers work on cool stuff gets me all fired up. Ok life story aside whats applicable as far as "normal degree/certificate" for Game Design?
You could check out this book.
If I recall correctly, the code is written in C++ but if you know Java reasonably well you shouldn't have too many problems translating the C++ code to Java.
I only read the first chapter in this book so I can't really comment on it, but a lot of people recommend it.
I haven't got all that far into it yet, but from what I've read it's pretty much exactly what it promises to be. It's a little expensive for sure, but I've found it useful so far.
I'd suggest taking a look at the 'Look Inside' feature on Amazon for a better idea of what the book offers.
Things I would recommend and learned during my first two years in Game Development (I'm a gamedeveloper student) is that you should understand the way of how an engine works. How does the gameloop work? What should I put in my constructor? How should I create a new class? Should I use some kind of Design Pattern or do I need a simple class to something else totally unrelated to another object.
What you should do is try to get into Object Oriented Programming or try Component Based Programming (like in Uinty). There are some engines you can take a look at that use some of those simple ideas.
You should learn C++ if you want to get in serious Game Development though. There are a lot of decent books on this topic.
If you want to learn a bit on the standard things of an engine so you get a decent idea how it is build and how you build upon one. you should read this book.
I see there are a lot of answers already but if you want to ask me something else you can always send me a PM and I'd be happy to help you out!
http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135/ref=sr_1_1?ie=UTF8&amp;qid=1317500883&amp;sr=8-1
This book is awesome. It's like...a game arch bible.
So basically, what I do is I work for a large company that has almost no understanding of software.
Said company makes a lot of equipment that for various reasons is hard to provide hands on training for (sorry if I'm being a bit vague here, but I rant about work a lot on Reddit to blow off steam so I don't want to identify myself too much) so what I do is I recreate those things in VR (or sometimes AR depending on what better meets the needs).
By doing this, we have products that can be pulled up on demand, configured however we need, processes can be done in a way that mimics a hands on experience, and a lot of the logistical problems get removed. The end result is better quality training for workers, and a massively reduced cost as we eliminate time delays and travel overhead.
What we primarily work in is Unity. You do not need a game dev specific education to do game dev, but there are a few concepts that are used heavily in game dev that aren't used nearly as much in other areas.
Naturally, algorithms and data structures are still king. Efficiency is everything in game dev because you often can't just throw more servers at something to scale. You have to take your clients hardware into account as well. Poorer performance means your customers need better hardware, and that starts to limit your market. In my case, since I build everything for internal use, I get to basically specify the hardware they use, which makes this a lot more pleasant, it's analogous to making something for a console that's going to be exclusive to just one platform.
The most used data structures are often different as well. I would say that what I use is probably 90% lists, 5% dictionaries, 5% graphs, though the graph portion tends to make up the backbone of everything so it's extremely important.
Other than that, runtimes of algorithms are very important. For the stuff I do, we try to maintain 120fps for our headsets. So that means we need to handle all of the processing and rendering in each frame in 8.33ms.
Even mediocre code can typically execute in that time, and the real bottlenecks are on the CPU load side of things like lighting calculations and collisions, which more often than not fall on the artists unless you're doing graphics programming.
Math wise, there's typically a small amount of linear algebra if you have to deal with 4x4 matrices, but otherwise most of what you deal with tends to be things like vectors, normalization, dot product, and so on. If your university offers a class on 3d math it would be worth taking. If they don't, memorize this book and you're set https://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135
Unity and Unreal are the two biggest game engines, both of them use a component based system. So reading up a bit on good component based design patterns is a good idea as well. There are other game engines out there, and those may or may not use components. But, component design is going to be the future.
If you want to know anything else, just ask.
http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135 Amazing book, after I checked it out from the library I decided I needed it. Nearly every example has a real life implementation, tons of code examples.
Read this book and then slap her face with it.
> Computer broken. Have important meeting in 3 minutes, pleas fix.
giggle sez: read a damn book
Check out Ian Bogost's How To Do Things with Video Games and Jane McGonigol's Reality is Broken. Both books revolve around exactually what you ask for.
I recommend Reality is Broken. The author also did a TED talk you an check out and see if it's what you're looking for. I really enjoyed it.
You might check out the book Reality is Broken - I thought it had a lot of useful insight into the 'gamer mindset'.
Reminds me a bit of Reality Is Broken by Jane McGonigal.
I completely understand and you are more than welcome :)
How are you enjoying Game Arts program? When I was thinking of starting another degree I looked at MICA. I loved the school and the faculty was amazing, but I ultimately I decided that relocating to Maryland for another Bachelors was not in my best interest. I wish they had a graduate program that focused on Games.
If you haven’t read it yet I highly recommend “Reality is Broken” by Jane McGonigal. It opened my eyes to seeing game possibilities in scenarios I would have never associated with gaming prior to reading the book. If you are short for time, or just do better with visual learning, her TEDtalks are also pretty great as well. Are you looking to branch out onto your own past graduation, or even flirting with the idea? If so, you need to read Reddit co-founder’s Alexis Ohanian’s book “Without Their Permission.” I apologize for the unwarranted random book recommendations they just are really great reads, especially for game developers.
你説的没錯,這的確是一個扭曲的環境下—個扭曲的表達方式。但一方面,現代社會巳進入遊戲時代,連企業都採gamification (遊戲化)的方式來潛移默化帶領員工節奏。為什麽不進—步用在改變社會上面?
設計遊戲來改變社會創造未來,並不是一個新的概念。不知下面這本經典之作有在國内出版嗎?在多人遊戲中,两岸的玩家可以友善地对談; 在走上街頭搜集宝石的过程中,志同道合者自然集結; 誰知道过関後獲得的武功秘笈裏,竟藏著推倒tg过程的變局十策?傳説中的朱元璋,靠著在月餅裏夾帶訊息,大家约好在同—天起義,全民共振.....總之,我不小看遊戲的潛力。遊戲是先進科技。对tg這种数位極杈,也許只有從黑技術下手來顛覆。
"現實既已破碎,遊戲帶動改變"(暫譯)
https://www.amazon.com/Reality-Broken-Games-Better-Change/dp/0143120611
I have an example: Settlers of Catan the board game. Until I read this book: https://www.amazon.com/Characteristics-Games-Press-George-Skaff/dp/026201713X, I had little to no appreciation for non-skill elements to games. I tended to gravitate toward pure-skill games such as chess. After gaining an understanding for why elements of luck are added to games (bringing new players into a game, mainly), I started to appreciate that aspect and not be bothered by "bad" dice rolls when I played Catan with friends.
Okay, here are 4 suggestions about theory. There are plenty more, but these are a few of my favourites.
Rules of Play: Game Design Fundamentals
Characteristics of Games
Game Mechanics: Advanced Game Design
Theory of Fun for Game Design
Good luck and happy reading.
Here are some links for the product in the above comment for different countries:
Amazon Smile Link: http://smile.amazon.com/Characteristics-Games-George-Skaff-Elias/dp/026201713X
|Country|Link|Charity Links|
|:-----------|:------------|:------------|
|USA|smile.amazon.com|EFF|
|UK|www.amazon.co.uk|Macmillan|
|Spain|www.amazon.es||
|France|www.amazon.fr||
|Germany|www.amazon.de||
|Japan|www.amazon.co.jp||
|Canada|www.amazon.ca||
|Italy|www.amazon.it||
|India|www.amazon.in||
|China|www.amazon.cn||
To help add charity links, please have a look at this thread.
This bot is currently in testing so let me know what you think by voting (or commenting). The thread for feature requests can be found here.
of course the key is developing the game concept and mechanics.
i develop large spreadsheets for my scoring formulas.
this is a very great book. in my amazon review of it, i list all the other books i would recommend on game design. (games of all types)
http://www.amazon.com/Characteristics-Games-George-Skaff-Elias/dp/026201713X/ref=sr_1_1?ie=UTF8&amp;qid=1416165791&amp;sr=8-1&amp;keywords=characteristics+of+games&amp;pebp=1416165792374
Probably this one http://www.amazon.com/Characteristics-Games-George-Skaff-Elias/dp/026201713X
Game Theory is mostly math by the way, it doesn't directly pertain to video games.
For an examination of game design at its core, I'd recommend The Rules of Play
http://www.amazon.com/Rules-Play-Game-Design-Fundamentals/dp/0262240459/
I would offer caution about going "too big" on your first outing. Pick your tool to build your first game (or even just mod an existing game) and try to create something small.
And if you just want to prototype rapidly, I was using Scratch for a while before I got up to speed on Unity (http://scratch.mit.edu/) even though I hate visual scripting languages...
Not entirely sure if this is what you're after, but this is something that my games art tutors recommend.
http://www.amazon.co.uk/Rules-Play-Game-Design-Fundamentals/dp/0262240459
Take a look at this book: https://www.amazon.com/Rules-Play-Design-Fundamentals-Press/dp/0262240459
It will provide some pretty good insight, I think.
Game design hobbyist here, I think some perspective is needed. If you want to start designing games I suggest you begin with something smaller. Table top RPGs are a complex interconnected web of rules and stats and one of the hardest types of games to design well. The only other type of physical game that is equal in difficulty is a deck building card game (which is what I assume you meant as 'card game'). If this is a hobby you wish to pursue I suggest reading a few books on game theory, flow, and statistics. This textbook can serve as a good introduction to all of these: Rules of Play: Game Design Fundamentals. After that, write a master design document that explains everything you want to accomplish with the game. Next, get some index cards and start play-testing ideas. . . .
Exciting! Just let me know if you ever have any questions or anything :)
The other thing I'd recommend is reading this: http://www.amazon.com/Ultimate-History-Video-Games-Pokemon/dp/0761536434
Thank you so much for the compliments. I feel lucky to do what I do, so it means a lot! :D
Maybe not a direct study on the medium, but The Ultimate History of Video Games is a very good book with a ton of good content and does address the abstract medium to some degree. It's also just a super interesting book.
This book goes over the gory details quite nicely. It was an enjoyable read. Atari had quite a colorful history.
I liked this one a lot. http://www.amazon.com/Ultimate-History-Video-Games-Pokemon/dp/0761536434
I really enjoyed The Ultimate History of Video Games: From Pong to Pokemon--The Story Behind the Craze That Touched Our Lives and Changed the World by Steven L. Kent.
Sega didn't fail because of clinging to former greatness, it failed because of spending ridiculous amounts of money on periphials that forced consumers to pay more money for a slight upgrade in graphics. (It's pretty well documented.)[http://www.denofgeek.com/uk] I also suggest this (book)[https://www.amazon.com/Ultimate-History-Video-Games-Pokemon/dp/0761536434]
That said, the Wii U's success or lack of has nothing to do with Nintendo being the leader in gaming hardware as it is. Simply put, Nintendo, even with lackluster sales of the Wii-U has sold more than 200 million units in total than it's closest competitor.
If you were winning a race by 50% more than your closest rival, there is no way anyone could say you were trying to catch up to anyone unless they were talking about you lapping someone else.
Further more, let me play it your way, where we limit this race to just the current generation of systems. Nintendo has already announced the NX and that they are not supporting the Wii U. I don't know about you, but if I am losing a race and quit, noone can accuse me of trying to catch up. I'm already planning for the next race.
So either way, Nintendo isn't playing catch up.
i haven't read this book but i seriously recommend "The Ultimate History of Video Games"
The ultimate history of videogames is really good, the audiobook has an awesome narrator
http://www.amazon.com/The-Ultimate-History-Video-Games/dp/0761536434
If you read the Steven Kent book, Chuck E Cheese was a way to get arcades into neighborhoods and jurisdictions that were biased against opening video arcades for various reasons.
The Ultimate History of Video Games?
Ever taken a look at this?
Been there, done that, bought the book.
I do believe it was the back up that he broke into. I agree, you'd assume they'd have redundant back ups, but it was compromised in such a way (from the Article I read in 'biography' about Half-Life 2 and it's development, that put it behind schedule.) Also, the code stolen, was then compiled, so there was a pretty decent chunk of it.
EDIT: This is the book Half-Life 2: Raising the Bar
This is a screenshot of Raising the Bar.
I was going to bitch about people reposting its content and tell people to buy it. But I see the price has gone from around $30 when I bought it to well over $100.
Can't fault anyone for not buying it at that price.
Game Programming Patterns - https://www.amazon.com/Game-Programming-Patterns-Robert-Nystrom/dp/0990582906
Con le basi sono messo abbastanza bene, sono un ingegnere informatico e lavoro praticamente solo in C# sullo stack .NET .. solo che per ora ho programmato praticamente solo webapp e al massimo software piccoli desktop. Quello che mi servirebbe sarebbe una buona introduzione al ciclo di vita e all'architettura dei giochi..
stavo pensando di acquistare questo libro, sembra ottimo!
Game Programming Patterns
My top three books are:
https://www.amazon.com/Art-Game-Design-Book-Lenses/dp/0123694965
https://www.amazon.com/David-Perry-Game-Design-Brainstorming/dp/1584506687
(more like an index of game design terms, ideal for brainstorming)
https://www.amazon.com/Game-Programming-Patterns-Robert-Nystrom/dp/0990582906
(more related to programming, but can give you a great insight how games should be structured, which can inform some design decisions)
So I mostly taught myself programming, but i have an engineering background. For context, im working now as a game developer. What i found most helpful once i became confident with my actual problem solving skills in programming was learning programming patterns.
For me that came in the form of [this book] (https://www.amazon.ca/dp/0990582906/ref=cm_sw_r_cp_apa_fSt.Bb1A7WQ5E), which is really just a rehash of how the design patterns in this book can be applied to game development.
Basically once you're more familiar with design patterns, you'll be able to build more manageable code, and better understand others who are using the same patterns.
One thing you can try to do is learn programming patterns. Patterns can help you get your head around new problems. They are ways of doing things and can be used to solve many diverse problems. This is a great book to read: https://www.amazon.com/Game-Programming-Patterns-Robert-Nystrom/dp/0990582906/ref=sr_1_1?ie=UTF8&amp;qid=1540954964&amp;sr=8-1&amp;keywords=game+programming+patterns
Like others have said you can find tools to make games that don't require coding. However, if you want to learn how to code games, you first need to learn how to code in general. You should learn basic object-oriented principles (inheritance, polymorphism, encapsulation, cohesion, coupling). I'd also strongly recommend learning about design patterns. Write some simpler programs before you try to write a game. When you get to writing a game, start out with a simple game (or maybe clone a simple game you know of, like flappy bird).
Programming Tutorials:
https://www.codecademy.com/
http://www.tutorialspoint.com/
http://www.codeproject.com/
http://tutsplus.com/
Game Programming
http://www.amazon.com/Game-Programming-Patterns-Robert-Nystrom/dp/0990582906/ref=sr_1_1?ie=UTF8&amp;qid=1451859068&amp;sr=8-1&amp;keywords=game+programming+patterns - has lots of examples on using design patterns in game development
http://natureofcode.com/book/introduction/ - free book on coding vectors, forces, steering behaviors, and other physics stuff
http://www.gamedev.net/page/resources/_/technical/game-programming/understanding-component-entity-systems-r3013 - a pattern you should know if you want to code games
I would recommend looking up the book Game Programming Patterns. Another thing that
was thathas helped me is how to create an finite-state-machine (FSM), with this you can manage game states and AI-states etc. Also I have heard good things about ECS (Entity-Component-System) but have yet to try it myself. Currently I am reading about how to use Lua for modding capabilites. Don't know if this was helpful or not.We all know Professional JavaScript for Web Developers is a fantastic book for the JavaScript beginner. And the author also has a book about ES6 called Understanding ECMAScript 6, hope this help :)
This was an excellent book. Very thorough and got me learning my first few months of JS https://www.amazon.com/Professional-JavaScript-Developers-Nicholas-Zakas/dp/1118026691
The book isn't mine :)
You can purchase it here or try out the pdf. I recommend you buy it if you like it.
More info at the introduction post.
strap down with a good book, and work through the examples in said book.
For example, a decent one for Javascript would be Professional Javascript for Web Developers. While you get a firm grasp on concepts try building something.
Highly recommend: https://www.codeschool.com/paths/javascript
Also in my opinion this is the best book to learn from :
http://www.amazon.com/Professional-JavaScript-Developers-Nicholas-Zakas/dp/1118026691/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1408964857&amp;sr=1-1&amp;keywords=javascript+for+web+developers
I'm not sure what your level of understanding is for programming in general; but If you're fairly new to programming concepts (creating variables, if then else, loops, functions, classes, etc) I would probably spend some time getting familiar with these concepts first. I think there might be some decent beginner programming/JavaScript vids on Lynda.com to watch. One thing to keep in mind is JavaScript isn't a very rigid language. It allows you to get away with a lot of things that some (I guess we'll call them higher functioning languages) do not. Just keep this in mind if you ever decide to venture to another language.
I'd recommend just learning the basics of JavaScript first, get comfortable with it, understand how it works and then once you start feeling comfortable with it, pick up a framework like JQuery. JQuery is just a bunch of JavaScript functions that shorten the amount of code/time that you have to write and is fairly standard amongst many developers abilities. From here on out, pick up a something like angular or backbone; just keep your eyes on the different user communities, new products, research the pros/cons of each system. They all have things that they are better at and I've found that the type of projects that you want to build really influence the choice of framework that you will use. Also, here is a great book recommendation for JavaScript. I found this on a post in the community a while back and it's been a great resource. Not sure if there is a newer version or not.
> Professional Javascript for Web Developers (which is like the bible of core JS)
Here's what I don't get about this. I read through some of this book and got shot down on Hacker News in a conversation about ECMAscript vs Javascript.
Apparently, the author's claim that Javascript is composed of 3 distinct parts (Ecmascript, DOM, BOM) is completely false. For anyone interested, you can see what I'm talking about on page 3 of the Amazon preview
Not sure why a book that has such a significant mistake at the very beginning would be held in such high regard.
Currently Reading:
JavaScript - Professional Javascript for Web Developers
Software Design - Clean Code
Later on, I'll be reading this for Data Structures and Algorithms:
Introduction to Algorithms
Don't know what I'll do for a specific language later on. Probably go back to C# and see what I can churn out there.
The book you recommended is online as well. I know many swear by Eloquent JavaScript. I’ve personally learned the most from Nicholas Zara’s’ book
https://www.amazon.com/Professional-JavaScript-Developers-Nicholas-Zakas/dp/1118026691/ref=mp_s_a_1_7?keywords=zakas+javascript&amp;qid=1562022617&amp;s=gateway&amp;sprefix=zakas+&amp;sr=8-7
It is a bit dated, but you can “catch up” relatively quickly. I’m also just starting out. There’s so much out there. Hope this helps!
I'm building sites with, minimal amount of JavaScript. I first read "professional javascript for web developers" by Nicholas Zakas and never really completed it, as it was just boring to look at.
It's a little dated now but surprised Javascript for Web Developers by Nicholas Zakas isn't on there.
https://www.amazon.com/dp/1118026691/ref=cm_sw_r_sms_awdb_gSJEzb6NZC36P
First don't feel grossly under-qualified. There is vast amounts of technical knowledge and you will never learn absolutely everything.
I was in a similar position a few years back. The bottom line is, you have to always learn, read and build things. I highly suggest this book, download the e-book version and chip away at it everyday.
https://www.amazon.com/Professional-JavaScript-Developers-Nicholas-Zakas/dp/1118026691/ref=asap_bc?ie=UTF8
This will give you a rounded foundation and fill your head with the terms you will need in the future. Once you understand it broadly, you can start reading further material until you really cement it.
I started off with teamtreehouse.com and did their front-end developer track, which introduced me to HTML / CSS / Javascript. I had tried Codecademy prior to that, but I felt that it was just teaching me to follow directions, not teaching me to code.
I read the core chapters of Javascript for Professional Web Developers and then did the same for Javascript: The Definitive Guide. This is what really gave me a strong base understanding of the Javascript language (arrays, objects, prototypical inheritance, etc.).
Along the way I started using jQuery for DOM manipulation, which really made things easy, but it felt just...too easy. Like I was cheating myself by using this magical tool that I didn't really understand. So I started reviewing the DOM-related chapters of the two books I mentioned above, which is something I'm currently still undertaking.
As for AngularJS I've been trying to follow this Thinkster.io guide which I think has a pretty solid set of resources. I'm by no means an advanced AngularJS user, but hopefully in time I'll continue to grow. My current project is for my wedding, and uses an array of JS objects, each containing hotel information (name, location, description, website, etc). It then plots them on a Leaflet.js map and adds an entry in the list below each time I add a new hotel. I was pretty proud of that.
As for Node.JS, Professional Node.js has been really good so far. I learned enough to implement an XMPP bot at work, which was well received.
I'm continuing my education on Node.js--specifically with Express which I'm learning at the moment through MEAN Web Development
As for Python, I just finished my first course (Programming Fund. I) which was in Python, so I know the basic syntax. PHP I can read well enough, but sort of gave up on learning (for now) once I found server-side Javascript.
It probably seems like I read a lot of books, but I do want to mention that I haven't 'finished' these fully; I usually read it section by section, sometimes jump between books. I just have an erratic reading style, I guess.
I think the most important things are:
I really enjoy Javascript and I think that has been a major motivator for me. I don't think I could have put the same level of effort into learning, say, PHP, which just doesn't excite me in the same way.
I know that the accessibility and clarity of a CS-book can be totally subjective, but from what I've found there are almost always a certain set of resources people universally praise (like Definitive Guide / Good Parts / Eloquent Javascript for JS). I spend a good amount of time researching what the community for the language / framework tend to agree is the best resource.
Especially for big tomes like The Definitive Guide which are just choke full of great snippets, I've found that its super useful to type out each example that you do not 100% understand. I've even found some errors in the books this way, which only served to help me understand how it really works even more.
This was big for me when it came to Node. The company I work for had a lot of traffic in their Jabber rooms and it was difficult to quantify it. I'd like to move to a SW Developer position there someday, so I decided that I'd try to solve the problem by getting a Jabber bot that monitors and records activity based on room, user, time. Having a tangible goal in a real-world context made me more motivated to figure out how I could use my tools to effectively.
Find an IDE you love and learn it inside and out. Get all those fancy-pants plugins and add-ons that make it hyper-functional. Find out which tools really 'click' for you and learn how they work. I've recently found myself very happy using Sublime Text as an IDE, Yeoman for boilerplate (love Grunt so much), and SASS as a CSS preprocessor (with Susy / Bourbon ). It just feels so satisfying having a solid setup, and I think that that kind of satisfaction with your environment makes it easier to learn.
Overall I still think I have a lot to learn and wouldn't claim that I'm an expert in any realm yet, but eventually--with time--I hope to be.
I really liked Professional JavaScript for Web Developers.
I checked this sites content for C and C++. What was there was more so examples than it was well-explained. Since I don't know Javascript too well, I can't say how good the guide is, but if the quality level of their C and C++ content has anything to say for them, I'd say stay away.
Reddit already has recommended places to go for this. The Learn Javascript subreddit suggests one of the following three options:
Learn Javascript from the Mozilla team's resource
Learn Javascript from Code Academy
Learn Javascript from the subreddit's study group which uses this book Professional JavaScript for Web Developers
From a very quick look, Mozilla has a lot of good content that is well-explained. It looks like most people will want to begin with the "JavaScript first steps" section if they choose this route. Compared to CodeAcademy, I think you'll walk away with a better understanding after going through everything MDN has to offer. On the otherhand, I would say CodeAcademy is easier for beginners.
If CodeAcademy stays true to its reputation, I would imagine it is very good for the beginner to get their feet wet.
The Learn Javascript study group's curriculum seems to be using a pretty good book that is supplemented by CodeAcademy and other online resources. This looks to be the most comprehensive of all the choices.
I second CodeSchool. If you are serious about learning web development quickly, it is worth the cost. You probably should supplement it with something heavier like Professional JavaScript for Web Developers.
http://www.amazon.com/gp/aw/d/1118026691?pc_redir=1409835416&amp;robot_redir=1
I would advice you to start with Eloquent JavaScript to get the basics down, and then switch to Professional JavaScript for Web Developers, 3rd Edition
which is a book that is very thorough and will teach you A LOT of stuff(warning: it's 960 pages.)
Eloquent JavaScript: http://eloquentjavascript.net/
Professional JavaScript for Web Developers 3rd Edition: http://www.amazon.com/gp/product/1118026691/
Professional Javascript for Web Developers is much better.
the 2 i used are eloquent javascript http://eloquentjavascript.net/ . There is a pretty big leap in complexity when it comes it chapter 6. Don't worry if it goes over your head if youàre completely new. It has an epub free download you can convert to mobi for kindle or a kindle version on amazon.
Professional JavaScript for Web Developers http://www.amazon.com/gp/product/1118026691/ref=s9_simh_gw_p14_d0_i3?pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=desktop-1&amp;pf_rd_r=0GCE9EKQN5N6N9W1HNNS&amp;pf_rd_t=36701&amp;pf_rd_p=1970559082&amp;pf_rd_i=desktop is a more indepth book on JS. Explores everything with good examples but doesn't have exercises. I recommend it as a second book.
Level Up is a pretty good book
https://www.amazon.com/Level-Guide-Great-Video-Design/dp/1118877160
Try to find similar games and study how they evolve as you pass the levels etc.
After doing that think what elements can you change in order to make your game feel more unique.
Also try to think about how those elements will appear as the player progresses. Try to combine them in different ways so that he will get challenged even more.
Last, you said that the game is a platformer, you can check out this book,! http://www.amazon.com/Level-Guide-Great-Video-Design/dp/1118877160?ie=UTF8&amp;keywords=game%20design&amp;qid=1465499193&amp;ref_=sr_1_4&amp;sr=8-4
It has general thoughts on design but specializes in platformer too!
Hey so I don't know gamedev's opinion on the book Level up!, But that's the first book about game design that I got when I started and it helped me understand a lot about the process of game design.
It is a very frustrating but very rewarding process. In the end when people try your game and you see them have a blast, that is the best feeling ever.
I actually got this one for one of my classes and was surprised by how much I enjoyed reading it. I even finished it before my classes started.
Find this book and you will find your answers.
And here's a decent timeline.
Here you go.
I should have said "basic" instead of "simple." As in this is a fundamental thing your game engine should be capable of. It is simple in that it's not a unique problem, it has been solved before and there's no reason you would have to reinvent the wheel here.
I disagree with the premise of Mr. or Ms. Kubina's statement. Having said that, I think there's a point in their comment worth addressing.
Why isn't hunting for or excelling at a job always at least as engaging as hunting for Pokemon? I mean, the rewards are more useful--the resources necessary to, y'know, eat--but chasing cartoon mushroom-infested bugs is far more fun. I don't think the answer to that is simple, but thinking about the question can be very insightful. I'd recommend game designer Jane McGonigal's book Reality Is Broken. If you're in a pinch for time, consider her TED Talk to start.
Peter Tyson's book (http://amzn.com/1449314945) is excellent for getting the basics down. It's based on 34.11, but all of his examples are basic enough to work for 2014 too. Highly recommended.