Reddit mentions: The best computer & video game strategy guides
We found 3,128 Reddit comments discussing the best computer & video game strategy guides. We ran sentiment analysis on each of these comments to determine how redditors feel about different products. We found 830 products and ranked them based on the amount of positive reactions they received. Here are the top 20.
1. The Art of Game Design: A Book of Lenses, Second Edition
- AK Peters
Features:
Specs:
Height | 9.5 Inches |
Length | 8 Inches |
Number of items | 1 |
Weight | 2.29942139266 Pounds |
Width | 1.25 Inches |
2. Game Engine Architecture
- Used Book in Good Condition
Features:
Specs:
Height | 9.25 Inches |
Length | 7.5 Inches |
Number of items | 1 |
Weight | 3.65085505872 Pounds |
Width | 1.75 Inches |
3. Game Engine Architecture
- AK Peters
Features:
Specs:
Height | 9.75 Inches |
Length | 8 Inches |
Number of items | 1 |
Weight | 3.89997741478 Pounds |
Width | 2.25 Inches |
4. Real-Time Rendering, Third Edition
- New
- Mint Condition
- Dispatch same day for order received before 12 noon
- Guaranteed packaging
- No quibbles returns
Features:
Specs:
Height | 9 Inches |
Length | 6.25 Inches |
Number of items | 1 |
Weight | 3.95068373504 Pounds |
Width | 1.75 Inches |
5. Professional JavaScript for Web Developers
- Wrox Press
Features:
Specs:
Height | 9.200769 Inches |
Length | 7.098411 Inches |
Number of items | 1 |
Weight | 3.50975921104 Pounds |
Width | 1.901571 Inches |
6. Game Coding Complete, Fourth Edition
Specs:
Height | 6.5 Inches |
Length | 7.75 Inches |
Number of items | 1 |
Weight | 3.4392112872 Pounds |
Width | 1.75 Inches |
7. 3D Math Primer for Graphics and Game Development
AK Peters
Specs:
Height | 9.4 Inches |
Length | 7.8 Inches |
Number of items | 1 |
Weight | 4.1998060911 Pounds |
Width | 1.5 Inches |
8. Challenges for Game Designers
- Used Book in Good Condition
Features:
Specs:
Height | 9.25 Inches |
Length | 7.75 Inches |
Number of items | 1 |
Weight | 1.33159206248 Pounds |
Width | 1 Inches |
9. Level Up! The Guide to Great Video Game Design
- John Wiley Sons
Features:
Specs:
Height | 9.098407 Inches |
Length | 7.098411 Inches |
Number of items | 1 |
Weight | 1.9180216794 Pounds |
Width | 1.401572 Inches |
10. Rules of Play: Game Design Fundamentals (The MIT Press)
Mit Press
Specs:
Color | Sky/Pale blue |
Height | 1.5 Inches |
Length | 9.1 Inches |
Number of items | 1 |
Release date | September 2003 |
Weight | 3.65085505872 Pounds |
Width | 8.3 Inches |
11. The Ultimate History of Video Games: From Pong to Pokemon--The Story Behind the Craze That Touched Our Lives and Changed the World
- Three Rivers Press
Features:
Specs:
Color | Multicolor |
Height | 9.1 Inches |
Length | 7.33 Inches |
Number of items | 1 |
Release date | October 2001 |
Weight | 2.22446422358 Pounds |
Width | 1.28 Inches |
12. Game Programming Patterns
Brand New in box. The product ships with all relevant accessories
Specs:
Height | 9.25 Inches |
Length | 7.5 Inches |
Number of items | 1 |
Weight | 1.5873282864 Pounds |
Width | 0.8 Inches |
13. Characteristics of Games (The MIT Press)
- Used Book in Good Condition
Features:
Specs:
Color | White |
Height | 9 Inches |
Length | 7 Inches |
Number of items | 1 |
Release date | August 2012 |
Weight | 1.25 Pounds |
Width | 1 Inches |
14. Racing the Beam: The Atari Video Computer System (Platform Studies)
- ►ADJUSTABLE HEIGHT: Quickly raise and lower the tabletop from 33.5" to 47"
- ►PORTABLE: Locking casters allow for secure positioning, and moving from the workout to the office.
- ►NON-SLIP SURFACE: The desktop features a non-slip surface that features built in tablet and smart phone slots
- ►VERSATILE: The tabletop includes holes for cable management
- ►DURABLE: The steel construction of the frame will ensure that the RAD Cycle Products Adjustable Bike Trainer Fitness Desk Portable Workstation will hold up to years of use.
Features:
Specs:
Height | 9 Inches |
Length | 6 Inches |
Number of items | 1 |
Release date | January 2009 |
Weight | 0.95019234922 Pounds |
Width | 0.75 Inches |
15. Dungeons & Dragons Player's Handbook: Arcane, Divine, and Martial Heroes (Roleplaying Game Core Rules)
- Wizards of the Coast
Features:
Specs:
Height | 11.2 Inches |
Length | 8.6 Inches |
Number of items | 1 |
Release date | June 2008 |
Weight | 2.40083403318 Pounds |
Width | 0.9 Inches |
16. Reality Is Broken: Why Games Make Us Better and How They Can Change the World
- Penguin Books
Features:
Specs:
Color | White |
Height | 8.4 Inches |
Length | 5.5 Inches |
Number of items | 1 |
Release date | December 2011 |
Weight | 0.85 Pounds |
Width | 0.9 Inches |
17. Game Mechanics: Advanced Game Design (Voices That Matter)
Specs:
Height | 9.25 Inches |
Length | 7.5 Inches |
Number of items | 1 |
Weight | 1.5873282864 pounds |
Width | 0.75 Inches |
18. Reality Is Broken: Why Games Make Us Better and How They Can Change the World
- Used Book in Good Condition
Features:
Specs:
Height | 9.5 Inches |
Length | 6.5 Inches |
Number of items | 1 |
Release date | January 2011 |
Weight | 1.45 Pounds |
Width | 1.5 Inches |
19. The Legend of Zelda: Breath of the Wild The Complete Official Guide: -Expanded Edition
- Brand New in box. The product ships with all relevant accessories
Features:
Specs:
Height | 13.37 Inches |
Length | 8 Inches |
Number of items | 1 |
Release date | February 2018 |
Weight | 4.4 Pounds |
Width | 1.5 Inches |
20. Getting Started with Dwarf Fortress: Learn To Play The Most Complex Video Game Ever Made
- O Reilly Media
Features:
Specs:
Height | 9.19 Inches |
Length | 7 Inches |
Number of items | 1 |
Release date | June 2012 |
Weight | 0.88 Pounds |
Width | 0.51 Inches |
🎓 Reddit experts on computer & video game strategy guides
The comments and opinions expressed on this page are written exclusively by redditors. To provide you with the most relevant data, we sourced opinions from the most knowledgeable Reddit users based the total number of upvotes and downvotes received across comments on subreddits where computer & video game strategy guides are discussed. For your reference and for the sake of transparency, here are the specialists whose opinions mattered the most in our ranking.
Long post incoming; some of this stuff is copied from other posts I've made:
Getting into D&D is going to be a lot simpler and easier to rolling your own RPG system, unless the system you design is ultra simple and rules-light. And unless your friends happen to be game design experts or prodigies, what they come up with probably isn't going to be as fun, balanced or robust as a system designed and iterated upon by professionals and the RPG geek community.
D&D isn't rocket science, but the first few sessions will almost certainly be fraught with confusion, rules referencing, and/or people getting the rules wrong... but all that's OK. The key is to keep a relaxed attitude and for the DM err on the side of what seems most fun and entertaining. After a few sessions, everyone will probably have a decent grasp on the fundamental rules and things will go a bit more smoothly.
If you do decide to play D&D, you have to decide upon an edition to play, as there are several and they aren't compatible with each other. Right now the two most popular and recent editions are 3.5 and 4th edition. A 3rd party spin-off of 3.5 called Pathfinder is also popular. A big advantage to Pathfinder if you're on a tight budget is that pretty much the entire system is available online for free. For your conservative friends, the fact that it's not called D&D may also eliminate some of the social stigma, making it an easier sell.
My preferred edition though, and the one that is most newbie-friendly, is 4th edition. A slightly dated and incomplete overview of 4e's rules is available in this free quickstart guide. This tells you about 90% of what you need to know to sit down at a table and play as a player, and includes some pregenerated characters, but lacks the rules for character creation and progression.
A free 4e adventure, Keep on the Shadowfell can also be downloaded and perused by the DM, but KotS is not the finest example of adventure design, though you can find fan suggestions online to improve and tweak it.
As far as what products you should or need to buy, the Red Box Starter is probably the simplest and most straight-forward route. Avoid paying more than $25 for it new (a lot of 4e products seem to have spotty availability, which means sometimes they are overpriced).
Like the free quickstart guide, however, the Red Box does not you access to the full rules, but rather a simplified and stripped down overview. It almost follows the model of a choose your own adventure book in some respects rather than true D&D, which can make it a good stepping stone, though some players are impatient with it. It does, however, include some items that will remain useful to your game even when you outgrow the rules and content of the box: a double-sided poster map which can be reused, punch-out cardstock tokens to represent player characters and monsters and a set of dice. At $20 shipped, it's a good value if you feel your need a really gentle introduction into D&D.
However, if the members of your group are not averse to doing a couple hours of reading before their first adventure, and would rather skip the frying pan and jump straight into the fire, you can safely skip the Red Box.
What you really need is: a book that descriptions character creation and level 1-30 character options, an encounter design guide for the DM, a monster resource, plus some physical tools/props.
As for as the player resource goes, any one of the following will fulfill the need: the Player's Handbook, Heroes of the Forgotten Lands, Heroes of the Fallen Kingdoms. I would recommend the latter two, as they are 4e "Essentials" products, which are more up to date and feature more newbie-friendly steamlined design. However, all of the books are compatible with each other, and you can use them all.
You also need a book that tells the DM how to design encounters, run skill challenges, and reward teh players. You have basically three options here: the Dungeon Master's Guide, the DM's Book from the DM's Kit or the Rules Compendium.
Each has their pros and cons. The DMG is written with the new DM in mind and gives you all the rules info you need that isn't include in the players' books, but as one of the originally published books in the edition, it's less refined and does not include the latest errata (which you can download online, though it's a bit of a pain to read through all of it). It's probably your least expensive option.
The DM's Kit seems to be out of print (or on a reduced print run) so it's selling at above retail price. IMO it'd be the best option for a new DM, as it contains useful goodies (tokens, maps, and two quality published adventures) like the Red Box, plus a more up to date version of the Dungeon Master's Guide. But if you have to pay $55+, that's kind of difficult to justify.
The Rules Compendium has all of the rules information a DM needs, and it includes most of the latest errata, and it's generally a handy reference that you'll probably want to get eventually anyway. The problem is just that: it's a reference, and is light on insight and advice on how to build entertaining adventures and run a fun game. Like the DM's kit, it may be out of print, but it's still a good value. The Rules Compendium may be the best option if you're willing to read forums and web sites for DMing advice, which can be system neutral.
The DM also needs a monster resource. Hands down, the best option here is the Monster Vault. It's basically a far superior revision of 4e's Monster Manual, and contains an adventure, a ton of tokens and a battle map to boot. It's a steal at $20.
Another recommended product would be a D&D Insider subscription, which will give you access to the Character Builder, which as the name implies, makes building/progressing characters a cinch, and the Compendium, which gives you access to every bit of crunch in the entire published history of 4e: all the classes, powers, feats, races, monsters, items, themes, etc. as well as a glossary which describes much of the rules. You also get access to Dragon and Dungeon magazine archives, which contains a lot of flavor, design advice, and many pre-made adventures (see this thread for some highlights). It also has a handy monster builder tool. A subscription is $10/month or less if you commit to a longer subscription. Getting one subscription and sharing it among the group can be worthwhile.
Finally, you also need some physical things:
Finally, as for convincing your friends, as you've said, D&D is essentially no different from Skyrim, World of Warcraft, etc. D&D is pretty much the granddaddy of those games. If you can tolerate the "occult" elements in those other games, there shouldn't be anything offensive about D&D. And ultimately, the DM and players have full control over what they want to allow in the game. Have a discussion and decide if there's any subject matter that is the party finds offensive and exclude it from the game (or re-fluff it so it it's not so offensive).
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.
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!
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.
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:
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.
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!
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.
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!
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!!
It depends. A game design degree from a well-designed and well-connected course (USC and Carnegie Mellon are both well-set-up) can sometimes help, but more through the connections you'll make than the things you'll learn in the course. In general, though, I agree strongly with the people here advising you to learn a practical skill.
Someone looking to hire a junior designer (and please don't have any illusions that you'll be considered anything other than junior until you've shipped titles) will be looking at you through two lenses:
For both questions to be answerable in the affirmative, you need to be able to demonstrate both that you know how to think like a designer (what choices were made to make a given game work, and why did those choices have the effect they had?), and that you know your way around a game engine. A designer who knows only how to write design docs won't be useful in the short-term, and probably won't be useful in the longer term either, because this person won't be able to prototype their work. Good design is an iterative process, and your ability to explore and respond to your work hinges on your ability to express it in the medium.
Regardless of the degree you choose, my recommendation is that you pursue your own education aggressively. The game industry changes extremely fast, and your ability to teach yourself constantly is essential to your ability to keep up and stay relevant. To this end, I'd do two things:
There are other great books out there, but these three will set you off in the right direction. As a practical way to learn to apply this thinking, I'd recommend writing notes about the games you play from the perspectives taught in these books. Learn the theory by reading about it, recognize how it's working in the games you play by writing about it (even if just for yourself), and then try to apply this thinking to the game you're designing and building in the engine you're learning.
Do these things, and you'll be an impressive candidate, and well on your way to becoming a good designer. At that point, the degree you choose really comes down to the specific areas in yourself you'd like to strengthen. I've worked with designers who earned degrees in architecture, film, english literature, philosophy, computer science, experimental music, and game design. Truthfully, few people will be swayed one way or another by the particular degree - they'll want to see your work and your ability to think. Above all, listen to those people here who are telling you to learn both sides of the coin - how to think about and write about design, and how to build running software - they're absolutely right that you need both.
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.
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!
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
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 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's possible that it already exists, of course
Baldur's Gate and Neverwinter Nights are both highly regarded video game recreations of the Dungeons and Dragons rule sets, but they are built on 2nd and 3rd editions, respectively. Dungeons and Dragons Online is also built on a somewhat modified version of the 3rd edition rules.
>I'd like it if someone could tell me what version would be the best to make as a game
4th edition, the current edition of Dungeons and Dragons, is probably your best option. It has a very gentle learning curve, and the mechanics are easy to understand. It also lends itself very well to play on a grid due to its emphasis on tactical combat. In my experience (I'm a software developer), portraying the world in a grid makes things super easy.
>I need someone who know the rules of D&D and can explain them to me
You should consider checking out "Dungeons and Dragons Encounters" at your friendly local game store (link has a search box to find your nearest location). They run hour-long weekly sessions, and provide pre-made characters. It's a very easy way to get acquainted with the game, and they always welcome new players.
The game is a bit big for someone to explain via reddit, but if you feel up to it you could pick up a copy of the Player's Handbook or the "Red Box" starter set.
>I'm not sure if it's legal to make it
Provided that you don't actually use any of Wizards of the Coast's intellectual property, you're fine. Things like "Elves", "Dwarves", "Halflings" and other things from classic fantasy are fair game. Specific things like the names of feats and powers might be a little more dangerous. The easy way to get around this is to make users type the names themselves. If your user has to type "Dragonborn" in a field titled "race", no on could blame you for it.
>With this I must say that my skills are limited, and therefor I won't be able to make it 3D, and I'll only be able to implement a limited AI. The game will be playable online with friends.
You may consider just building a "virtual table top." Essentially it's a program that emulates having your game group (3-6 players and a Dungeon Master) at the table. You need a gridded map, dice, icons to represent characters, and a way to handle character sheets.
There are several very good virtual table top programs in existence, but that shouldn't stop you from building one. I've built one myself (entirely in Javascript), and it was an incredibly fun project.
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)
Thanks for the great question! I'll answer the way my mother always answer my long emails...
If you've read the art of game design or a similar book, you'll find that in FTB, most of the fun is had through the problem solving.
You have to give problems to solve to the player, hard ones if you must, but you must not hinder the player in his attempts to solve it. The player should be as free as possible to solve your problems any way he likes
When the player finds a shortcut, he receives some instant gratification. As a developper, you may hate shortcuts as they cut content from the player's experience. But the short-term gratification can be worth it. Letting the player skip some of the game's content isn't dramatic. And this is what makes Minecraft's replayability.
# Feels good:
Problem solving
Feels bad:
Tediousness
Stopping me, breaking my inertia, by asking me to do some weird task
When you place a wall down my road and the only way to get past it is to jump, be careful, maybe I don't like to jump; add a window, a door, explosives, portals, anything.
Mixed feelings:
Alternately, when a mod relies too heavily on grinding and isn't automateable easily, it gets annoying. The grind isn't what's fun, the wait isn't what's fun, refining your machinery and scaling up your contraptions is where the fun is at.
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! :)
I think that's a hard enough question even when targeting the general population within that age group. So it can be difficult to find well researched and experientially backed up information even without the more specific target of children with autism. Though I'll also note (as someone with a degree of autism himself), depending on the individual's particular autistic attributes, the condition can actually be a strength for studying something such as game design. The focus on designing rules and working out all the implications for their effects on the gameplay experience can often be a natural fit for someone with autism. At least in my case, the key for effective learning was to grant me the time, space, and tools to explore a subject in my own idiosyncratic way, at which point I could soak up all sorts of knowledge and concepts.
As for concrete recommendations, the one that comes to my mind is to look outside of computers for at least part of your teaching material and activities. I wasn't expecting it initially, but while reading a variety of game design books to improve my own knowledge for making video games, I repeatedly encountered the recommendation to do as much of your early prototyping away from the computer as possible. That is, design board games, card games, sports-like games, party games, and so on. In many cases, you can pull ideas from a variety of game types to build hybrids that do a decent job of replicating the essence of certain video game mechanics, giving you a chance to evaluate how fun the concept is, and if it merits spending time to make a more in depth digital version.
Best of all, it can be free or very cheap, it requires no knowledge of coding, you can do it anywhere (though preferably with a good work table and some craft supplies and standard physical gaming equipment), and you can get results in just a few hours, or maybe even a few minutes depending on the concept. Anything using a standard deck of 52 cards is particularly simple to test, for example.
Two of the books I've already read that had sections helping me think in these terms were:
Challenges for Game Designers is also on my backlog to read and looks very good for this sort of non-digital focus for learning skills that will ultimately be applicable to making digital games.
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.
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.
Anyone remember the infamous Miyamoto quotes where he says DKC was not good? Apparently, they came 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."
Kent 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.
> IGN: I was interviewing them earlier, and even though you weren't directly involved you were definitely very inspirational in making sure certain things were done in that game correctly. I'm wondering, which parts of Donkey Kong Country did you like versus not like? And what did you address with them?
> Miyamoto: The first point that I want to make is that I actually worked very closely with Rare on the original Donkey Kong Country. And apparently recently some rumor got out that I didn't really like that game? I just want to clarify that that's not the case, because I was very involved in that. And even emailing almost daily with Tim Stamper right up until the end.
Kinda like IGN founder Peer Schneider there 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."
He pretty much just described most video games.
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.
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 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.
You may want to narrow that down a bit, but okay, here are some highlights, with amazon links to help disambiguate.
http://www.amazon.com/Game-Programming-Gems-Adam-Lake/dp/1584507020/
www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135/
http://www.amazon.com/Game-Engine-Design-Second-Edition/dp/0122290631/
http://www.amazon.com/Game-Engine-Architecture-Engineering-Applications/dp/012229064X/
http://www.amazon.com/Artificial-Intelligence-Games-Second-Edition/dp/0123747317/
http://www.amazon.com/AI-Game-Programming-Wisdom-CD-ROM/dp/1584500778/
http://www.amazon.com/Real-Time-Rendering-Third-Edition-Akenine-Moller/
http://www.amazon.com/Real-Time-Cameras-Mark-Haigh-Hutchinson/dp/0123116341/
http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/
There are many others, but looking at my shelf these are the big ones that stick out for recommendations.
Firstly, don't be confused: PSM is not Vita. It's a separate platform that Vita supports but is also available on tablets and smart phones. Releasing a PSM game means releasing on not just the Vita but also on touch only devices.
Second, you may be best served by first understanding computer graphics at a lower level. 2D and 3D are pretty much the same thing when it comes down to it, the biggest difference is in the projection used by the camera and the pipeline for your assets (as you'll need your models in a format that is supported by the pipeline or write your own pipeline). There are plenty of books out there but I highly recommend Real-Time Rendering.
PSM has support for 3D just like most other frameworks. A quick Google search got me this. Or, you can do everything yourself as you have access to the GPU via a very nice VertexBuffer API in the PSM SDK. While I wouldn't recommend it to get a game out quickly, I would suggest giving it a shot to better understand how a vertex buffer works and renders a model. It's a portable skill: being able to build a vertex buffer and shaders to render your own models is something you can take to and graphics framework.
Last thing is MonoGame, which is an open source and cross platform implementation of Microsoft's XNA. The reason why you see a lot of "how to transfer your project over" is because that was what it was originally meant for: getting your XNA project to use the MonoGame library to bring it over to other platforms. So, realistically, what you want is to look up 3D in XNA. Keep in mind though that PSM support for MonoGame is still under construction. I'd recommend not using the binaries on their site but actually pulling the latest from git and building the project yourself to make sure you have the latest code.
As for gravity/physics, there's nothing built into PSM or MonoGame the way there is in Unity, which uses the PhysX engine. You'll need to find an external library or write your own physics solver. Or, if your game doesn't need realistic physics, try to get away with a simpler model that only uses AABBs or spheres.
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!
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'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:
Check out Game Programming Patterns, it contains lots of examples of how to write code with a good structure.
Game Engine Architecture is also very useful, but much more theoretical and heavy, but it explains nicely most of aspects of game engines and gives you a lot of ideas of how to approach different problems.
Don't halt your progress by just reading these books and starting only afterwards: they'll take a long time to finish. Start with basic things, for example Game Loop chapter. Make a simple, but good loop and start building things. Just get something playable on the screen first.
By the time you do it, you'll have some problematic code which you'll need to fix. For example, you may not be satisfied with how closely tied some things are. At that point you'll read about event queues and will find solution to a lot of problems.
And that goes for everything. You don't just start with perfect architecture, but with some experience you'll get an idea about what works and what doesn't. Some people write the same spaghetti for a long time and don't improve, but if you learn some good concepts, it's very unlikely that you'll ever return to worse practices.
And it's also very important to not follow bad coding practices: globals are mostly bad, spaghetti code also should be avoided. Don't write big functions, don't write big classes. Don't just hope that the code will become better just randomly. Having huge functions and lots of global variables everywhere makes it much harder to improve and refactor your code.
Feel free to PM me with questions about how to make your code structure better. I'm very interested in the topic and will be happy to help.
P. S. If you haven't read Effective C++ and Effective Modern C++, you really should. It's a great way to improve your code considerably.
Yep, bought the Wii U BOTW version on day 1, played 80%, then took a break. (my roomate also had the some DLC on the wii U but I didn't play it yet).
Fast-forward, got my Switch (Mario + other future releases really sold me on it), and I decided to re-purchase BOTW on Switch + all DLC + the new awesome hardcover book (and also an amiibo or two. )
(The Wii U version still re-sells at a high price, sold mine on Ebay for $40.)
Now I'm going slower with this play through, (Ex. the Plateau part has many cute interaction moments w/ the old man if you don't rush getting the 3 temples and instead explore it well, felt a lot sadder for me this time around when he revealed his identity and left. )...So overall I've been finding a lot of interesting things that I either rushed past before or didn't have the skills for the first time around. Aiming to get all the temples and maybe the koroks, and I'm doing a lot of sidequests I missed + all the dlc this time. Overall, worth it and very fun I think.
**Also, I like playing on the Switch itself a lot more, overall looks slightly better (no noticeable lag and the draw distance for the background may be improved + they confirmed the sounds on the Wii U version was downgraded a lot for some reason? ). My roomate likes the portability of it, I myself like a big tv screen paired with the amazing pro controller the Switch has now. Hope this helped.
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.
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?
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.
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
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.
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.
Alright, in that case it sounds like you can benefit from 'the general advice':
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.
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 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.
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 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.
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
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.
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.
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.
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.
It depends a bit on what areas you're interested in. For interactive graphics you'll likely do OpenGL or DirectX or such.
Non real-time graphics usually means ray tracing or some variant like photon mapping where you want to produce physically correct images, with flexibility depending on your art direction e.g. Big Hero 6. With ray tracing you're essentially simulating how light interacts in the scene.
Here's some useful books/links for real time graphics:
Here's some for ray tracing:
For general math topics I also recently picked up Mathematics for 3D Game Programming and Computer Graphics which looks very good, though I haven't gone through it as thoroughly.
As mentioned already /r/GraphicsProgramming is a good subreddit, there's also /r/opengl for OpenGL questions.
TL;DR: The conflict over "power users" is due to the fundamental anonymity mismatch created by a site that creates usernames, tracks user involvement but permits no user identification or community beyond 15 characters and two scores. If you care to learn more, read on. If you don't, the following will bore the shit out of you.
I've given this a lot of thought. I've been fortunate to befriend an extremely intelligent social media guru (in the academic sense, not the SEO sense) and the reading list I've gotten off of her has been illuminating as fuck. The following theory owes its creation to the following books:
You are not a gadget
Predictably Irrational
Reality is Broken
The Starfish and the Spider
Further discussion can be found here and here. I realize it's pretty goddamn rude to front-load a conversation with a bibliography and footnotes but I want to emphasize that this is not something I treat flippantly. I have never had as much influence over the behavior of the world as I feel we all do at Reddit and the behaviors we see and experience are, in my opinion, a new social ground that deserves study. Using the 10/10 rule, I believe that public forums such as Reddit are likely to become the preeminent form of communication in the future and wrapping one's head around the foibles and failings of the medium while it still remains the domain of the early adopter is an investment that will pay off in spades going forward.
First off, the statement "everybody wants to take the idols down a notch" is indisputable truth, for varying values of "everybody." I would say that messages of support are far more likely to come in via PM and that messages of disparagement are far more likely to come in via public forum. The end result is that "take the idols down a notch" is a socially-condoned behavior while "worshipping the idols" is something that will generally get you shunned. The exception is when Reddit at large is busily worshipping you - post something that Reddit loves and people saying "I love this redditor" will get upvoted. Even then, however, the number of PMs of support you get is generally 5x the number of public accolades. The prevailing culture of Reddit is very much aligned with the (apocryphal?) Japanese proverb "The nail that sticks up will be hammered down."
The reason this attitude prevails is due to the tripartite nature of Reddit and the incongruities it causes. Reddit is, at once and simultaneously,
No one place can be all three of those things without friction.
From a "news" perspective, Reddit could be compared to, say, Gizmodo. The difference is that Gizmodo is a top-down, conventional news site where a select few insiders produce content for a sea of outsiders. The boundary is obvious there - if your name is on the article, you're a for-pay employee. The criticism heaped upon Gizmodo is entirely appropriate because they're journalists. Letters to the Editor date back to the Revolutionary War. Reddit, however, has most of the same characteristics as Gizmodo, minus the editorial wall. So whereas "yell at the name you recognize" is a tradition well-served and understood in the world of journalism, in the everyone-as-editor world of Reddit "yell at the name you recognize" tends to concentrate the insults from those who contribute the least on those who are contributing the most.
From a "video game" perspective, Reddit might as well be Farmville. We see each other's scores growing and when someone else's score grows vastly faster than ours, we're likely to presume they're cheating (particularly when the rules of the game are largely secret and passed down amongst users primarily via folklore). Reddit is also one of the least-rewarding video games ever created, as there are no multicolored sprites or triumphant marches played when a comment or submission scores well. As such, the "hipsterism" of Reddit promotes attacks on those with high karma because, after all, only nerds would spend so much time on a video game that can't even hold a candle to Pac Man. Finally, scores on Reddit are highlighted prominently and are an intrinsic part of the "game" even though the scores hold absolutely no value. Reddit puts "players" in a gold-farming frame of mind without giving them anything to spend their gold on.
Reddit falls apart the most as a "social site." Unlike standard PHPBB communities, you can click on a username and learn exactly nothing about them on Reddit. You can't even see what their top contributions have been. Reddit awards users with a "trophy" for verifying an email address - which occupies the same lofty perch as producing the top daily comment or top daily post on a site with 500,000 users. Reddit is barely removed from the 100% anonymity provided by 4chan - with the exception of the "power users." The fact that we borrowed the term from Digg (where it meant something) and use it here (where it totally doesn't) only makes matters worse, particularly when combined with the poorly-understood mechanisms of Reddit's anti-spam filters. Most Redditors presume that they get a "posting too fast" warning in any given subreddit because they lack the karma to bypass the filter. When I mention it, people are usually flabbergasted that I run into the same problem, despite having a top 20 or 30 combined karma score of all time.
And it's the anonymity mismatch that causes the biggest problem, in my estimation. Ask any redditor to name 5 reddit accounts other than his own and he'll have a hard time. Of those he remembers, dollars to donuts they'll be names that he either a) sees a lot or b) really pissed him off in a flamewar at some point. The rest of it is entirely too anonymous to remember. Probably half of p-dub's comment karma comes from people upvoting him so they could say "do your homework." Probably 3/4ths of L3mm1w1nkz's comment karma comes from his signature "PS I am a shithead." Gimli_the_dwarf, despite having a lot to say and extremely insightful posts, is going to be remembered for "And my axe." This is why novelty accounts flourish on Reddit - they're easy to recognize, easy to remember, and easy to reward.
The flip-side, of course, is they're also easy to punish. The reason Randall doesn't post as xkcd any more, if I had to guess, is that as soon as people decided that xkcd wasn't indisputably funny people jumped on him. That's why so very many of the names that were prominent on this site a year ago are now gone - the opportunities for interaction are so very rare that -
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.
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 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.
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.
Yes, there are definitely some scholars that are pursuing projects like this, but I don't think they've necessarily congealed into a proper subdiscipline. You might find some more stuff done around "histories of technology" or archiving: for example, there are some that practice it, like those at Archive.org and people like Jason Scott of Archive Team, or practice in an artistic sense, like Olia Lialina.
As far as more academic scholarship goes, I'm thinking back to a conference a couple years ago to a panel I really liked on Computer Histories (see http://web.mit.edu/comm-forum/mit7/subs/agenda.html for more details). Sandra Braman's work was really cool, and Kevin Driscoll is a classmate of mine whose work I really admire (another cool article he recently put out was a history of databases (From Punched Cards to "Big Data": A Social History of Database Populism). Nick Montfort, the moderator of that panel, has also done some cool work around video game histories, notably Racing the Beam: The Atari Video Computer System.
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/
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.
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
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.
Ok, but why should somebody work with you if you've barely done any work on your own idea? Like /u/Bastiaan-Squared mentioned, most people are more excited to work on their own ideas, which they are constantly prototyping, refining, reworking etc, than to help you sit down and decide what mechanisms might work well in whatever setting you think is cool. You're better off spending your own time hammering out some potential mechanisms you might find interesting then approaching somebody and refining what you've done.
Here are a couple books that might help you out:
/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
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 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.
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.
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.
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.
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&qid=1537819025&sr=8-3&keywords=game+design
It's all about game design, independent of coding or anything else.
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.
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 know this isn't a movie, but The Ultimate History of Video Games is a pretty great read. By this point, its age is showing a bit (it only goes up through the end of the 90's), but it covers the early history of video games really well, and includes a number of pretty great anecdotes in there.
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.
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'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.
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.
You're ignoring the immense opportunities for learning present in video games and technology. You might find this article interesting. Or this one. Or this book.
This is my field of research so I get a little stressed out when people make claims like this without thinking through what they are saying, but I hope you may reconsider your position. Also, if anyone else wants more info or good articles on this topic, I'm happy to share; it's quite fascinating.
This depends on what type of D&D you want to play. I play 4e. From my understanding of previous editions, much more of 4e happens on the table. If you have experience with tabletop games like I, and my friends, had, you should try this out. If not, it's very easy to pick up.
I'm pretty sure that Spencer is DMing a Pathfinder game in the podcast. It's definitely 3.5.
Anyway, back to the starting point. If you're interested in trying 4e, skip the starter set. It's useless. It gives you enough information to get 4 classes to level 2, and incorrectly at that. The provided adventure is boring, and you're not left with a whole lot to do after that.
If you're looking for the cheapest game possible, you'll need:
Players Handbook 1 http://www.amazon.com/Dungeons-Dragons-Players-Handbook-Roleplaying/dp/0786948671/ref=sr_1_1?s=books&ie=UTF8&qid=1381660555&sr=1-1&keywords=4e+players+handbook
Monster Manual 1 http://www.amazon.com/Dungeons-Dragons-Monster-Manual-Roleplaying/dp/0786948523/ref=sr_1_1?s=books&ie=UTF8&qid=1381660601&sr=1-1&keywords=4e+monster+manual
Core Rulebook http://www.amazon.com/Dungeons-Dragons-Dungeon-Masters-Guide/dp/0786948809/ref=pd_bxgy_b_img_y
If you want to play 4e correctly, these are the three books you need. Characters, maps, and monsters can be improvised as needed.
If you're willing to spend more, I would suggest this map:
http://www.amazon.com/Chessex-Role-Playing-Play-Mat/dp/B0015IQO2O/ref=sr_1_cc_1?s=aps&ie=UTF8&qid=1381660750&sr=1-1-catcorr&keywords=d%26d+vinyl+mat
With some wet erase markers (WET, not DRY), you can build any dungeon, castle, or moon colony you can imagine. Beyond those three books, I think this is the best investment you can make to immerse yourself and your friends into another world.
Wizards provides character sheets at the backs of some books, but there are better ones on their website for free.
https://www.wizards.com/dnd/Tool.aspx?x=dnd/4new/tool/charactersheet
Last, if you really want to make things as simple as possible, subscribe to D&D Insider.
http://www.wizards.com/dnd/tools.aspx
It's worth it for the character builder alone.
EDIT: Don't forget the dice!
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.
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.
One thing you can do to keep these things under control is to purposely limit yourself in your design. Almost any CCG in existence has some sort of underlying design principles that guide what a card can and cannot be, or what a certain faction in the game can and cannot do or be good/bad at. How strong the average creature is, versus how strong the average weapon will be. How many turns you want the game to last, what expected deck size would be and how many cards you want to draw on average per turn.
The magic color pie is an example of one such limitation. Certain colors are good at certain things and not so good at other things. In addition there are the general playstyles that Magic's core design enables such as control, aggro, etc.
There is also some base level balancing for monster cards: a monster of a given strength will typically cost X mana, whereas a monster with a lot of utility will not typically also have high attack.
When you have these core rules in place, it becomes a lot easier to design new cards and get their initial stats right. When a new monster's attack is 3 higher than the average, you already know that it's gonna have to be expensive or have some other significant drawback. You'll already know not to give abilities that are typical of green cards to a new red card unless you have a good reason to do so.
For any given game, what these limitations and guidelines are is going to be radically different, so I can't help you much there. Generally though, you want a decent level of theoretical balancing on these core systems before you even begin to think about designing any detailed cards. Getting into the details before you know how and if your core systems work is a great way to waste a ton of time. Most of all, you need to have a goal for the card you are designing. What is is intended to achieve in the game? What strategies do you want it to enable or counter? From there, and with good core systems, the card will partly design and balance itself.
---
As for "pre-balancing", there are a couple tools available.
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".
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!
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 didn't post a question, so it's difficult to know what exactly you want. If you just need to implement space partitioning with a BSP tree, read the good old BSP FAQ
If you need more general graphics background, check out:
If you have more questions, please be more specific. I might help you with more resources.
If you are planning on playing 4e with a group of non-gamers, go for the Red Box since it's relatively cheap and is designed for non-gamers. It's not the complete version of the game, it's a tutorial adventure to teach players some core concepts .
If you decide to go with the full game, you need the Players Handbook, Dungeon Master's Guide, and Monster Manual. These are three separate books. There are other volumes to each of these (for example PHB II) but you don't need them.
There's also an online subscription called D&D Insider that I've never used, but it seems like about 50% of people find it invaluable and the other 50% call it a racket.
Downsides to switching are well covered in this thread. Personally I found 4e to be so oriented towards combat that every other part of the game suffered. It felt like everything except the tactical combat module had been tacked on half-heartedly.
But this is after 20 years of playing older editions of D&D, so I may just be predisposed against the design changes they made in a way that newer players won't be. You may love it, and that's all that matters.
I think the better question though is what are your reasons for choosing D&D? Is there something about the system that makes you think you'll like it? What are you looking for? What did you like and dislike about Pathfinder? There are literally hundreds of other systems out there, you may want to look around at some of them, and I know /r/rpg loves to give recommendations if you want them to.
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
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
the core rulebook is on Amazon for ~$10 used. That is a good starting point for you guys as well. There are no starting adventures in that book, but I know that there are lots of free adventures avalible online, Here are some free adventures published by the game makers.
I've run the first adventure on that second link before for my gaming club before. It is solid.
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.
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".
Merry x-mas :)
- Setting
- Theme
System Design
Content Design
- Items
- Puzzles
- Missions
Game Writing
- Text
- Story
Level Design
- Placement of Objects and Challenges within maps
UI
- How players receive feedback and information
--
I really recommend reading that book sometime if you're interested in getting creative with game design rules..
Racing the Beam was my recommendation for best computer book of 2009. It's about how the hardware choices of the Atari 2600 shaped the mindset and culture of Atari programmers. It's the only book I know of that really explains how people hack small systems, how brilliant insights become clever code which then becomes essential knowledge for those who seek further mastery of the machine's potential.
For a great analysis of the architecture of one of the most important pieces of Big Iron ever built, check out Jim Thornton's book Design of a Computer: The Control Data 6600 (PDF). It's perfectly readable without electronics training (just skip chapter 3), and you can watch Seymour Cray invent the cutting-edge CPU technology of 1980-2000 -- in 1963.
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.
Ah yes... the positive feedback loop. There are many ways to address this. First a book recommendation: https://www.amazon.com/Game-Mechanics-Advanced-Design-Voices/dp/0321820274/
The section on feedback loops (both positive and negative) is worth it by itself.
So for our game, we have a similar challenge. It is a mini-RTS where you get resources and those resources allow you to use mechanics that can give you an advantage which can aid you in getting more resources and so forth. Additionally, we have fighters that are produced. Resources can help make more fighters, or by taking additional planets (the sources of both fighters and resources) you can create more. Hopefully this make sense.
To ensure the game doesn't have win-switch runaway leader situation, we've added a number of negative feedback loops. For example, after a battle on a planet, the player who loses the planet (and who will also end up losing the fighter/resource production) gets a "rebate" in the form of some "fighter that escaped" and "resources they took with them".
This slows down the runaway leader situation and widens what we call "the valley of struggle".
Another way we manage this is having powerful mechanics that can, if timed well, disrupt the runaway leader. One mechanic we have is "doomsday". If the aggressor sends many fighters to a planet, the defender can activate a "doomsday" on the planet which will eat lots and lots of fighters, closing the gap between the loser and the winner. By using price and cooldowns, we limit this from being abused by the leader while still allowing well timed usage by the loser to reduce the gap. We have several mechanics like this.
The final mechanism that has had the most effect is cooldowns for mechanics. This ensures that even if the leader gets a fighter/resource advantage, they can't abuse any of the mechanics to widen their gap too fast. In fact, because the cooldown can be long, it requires being very picky about when to use some of the mechanics otherwise you could leave yourself defenseless.
There are other tricks we've used such as diminishing returns on production (thanks /u/waterlimon!) so that as the leader accumulates more planets, he gets diminishing returns on the fighters/resources produced on each planet.
Finally, lots and lots of playtesting between me and the artist testing game length, tipping points. We have a replay mechanism that allows us to view all the stats of the game and the "balance of power" as we call it, an algorithm that lets us determine who is winning at any given point. We watch that balance to see if we are seeing the type of game we want... with lots of tension, some back and forth, and hopefully around the 5-10 minute mark, the tipping point is reached by one side or the other.
Hope that helps!
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.
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 basically have no game design education and have absolutely no idea on anything.
Luckily for you I have collected some resources that is the distilled essence of game design that makes a complete noob to pro game designer.
Read/watch this:
http://www.sirlin.net/article-archive/
http://www.gamasutra.com/view/news/231225/Video_Practical_Creativity__A_way_to_invent_new_kinds_of_video_games.php
http://www.gamasutra.com/view/news/233326/Video_Designing_your_game_to_offer_meaningful_choices.php
https://www.youtube.com/watch?v=AJdEqssNZ-U
http://www.shutupandsitdown.com/videos/
http://www.erasmatazz.com/library/game-design/paradigm-shift.html
Bookmark this: http://129.16.157.67:1337/mediawiki-1.22.0/index.php/Main_Page
Subscribe to this: https://www.youtube.com/channel/UCaTznQhurW5AaiYPbhEA-KA
and this:
https://www.youtube.com/channel/UCWqr2tH3dPshNhPjV5h1xRw
https://www.youtube.com/channel/UCI3GAJaOTL1BoipG41OmfyA
https://www.youtube.com/channel/UCm4JnxTxtvItQecKUc4zRhQ
Troll and read all the articles from this: http://www.gamasutra.com/category/design/
Good books on game design I recommend:
http://www.amazon.com/Game-Mechanics-Advanced-Design-Voices/dp/0321820274
http://www.amazon.com/The-Art-Game-Design-lenses/dp/0123694965
http://www.amazon.com/gp/product/1449363210/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1449363210&linkCode=as2&tag=atheoroffunfo-20
Now my personal advice as a indie game designer.
Specialize!
You have to specialize on one domain where you devour any information available.
Her are some domains I know about that you can take on as an indie on a budget.
CRPGs: Info on: http://www.rpgcodex.net/
JRPG: Look also at japanese hentai rpgs because they are some game design jewels there, RPG Maker community
Action Games and platformers : Understand game feel and juice/impact, somewhat saturated indie scene
Puzzles and board games: Do not buy into f2p as it kills your creativity
Roguelikes and survival: Saturated indie scene
Narrative: Visual Novel style games and adventure games, great if you have a good writer and artist, some overlap with JRPGs,
VN community: http://lemmasoft.renai.us/forums/index.php?sid=59e38b38f69f9e5b5c271de0843d2569 ,
http://www.renpy.org/
Server Multiplayer: Games like space station 13
A forum where you can find information on games of the above types: http://forums.tigsource.com/
Do not do 3D, without a astronomical budget you won't get far.
Congratulations! Now you are better game designer then 90% of inde developers!
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
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.
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
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.
If you are really serious about learning and wanting to play D&D, I would strongly advise getting the 4th Edition Player's Handbook. Then after that I would suggest getting the Dungeon Master's Manual.
There are a ton of places online where you can download PDF copies of the books if you don't feel like shelling out the money for it.
Once you have a copy, read it, cover to cover. If you find yourself reading through it quickly, you know you are getting into the right hobby for you.
Understand that all play groups are different. Some are more relaxed when it comes to the rules, and care more about the role-playing aspect of the game. Others are rule nazis, and make sure that the game is played to the T. You need to find the right balance for you to make the hobby interesting.
What is most important to make D&D work is to have a thoughtful Dungeon Master(DM). One that is able to control the group, have an average to above average understanding of the game, and make for a fun experience.
If you have any more questions, PM me. I live in Atlantic County, about a 45 min drive to Tom's River, but I might be able to help you out.
EDIT** This goes for everyone in this thread that are stating that they are new and want to play. Let me know and maybe I can start to organize something, I don't mind teaching new people 4E rules.
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.
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 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.
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
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.
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
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.
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.
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.
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.
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
Well in terms of social interaction gaming, I think more real-life games will be created and played in the future. I'm currently reading a great book called Reality is Broken by Jane McGonigal which goes in depth into how games are better at stimulating us than the world is and how alternate/augmented reality games will become much more popular as we start to gamify real-life.
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.)
I've always been interested in economic theory... some of my thoughts in the game design document were around having two types of economy: a global economy and a local one. I wanted this to have an effect on the player in terms of the strength of the league (i.e. how much money was coming out of TV rights, attendances, demand for the product etc). A weaker league gives team less chance of buying top quality players resulting in lesser ability to compete globally without huge investment from the player etc.
I'm not sure how to tie this into the game without making it too complicated but I did buy a book on game mechanics (http://www.amazon.com/Game-Mechanics-Advanced-Design-Voices/dp/0321820274) so I've been studying the mechanics behind some popular MMO / tycoon type games.
There's a really cool tool by the authors of the book I just linked:
http://www.jorisdormans.nl/machinations/
I've used that in the GDD to simulate a few of the sources / drains / converters in the game... balancing the game and making it enjoyable is going to be a real challenge. I'm concentrating on getting the basics of match simulation and a stable server for hundreds of connections before I start with the actual game mechanics itself but something I'm really looking forward to!
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&rlz=1C1GCEA_enIR764IR764&source=lnms&tbm=vid&sa=X&ved=0ahUKEwiHm_yz3_XZAhVn74MKHaCqDHIQ_AUICigB&biw=1366&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
I've been pimping this site out a lot http://www.tkdocs.com/ and I think it's perfect for beginners at Python.
Games generally require optimization, algorithms and experience. If you really wanted to go games I wouldn't do it with Python personally. I would either do it with JavaScript http://blogs.msdn.com/b/davrous/archive/2011/07/21/html5-gaming-animating-sprites-in-canvas-with-easeljs.aspx or even C# because those would translate directly into real world games. For learning purposes this is good http://blogs.msdn.com/b/davrous/archive/2013/06/13/tutorial-series-learning-how-to-write-a-3d-soft-engine-from-scratch-in-c-typescript-or-javascript.aspx . Another thing you can do if you want to give up on game programming for now is get a book like "3D Math Primer for Graphics and Game Development" and get a solid foundation in linear transforms, quaternions and so on while programming other things. By the time you're ready for games you will be ready for harder things.
If you've had enough of Python it might be time to get more. If you know decorators inside out, know how to browse the standard library for what you want to do new things (for example if you get told to write a web crawler you know where to look and how to get it working even if you have never done it before) and maybe know a little web dev (something like bottle.py) then you know enough to pick a second language.
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!
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.
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.
> 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.
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):
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.
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.
Based on the roadmap link posted elsewhere in the thread:
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-837-computer-graphics-fall-2012/
https://www.edx.org/course/computer-graphics-uc-san-diegox-cse167x-2
From personal knowledge, I'd also check out Udacity's course:
https://www.udacity.com/course/interactive-3d-graphics--cs291
and maybe Coursera's (personally did not care for it, but might as well list it):
https://www.coursera.org/learn/interactive-computer-graphics
As for architecture, I haven't really seen any great lectures on doing this. I'd recommend checking out the book of the same name to get a high level overview of the features larger engines consider, and perhaps check out the source of some larger engines to get the best idea.
It's not really practical. Making a full featured game engine from 'scratch' isn't easy, but it is possible.
I reccomend reading this book: Game Engine Architecture
It tells you everything about how game engines work and how to make your own. I did a good amount of it in a post-grad college program, and learned a lot, but ultimately decided to use Unity for actual development.
Unity's good. Flash with Flixel is good. Haxe with HaxeFlixel is good.
Heck, I made a match 3 game in plain old Flash years ago. Didn't even have to program or borrow an 'engine' for it, Flash did the heavy lifting.
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&qid=1487025482&sr=8-1&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&qid=1487032271&sr=8-1&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!
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
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
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.
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.
Game Mechanics is definitely helpful with understanding what the moving parts are, and it introduces a visual notation that I find useful in the planning stages.
By far the best tools to balance game mechanics is a spreadsheet and a working knowledge of math. Book on both might be helpful too.
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.
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.
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.
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
Pretty sure 4e books aren't $40 anymore.. And yeah, 4e character creation is going to probably be a PITA. I assume character creation will take a session for most games. Make pre-gens or do it individually with each player...there are solutions to this problem.
Unless CoC has massively changed since I looked at it ten years ago, there's very little freedom in character creation, skill are pretty terribly split up and so the major selections are what archetype/class am I, how do I split up my few skills I'm free to choose, and do I have a gun (a standard one from the book) or some mundane equipment like flashlights or a car or whatever. Do I have it about right? Even winnowing all your choices down in D&D 3.5, that's fewer than most characters have, even simple ones like fighters and rogues.
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.
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..."
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.
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
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.
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.
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
That's not what I meant, sorry if I came off that way. My point is, you can read all the books you want -- but if you don't supplement it with code you write, they're just concepts. Even if you're not writing code, you still should be looking at pseudocode or example code to see how it's implemented. Talking about something is easy -- programming it is hard. What people say when they say to design first, they mean to lay out your program, your APIs, and everything else ahead of time. This is part of professional software development. In order to get to that step though, you're going to have to program. You don't recognize good OO or game design by just reading a book.
Regardless, for a good OO-book, check out:
http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612
For a good book on game engine design, check out:
http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135
If you want just game design and setup, there are more than enough resources at /r/gamedev.
Also, make sure to supplement everything with code you yourself write, or else nothing will stick.