(Part 2) Top products from r/gamedev

Jump to the top 20

We found 231 product mentions on r/gamedev. We ranked the 872 resulting products by number of redditors who mentioned them. Here are the products ranked 21-40. You can also go back to the previous section.

Next page

Top comments that mention products on r/gamedev:

u/CodyDuncan1260 · 2 pointsr/gamedev

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.

u/Mr_Bennigans · 2 pointsr/gamedev

> I think if I learn how to program with an aim to work as a software developer and make games on the side, is this viable after just turning 20?


There's nothing wrong with the age of 20. I started school at 20, graduated in four years, and found work as a software engineer right out school.


What you have to figure out is how to make the best of your time left in school: should you take a class or two on programming and graduate on time, or (more dramatically) change your field of study to computer science and spend a few more years in school? That's something only you can decide. If you want to finish your architecture program and graduate in a reasonable amount of time, I can assure you that your math and physics background will be enough to get you work as a software engineer, but only if you can actually program.


Part of working as a software engineer means being able to program in multiple languages. That's because it's not really about the language, it's about the logic. All languages follow certain patterns and while syntax or wording may change, they all share ways to implement the same logic.


It also means knowing what data structures to use for what scenarios. The phrase "There's no such thing as a free lunch" comes to mind. All data structures have advantages and weaknesses and no data structure is perfect for every occasion. Know the differences, know the performance impact, and be able to speak to them. This won't just help you write better code, it will help you land a job. Interviewers love to ask questions about data structures.


As a corollary to data structures, you also need to know your algorithms. You need to know the performance impact of different ways to search and sort, traverse graphs, and find the shortest path (particularly relevant for game programming).


You said you're learning Python and that's great. Python is a great way to learn how to program. It's dynamic, it's friendly, and it has a rich library. Learn Python inside and out, then pick another language and figure out how to do the same things. C++, Java, and C# are all pretty popular in the industry, pick one of those. Once you know how to program in a few languages, you focus less on minute implementation details specific to one language and more on high level abstraction shared across multiple languages. By that point, you'll no longer be speaking in code, you'll be speaking in plain English, and that's the goal.


I don't know many good free online resources for learning languages, I learned mostly out of textbooks and lecture slides (along with lots of practice). There are some links in the sidebar to some tutorials that are worth checking out. Beyond that, I can recommend some books you may want to read.


  • Algorithms in a Nutshell - one of the best quick references on algorithms you can read
  • C# 5.0 in a Nutshell - excellent language reference, aimed more at advanced programmers, though it's comprehensive in scope, covering everything from language syntax and structure of a program to more complex tasks like threading, multiprocessing, and networking
  • Learning XNA 4.0 - a great game programming book, teaches 2D and 3D game development using Microsoft's C# and XNA framework
  • Java in a Nutshell - another great language reference
  • Starting Out with Java - introductory programming text, has end-of-chapter problems for reinforcement, a little pricey so see if you can find a used older edition
  • Starting Out with C++ - another good introductory programming text from Tony Gaddis
  • Python in a Nutshell - I can't speak to this one as I haven't read it, but I have been extremely happy with O'Reilly's "... in a Nutshell" series so I suspect it's as good as the others
  • Learn Python the Hard Way - free online book about learning Python, begins with simple examples then teaches you how to break it so you know both sides of the story, wasn't as comprehensive as I'd hoped but it taught me the basics of Python
  • Programming Interviews Exposed - sort an all-in-one book covering lots of different topics and giving an insight into what to expect for that first interview

    EDIT: I added Programming Interviews Exposed because it's a good reference for data structures, algorithms, and interview questions
u/MrBushido2318 · 20 pointsr/gamedev

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!

u/DiggyDog · 9 pointsr/gamedev

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!

u/Idoiocracy · 2 pointsr/gamedev

I generally agree with the other replies that a vanilla computer science degree is better than a game degree, but let me use the example of the University of California Santa Cruz (UCSC) game degree to offer a balanced comparison.

At UCSC, the only difference with a computer science versus games degree is one class in the senior year. The fundamentals of both degrees are identical - you take the same math, physics, and programming in the game degree as you would in the CS degree. Only in your senior year does it differ, where as a games major you do a 1 year elective working on gaming group projects using Unity. If you did vanilla CS instead, you would use that year to take something like operating systems, artificial intelligence or databases. Deciding which one is a better fit for you partly depends on your philosophy of the purpose of school:

  • Ivory tower camp - If you feel that a university is best served teaching theory and fundamentals, rather than masquerading as a trade school, then you might agree that learning operating systems or databases in a "pure" manner, without worrying about production concerns like working in a group, would be the best use of your time while you have the privilege of being in school.

  • Emphasis on practicality - If instead you concede that while theory is nice and well, the practical needs of the working world sometimes take precedence, then you might feel that the year of working on gaming projects with others and being able to point at a concrete example of something you did would be time well spent in being able to land that first job.

    You can see this difference of philosophy being played out in not just the debate over a gaming degree program, but in things like the programming language of choice for first-year students, where some schools lean toward the practical (UCSC uses Java and C++) and some toward the theoretical (MIT traditionally used Scheme and now uses Python).

    Specifically at UCSC, I would say the pros and cons are as such:

    Pros:

  • Get to study and spend class time on what is presumably your main interest - game development.

  • Dedicated time to a group project that at graduation, you can cite on your resume and be able to say, "I made that."

  • Possibly make contacts with game industry veterans through the program.

    Cons:

  • Spend a one-year class being forced to work in groups and deal with the messiness of production tasks rather than being immersed in 'pure' theory like in a more typical computer science course.

  • Slightly negative connation among the uninformed of having the words "game degree" on your resume and possibly having to defend that your fundamentals are as sound as a vanilla CS major.

    The first question you should ask yourself is whether the school you're looking at has a comprehensive undergraduate education and a good reputation, like UCSC, or if it's a specialized trade school like Fullsail or DeVry (stay away) with a bad reputation. Not all game schools are bad - both Digipen and Guildhall at SMU are notoriously challenging programs and in my experience working with a handful of their graduates, I found them to be quite competent. Allen Chou will be graduating Digipen with his first job at Naughty Dog (which was Naughty Dog's first time they've hired someone straight out of school rather than someone with industry experience, though it should be noted that Allen earned a previous bachelor's in electrical engineering before attending Digipen). And USC's game school is well known for having produced Journey developer thatgamecompany, among others.

    As for the poor working conditions known at most gaming companies - yes, in general you will work more hours for less pay in the gaming industry than you would outside it. Yes, the industry is rife with constant layoffs. It is likely you will need to move all over the country and possibly world as you chase jobs throughout your career. It's up to you to decide if working on games and with other game developers is important enough to you that it's worth that sacrifice. Many people don't find it worth it, and they are not weaker for choosing another path. It's a personal decision of how much it means to you to work on games; alternatives are arguably more sane.

    For working at the kind of companies you mentioned like Bethesda and Blizzard, you will need to be an expert at C++. Because C++ is such a large and complicated language to first tackle, I recommend learning C first. My book of choice is C Programming: A Modern Approach by KN King, which is also highly recommended in the C programming FAQ. Or if you prefer a shorter book, many people have learned from the C Programming Language by Kernighan and Ritchie.

    For learning C++, there is only one book you need to know to start with: C++ Primer by Stanley Lippman, which is also the #1 recommendation of the C++ FAQ and highly reviewed elsewhere. You do not need to worry whatsoever about C++ becoming obsolete by the time you graduate. But you do have plenty to worry about mastering the language, because there is a lot of material to cover.

    I'm a moderator at /r/TheMakingOfGames and I would recommend perusing some of the videos there that show behind the scenes of development companies (though arguably, the bright side of development). Some examples:

  • Behind the scenes of God of War 3 with the programming team

  • Since you mentioned Blizzard, read Patrick Wyatt's articles on the development of Starcraft. He was a lead programmer at Blizzard before leaving to found ArenaNet and making Guild Wars.

  • Nine examples of dirty programming hacks to fix baffling bugs is a Gamasutra article that might give a glimpse at the harried side of game development, when under pressure and lacking time.

  • Naughty Dog's lead programmer Jason Gregory talking about their interview process and culture
u/moarthenfeeling · 2 pointsr/gamedev

Hi, thank you. :)

You should learn C++ using C++ Primer by S. Lippman. (Not to be confused with C++ Primer Plus which was linked here before). Just be sure to learn modern C++, not "C with classes"! Then I recommend reading Effective C++ and Effective Modern C++ by Scott Meyers. Effective Modern C++ has some awesome examples of modern C++, but it also contains pretty hard edge-cases, so be aware of that.

The best way to learn Lua is by this book. It's very well written and I consider it to be not only the best book about Lua, but one of the best programming books ever!

Lua Users wiki is also very useful and contains lots of resources and sample code.

I also recommend checking out SFML Game Development book which is well written and contains some game programming patterns. You'll find it very useful even if you don't use SFML.

Oh, and Game Programming Patterns is a great read too.

___

Now, how much experience should you have with C++ to make games with it? That's a hard question! You should just start learning it and try making some small games with SFML or Corona. You'll see what you have to learn for yourself. :)

u/drakonite · 16 pointsr/gamedev

You may want to narrow that down a bit, but okay, here are some highlights, with amazon links to help disambiguate.

u/jhocking · -1 pointsr/gamedev

My short answer to these questions is get my book! It's a book for people who are new to Unity but already know how to program. That sounds like a perfect fit for you; you don't necessarily need to know C# before reading my book (you'll pick it up from the examples) but my book doesn't spend time explaining programming basics like what a variable is, etc.


That out of the way, to address each question separately:

> First of all, in regards to learning C# for use with Unity, how should I go about learning C#?

I would just dive into tutorials about Unity. Learning programming before looking at Unity makes sense to me, but as for the specific language, well, you'll pick up syntax as you follow along.

> Second, does Unity have some way to develop user interfaces with HTML, CSS and JS?

Not really. I did once see a library to parse HTML within Unity, but I haven't heard anything about that in years. Unity has a decent UI system built-in so I'd recommend learning that.

> Third, does Unity have any extensions or plugins to make it so you can use Lua rather than C#? Probably not but I figured it was worth asking considering I'm good with Lua.

Not that I know of. It really won't be much of a challenge for you to pickup C# if you're already good at programming in a different language.

> Last but not least, does Unity support custom shaders? Also, what are some good resources to learn how to do shader programming?

Yes it does. My book doesn't go over shader programming, but Makin' Stuff Look Good is a good video series for this, and Alan Zucconi writes text tutorials about shader programming in Unity.

u/k_Reign · 1 pointr/gamedev

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?

u/joeswindell · 5 pointsr/gamedev

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.

u/nosejapones · 6 pointsr/gamedev

/u/AppStoreVeteran gave you a great reply, but I just wanted to add in another perspective:

If you're interested in a more traditional approach to learning art, you can get to the point where you're making decent (not mind-blowing, but functional) illustrations with just a few months of serious effort. If you treat it like a semester-long course and put in the work, you can reach art student levels in a little under half a year.

  1. Pick up either this or this book (I recommend the first one if you lack confidence/motivation, but the second one is great too; in fact, pick up both if you can).
  2. Set aside 30-60 minutes every day to practice (using the book[s] as a guide).
  3. Practice faithfully and with legitimate effort.

    Art is learning just like programming, playing an instrument, or public speaking, so, if you're even vaguely interested in it, I highly recommend you give it a serious try.
u/Electrical_Circuit · 7 pointsr/gamedev

I play with C++ as a hobby. I'm very far from being even good at programming in this language, but I'll tell you what I've done so far.

I first read this book: Programming: Principles and Practice Using C++ (2nd Edition). This book is written by the very man who developed C++.

Now, I know it looks daunting since that book has about 1200 pages, but a lot of it can be skipped if it doesn't pertain to what you want to learn.

After reading that book and making a couple small programs, I decided that I would give SDL2 a try. SDL2 is a 2d graphics library that includes window management. I did this first since it has a lot of documentation on how to use the library, and you can usually google something if you have problems. SDL2 can also be used in conjunction with OpenGL, so it is worth at least getting familiar with the library.

After all of that (at this point, for me, it had been about 2 months of off and on practice), I finally googled how to learn OpenGL. I followed some tutorials and tried to make some programs, but I learned that OpenGL was way over my head. I was able to get a few small programs running. There was one program I made that procedurally generated terrain, but I learned that OpenGL really isn't necessary if you want to JUST make a game.

When using OpenGL there is a lot of code that you will use over and over again, resulting in you sort of developing your own makeshift scene manager. You'll also want to learn how to program shaders, I haven't even done this yet, but this doesn't only apply to OpenGL. You'll probably want to learn how to program shaders no matter what.

So, after dealing with OpenGL and its steep learning curve I decided to give some rendering libraries a try, and this has been the best course for me to take. Here's a list of rendering libraries. I use Irrlicht because it is relatively lightweight, easy to use, and setup. Irrlicht isn't really updated too often so you won't get the latest features.

If you really want to learn OpenGL then this is the tutorial I followed: Link. It even has information on how to use SDL2 with OpenGL. This will get you started at least.

As for the IDE I use, Netbeans. This is mainly for Java, but it works well for C++. There are all kinds of IDEs you can use, just search around Reddit for other people's opinions of what they like.

I hope I helped! Ask me any questions you have and I'll try to answer them, just note, I'm not even close to a professional developer. I just like to program and play with graphics!

EDIT: Oh yeah, if this makes any difference to you, I did all of this on a Linux distro.

u/fadedthought · 1 pointr/gamedev

I hope these are what you're looking for.

If I find any additional stuff, I'll edit the post - also if anyone else finds stuff similar to what I linked, feel free to drop info, i'd love to read more of this stuff!

Obligatory Subreddit Plug

/r/TheMakingOfGames - A subreddit featuring a lot of behind the scenes stuff.

Books

Masters of Doom is a book that follows the lives of John Carmack and John Romero, the creation of what became iD Software, and some of the most memorable games of our generation. (Daikatana's failure, Doom, The super mario clone that eventually became Commander Keen, Quake, etc.)

Jacked is a book that follows the creation of what became a memorable game studio (Rockstar Games) and one of the most memorable franchises of our lifetimes. (Grand Theft Auto)

Stay Awhile and Listen is a book that tells the story of the company known as Blizzard and the difficulty of creating Warcraft as well as the fight to create Diablo.

[Hourences] (http://www.hourences.com/product/the-hows-and-whys-of-the-games-industry/) is a book written by someone who's worked freelance / contract for quite some time now. The basic questions this book will attempt to answer are: Why would one want to work in the games industry? Or why not? And, if the decision has already been made, then: What would one look for or expect? How can one pick a good mod (modification) team or a development studio that will fit one’s personality and meet one’s expectations?

Minecraft: The Story of Notch A story about Notch before, during, and after the rise of Minecraft - talks about his family, his life, etc.

Rise of the Dungeon Master the story of Gary Gygax, co-creator of Dungeons & Dragons, one of the most influential games ever made. Like the game itself, the narrative casts the reader into the adventure from a first person point of view, taking on the roles of the different characters in the story.

Documentaries / Movies

Double Fine Adventure - A game following the conception and delivery of what would become "Broken Age"

Indie Game: The Movie - Follows the trials and tribulations of indie developers trying to "make it big" and/or "continue to succeed".

Minecraft: The Story of Mojang - Follows how Minecraft was formed, Notch, and the impact the game has made on generations.

Amneisa Fortnight 2012 A documentary that follows various groups doing a "game jam" that eventually became published games.

[Amneisa Fornight 2014] (https://www.youtube.com/playlist?list=PLIhLvue17Sd7Y5qXNqV1wDPtdNPjZ-tw0) Same as the 2012, just a documentary following the game jam.

GDC Post Mortems A good variety of games, the ups and downs, from indie to AAA.

u/miguez · 2 pointsr/gamedev

I went trough a really long phase of this. Not saying this will work for you, but for me what snapped me out and allowed me to set my own path was heavy doses of proper, formal game design.

It took forever for me to discover that's what I needed. But the structure and the fact that it forced me to think through every aspect of a game idea before any line of code was written made me realize I could do it. It showed me the individual steps, it compartmentalized it so that I could eat the elephant one bite at a time.

Plus, it was a LOT easier to stay motivated, because I had a pretty good idea of the big picture, so it was easy to track overall progress and distance from the finish line.

Finally, with the help of Code Complete: A Practical Handbook of Software Construction, I'm now quite proud of the code I put out, which is another motivator.

u/stormblaast · 1 pointr/gamedev

The codebase in my current project (OpenGL, C++) compiles and runs on Windows 7, Linux, Apple OS X and iOS. Use the boost libraries quite a lot, amongst other things to abstract many platform-specific details such as threads. There are also a lot of other useful libraries in boost (some which I use quite a bit are bind, function, string algorithms, regex, shared pointers, etc). Couldn't achieve this with Obj-C. Don't really use the math libraries in boost - there are libraries that are more suitable for linear algebra required in games, such as GLM. GLM is excellent aswell. If you are interested in setting up a cross platform codebase like this, I can warmly recommend the books iPhone 3D Programming and OpenGL Superbible 5th edition. Both these books are GREAT! The author of iPhone 3D programming doesn't seem to like Obj-C too much, so he jumps to C++ the first chance he gets. So don't get these books if you want to learn Obj-C.

u/InvisibleMan5 · 9 pointsr/gamedev

I highly recommend Real-Time Collision Detection.

This next book might not apply to your field directly, but I believe it is a good idea to be at the very least aware of what it discusses, and it is a very excellent book on its subject: The Art of Game Design: A Book of Lenses

I recommend this book as more of a reference than a tutorial; it will allow you to quickly brush up on those areas of math and physics which you will need while writing (or perhaps working with) a physics engine. I don't recommend attempting to learn the subjects through this book alone though. Game Physics

Reading 3D Math primer for Graphics and Game Development is how I learned linear algebra, although I plan on studying the subject from a textbook when I get the opportunity. I keep the book close for easy reference of the math related to 3D rendering (such as the projection and view matrices), although if you get this book you will want to read the errata document on its website. There may be better books to teach this stuff now, so please don't jump on it too hastily.

A couple books I do not own, but plan to correct that as soon as I can:
Game Physics Pearls and Real-Time Shadows

If I think of any others, I will edit this comment.

u/ps_doge · 78 pointsr/gamedev

Wolfenstein 3D was written mostly in C, with some assembly, presumably hacks to make the game run faster.

You should read Masters of Doom, it gives a very non-technical(but technical) perspective of how some of these early 3d shooters (wolfenstein 3d, doom, quake) were made.

These guys were revered not just for the games they created, but the ways they could seemingly crush and optimize code to be as efficient as humanly possible. For example, Carmack popularized a use of the Fast inverse square root function as one of the ways to quickly render and maximize performance of lights and shadows across 3d models. One story from the book I mentioned recounts how he was able to recreate a fast, efficient version of Super Mario Bros on PC. This revolutionized side scrolling graphics on PC, because it basically didn't exist in a form fast or smooth enough to make game development viable until that point.

P.S. If you're really interested in this stuff, instead of a "quick google", you should maybe try a "slow google". Tortoises vs. hares. That kind of thing. :P

u/Nuclear-Cheese · 2 pointsr/gamedev

While Design Patterns is the original book, I feel most people are better suited to getting books that were published later that make the first Design Patterns more digestable. DP is a good reference to have on the bookshelf for any software developer but I feel if you're new to Design Patterns:

A. There are better free online sources for the raw Design Patterns in the GoF book like this website

B. There are better books out there for explaining Design Patterns in the GoF book to newbies like Head First Design Patterns

u/distractedagain · 1 pointr/gamedev

A couple of things in response to you and others.

First of all OpenGL has excellent documentation. The specification is detailed and complete for one though I admit, probably no one should start with that.

I own the following 2 books which are excellent and the first has been out for over a year and you can download the code for both.

http://www.amazon.com/OpenGL-SuperBible-Comprehensive-Tutorial-Reference/dp/0321712617/ref=sr_1_2?ie=UTF8&qid=1319148333&sr=8-2

http://www.amazon.com/OpenGL-4-0-Shading-Language-Cookbook/dp/1849514763/ref=sr_1_1?s=books&ie=UTF8&qid=1319148364&sr=1-1


I started from no knowledge of OpenGL and using that first book I've learned the majority of the API. I bought it and used it for my upper division graphics class while everyone else was using OpenGL 1.1 and the professor didn't mind as long as I did the assignments. I've rewritten math and some of the helper code that comes with it and I use my own classes to wrap the VABO's (ie one glGenVertexArrays per mesh). It's not hard. I've also taken and modified some of the code from the second book which I just recently purchased.

Finally the new orange book will be coming out soon if the blue book isn't enough for you:
http://www.amazon.com/OpenGL-Programming-Guide-Official-Learning/dp/0321773039/ref=sr_1_3?s=books&ie=UTF8&qid=1319148522&sr=1-3


Also I think people should start with the Blue book instead of 4.0/4.1/4.2 stuff so they'll be able to use the new Core API (no deprecated cruft) while still supporting 3+ year old graphics cards. ie don't use subroutines or the 2 new tessellation shader stages but you can still use the geometry shader etc. Learn that after so if you choose to you can knowingly limit your audience.

Finally I have a question for you. Why do you disable the attribute after drawing? I enable the appropriate attributes for every VBO I create (wrapped in a class function) and I never disable any. I draw things with multiple shaders, some with position, normal, texture coordinates and some with only position etc. and it's never caused a problem. I've never seen sample code that disables an attribute. The documentation (3.3) for glEnableVertexAttribArray() doesn't say that it only applies to the currently bound VABO.

Wait a second, I didn't realize that you're just using the "global" scope buffer objects and not even using VABO's. They make it much easier.

Also the new API makes it easier to understand what's going on under the hood. I started a software renderer and the farther I got the more I appreciated why they did/do things the way they do in 3.3/4.x . I think I'll end up just implementing a proper subset of the API as a software renderer (with function shaders instead of compiled GLSL of course).





u/serados · 3 pointsr/gamedev

Are you more interested in making a game, or the tech behind games?

Game Programming Patterns is a great reference when you have problems to solve or a system to design. It's a relatively light and easy read and definitely very helpful.

Game Engine Architecture gives a broad view of technologies behind a game but it doesn't actually go into the nuts and bolts on how to develop one. I recommend it as a way to see how things work, and a gateway to learning about the different technical specializations in a game engine. The reference list is very useful for further study.

Neither of them are of much help when it comes to using Unreal or Unity though. I've actually found that "learn to make game with engine X" books serve as a guided walkthrough of engine features and workflows and give you a solid base on which to continue exploring the engine. I've also found that working through a book has a much lower mental barrier than searching for tutorials on the Internet, since all the info is available on hand and (hopefully) presented in an easy-to-follow manner.

Start with the extensive tutorials Unreal and Unity offer on their official websites. If you find those hard to follow, or when you're done and think you need more guidance, just hit Amazon and look for books like this which are relatively well-reviewed.

u/karilex · 1 pointr/gamedev

First of all a short background of my past experiences.
I'm a fairly experienced programmer I've mostly dealt with stuff that is closer to the hardware (kernel/networking dev). Hence I have a good amount of experience with C and C++.

I've also got a good amount of knowledge in the field of mathematics (currently reading up on functional analysis and galois theory). So any maths prerequisites shouldn't be an issue.

I also know absolutely nothing about computer graphics, currently have a particularly poor knowledge of UX, have never created a game before, and know much less about programming in Windows than Linux (I have at most a vague idea of what a COM object is).

I'm interested in writing a game since I want to pick up gamedev as a hobby. I don't really care what type of game I end up writing since I see this project as being more of a learning experience than a fully fledged game. I'm also taking this project as an occasion to get more comfortable programming in Windows. Before I start coding I've got a couple of questions for the people of /r/gamedev since I don't want to pick up a whole bunch of negative habits or bite off more than I can chew and get discouraged.

  • What would be an adequate complexity for my first game? Should it definitely not be 3D? Would even a simple platformer be too complex?

  • I really like the idea of creating a game "from scratch" so I've started screwing around with directX and reading this book. However, I've come to realize that while this might teach me a lot about computer graphics, I won't actually be learning about game design concepts any time soon. What would be a good C++ library to get started on? I've heard mentions of SDL and allegro for example. Ideally I'd like something that I will actually use later on too.

  • What would be a good resource to learn said library?

  • A lot of the tutorials and books I've been looking at have been focused on how to get specific aspects of game programming done. For example, how to draw things on the screen and animate them using directX. At the other end of the spectrum there are resources that go into much more abstract concepts like what makes a game fun but assume a non-technical audience (e.g. extra credits). However I'm yet to find something focusing on the big picture at the programming level. How the code should be architectured (I imagine even simple 2d games go beyond having a whole bunch of code in one big while loop), best practices, common pitfalls, etc... Are there any resources I could look into that would give me the bigger picture of game development?

  • As mentioned above I am terrible when it comes to UX design since I haven't really worked on anything significant that has a GUI, other than for web apps. I'm working on improving that skill in a general sense but I wouldn't mind a few pointers that apply to games specifically. Are there any resources that would give me tips on how to make a game that looks and feels good.
u/Highfive_Machine · 6 pointsr/gamedev

Pixel animation is a whole beast of its own but if you want to have a serious foundation for animating (without taking classes) this book is the best there is. The Animator's Survival Kit teaches everything there is to know about 2d animation and how to do it right. Lots of great examples of good and bad and why things work.

Interpolating between animation loops is a neat idea. Sounds tedious though. I'm sure that would require some serious thought on the programming/scripting side as well. High five!

u/mysticreddit · 5 pointsr/gamedev

Every game programmer should have at least one of these books:

  • Mathematics for 3D Game Programming & Computer Graphics by Eric Lengyel
  • Game Physics by David Eberly
  • Real Time Collision Detection by Christer Ericson

    I own all 3. What I love about them is that they are some of the best ones around written by programmers to understand math in a clear and concise fashion; they are not written by some mathematician who loves theory and likes to hand-wave the worries about "implementation details."

    To help provide direction I would recommend these exercises to start; Work on (re) deriving the formulas (from easiest to hardest):

  • Work out how to reflect a vector
  • Derive the formula for how to calculate a 2D perpendicular vector
  • Work out the formula for how to project a vector A onto B.
  • Study how the dot product is used in lighting.
  • Derive the translation, scaling, and rotation 3x3 and 4x4 matrices.
u/Dameon_ · 0 pointsr/gamedev

If you really want to be a programmer, start by learning C. It'll teach you to understand a lot of the behind-the-scenes stuff that C# takes care of for you, like memory allocations. Then, proceed to C#, but outside of Unity. Start by building a console application, then play with Windows Forms applications, and then, finally, begin with C# in Unity3D. Because you've learned how to use the language outside of the framework you're entering into, you'll be ready to incorporate the framework without being distracted by learning both at once, and you'll understand how to build a program without being misled by the poor default coding in Unity and poor examples.

Along the way, study the different design patterns, and read books that talk about how to build the framework of your program. Take every single program you create, and keep a copy of the code, and some screenshots and a short description. This is your portfolio. I made the mistake of letting all my code go to the wayside over the years.

Do this intensively for about the next 4 years, and you should be a competent programmer with a real shot at getting some real work.

I'd highly recommend hopping on Edx.org and checking out CS50, which is a good introductory-level computer science class from Yale and Harvard. By the time you're done with it, you will have learned how to create a basic program.

If you can afford it, I'd get a copy of The Pragmatic Programmer (https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X), which will teach you some great mental tools for programming that you won't get out of any other book.

u/ryhex · 2 pointsr/gamedev

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.

u/BluShine · 1 pointr/gamedev

Personally, I'm more of a learn-by-doing person. I would suggest looking for some local art classes. Color theory sounds like it would be the most useful thing for you.

If you do end up buying a book, try to find one that has lots of exercises, and basically treat it like a class. Don't just read all the way to the end of the book in one sitting. Read a chapter, do the exercises from the chapter, and then wait a day or two before you move on to the next chapter.

The book Drawing On The Right Side Of The Brain is a good example of what you should look for. It's obviously tempting to say "I don't need to know about drawing!" when you work primarily digitally, but learning drawing really teaches you a lot about the fundamentals: perspective, composition, light and shadow, etc. To re-use my musician analogy, pretty much all composers start by learning to play an instrument (usually piano) before they start writing music. You don't need to be an expert, but it's very important to understand the fundamentals.

Oh, also apparently the same author has a book on color theory, but I haven't personally read it. Might be worth a try.

u/kylerk · 2 pointsr/gamedev

Playtest your game with a wide variety of people. You need to find out if people actually enjoy it. And you need to make sure that the feedback people are giving you isn't just them being nice. People should want to play without you asking them to. If it is not good yet, iterate, or start something new.

If you have a game that is genuinely good, other good things will follow. Otherwise you are in for a never ending up hill battle.

Other than that, I'd suggest finding 1 or 2 partners to actually start a game company with. They need to be equally or more competent than yourself. Do game jams with them to test if the team works well together.

And read this book https://www.amazon.ca/Game-Feel-Designers-Virtual-Sensation/dp/0123743281

u/thatbooisaspy · 2 pointsr/gamedev

This is where refining google searches and just finding information would shine, and this is a necessary skill when entering game engine development because trust me, some information is near impossible to find, especially with OpenGL.

There is a book everyone recommends reading, personally I haven't but it's called "3D Game Engine Design" and "3D Game Engine Architecture". I can't vouch for these though, but i've made it without them, it's your choice.

There's also tons of information online that you can use to build a engine (specific parts like timing) but not necessarily a monolithic tutorial. For example, there is a book online called "Game Programming Patterns" that I found useful for someone else's insight on how things like input is handled. Again, i'm not going to post all the resources you want here because this same question has been answered before.

If you don't find that the tutorials or resources linked here or found yourself enough, there are hundreds of game engines, or games that are open source (or at least have source available) that is a treasure trove of design patterns, bad or not. An example would be id Software's Doom 3.

I know you're looking for something specifically OpenGL, but really despite how old OpenGL's design is at the end of the day it's just a graphics API. You take data, and you process it and display it at the window, every graphics API does this. I'm guessing you are searching for things like "OpenGL game engine design" but it's not necessary and may help your search effort a bit.

At the end of the day, and at least try. If I don't know how to tackle a problem, I attempt to solve the problem with usually the worst way possible then improve and improve until it's at least presentable. No one thought of a perfect engine design, and ideas are constantly improved.

u/Petrak · 1 pointr/gamedev

Honestly, an external program probably won't help all that much if you don't have a decent understanding of the principles behind animation. It's pretty technical for what's a generally creative field. It's complicated and messy and about finding a good halfway point between what's technically correct and what feels right. Technically correct animation can still come across as really lifeless.

Spriter and tools like it CAN help if you understand the limitations of rigged animation, but it's not going to make your animation better, per se, it just means that you'll fail quicker, and that's okay! It's VERY easy to have animation that feels floaty when you're having a computer extrapolate your animation points.

Basically the only way to get decent at animation is practice. Pick up a copy of The Animator's Survival Kit

This is a pretty decent overview of the 12 animation principles.

Do you have an example of what you've done so far?

u/DaedricChariots · 6 pointsr/gamedev

Alternative approach would be learning to draw. Contrary to common belief, it is actually a learnable skill. You won't be making Mona Lisa in a few months, because as with everything it takes practice, but you can shrink your restrictions and get a better understanding of what you can and cannot do.

I would recommend books and youtube video series for learning, few examples:

http://www.amazon.com/Drawing-Right-Side-Brain-Definitive/dp/1585429201

https://www.drawspace.com/lessons (used to be all free, now might require free account or a paid sub I don't know)

http://www.ctrlpaint.com/library/

If you follow the first book along, I can speak from personal experience that not only you will get a better understanding, but you will also actually learn to draw (this is coming from a guy that barely could draw stick people). You just need to stick to it and follow it to the letter.

u/Exce · 2 pointsr/gamedev

The AppHub tutorials are very helpful. As many suggest, starting simple is usually best. I probably should have stuck to a single screen game for my first try but instead I spent a lot of time learning how to use a third party library to help be import a level.

http://create.msdn.com/en-US/


Also, if you are looking for a book, I just got this book as suggested by many and its great.
http://www.amazon.com/Learning-XNA-4-0-Development-Windows/dp/1449394620

u/gabryelx · 1 pointr/gamedev

I'm basically in the same boat as you. I recently got Killer Game Programming and am slowly working through it. It extends upon what most people would know from normal java concepts, so it's a little advanced for me but it's making more sense as time goes on.

Also there's JMonkey which is a java based engine, so it might be good for a top down game like that. I'm still experimenting with that myself but there are some helpful tutorials there too.

Curious to hear of more suggestions myself though

u/Asyx · 1 pointr/gamedev

Superbible

This should be really good and the most important of the following books. I ordered it on the 25th and it comes tomorrow. It is more like a tutorial or a guide than just a reference.

Official Reference

This is more a reference as far as I know. This is the official book so I think that you'll find more deep informations in this book. The Superbible could contain some nice tricks as well.

Shading language!

For the shading language. Has a few pictures in it so it could be good for some shaders.

I got these book from a guy on IRC. He said he wrote some driver stuff for Apple and made the planet and asteroids demo on the WWDC. I don't know if I can believe him but I felt like he is a clever OpenGL guy and the whole IRC channel said so as well.

BTW: Don't buy OpenGL 4.x stuff. Apple hasn't even implemented OpenGL 3 completely.

u/drelidan · 1 pointr/gamedev

I can't personally recommend any of these, but just looking at Amazon yielded a few interesting prospects. You're probably beyond the basics in most of these books - but they all target slightly different things, so you'll end up gaining useful knowledge from any of them.

https://smile.amazon.com/Unity-Proficiency-Foundations-step-step/dp/1518699898/

https://smile.amazon.com/Unity-Learning-Developing-Greg-Lukosek-ebook/dp/B01LD8K5DE/

https://smile.amazon.com/Unity-Action-Multiplatform-Game-Development/dp/161729232X/


(search link: https://smile.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Dstripbooks&field-keywords=unity&rh=n%3A283155%2Ck%3Aunity)

u/seigneur101 · 2 pointsr/gamedev

Oh yes they are. The last one I had (the one that passed in April) was by far the best cat I've had.

I looked at all the engines available, and I decided I would use Unity. I used to do Java, but never did any C#, but when I started I'd read some C# scripts and they were basically the same as in Java, so I figured I could learn it.

I read one for Unity, and one for C#.

Here are the links to the books I've read (they're from amazon.ca because I'm a frog/canuck):

https://www.amazon.ca/dp/161729232X
https://www.amazon.ca/dp/0985580127

I've also changed jobs in October, a job in which I'll do programming. So I've read other books in the past few months pertaining to development in general, not just games. (Long story short: I've studied actuarial sciences, always have had a keen interest in IT, and I got hired at a consulting firm where they hire actuaries to do some of their IT development).

I tried to learn Gimp and Blender, but I can't seem to transform into an artist overnight lol :P

u/Sanctumed · 2 pointsr/gamedev

From what you wrote in your post, it seems that you are interested in the actual nitty gritty relating to graphics. For that, Game Engine Architecture is a much more suitable book compared to Game Coding Complete. However, if you are really interested in graphics and stuff like DirectX, I'd highly recommend getting a book like Introduction to 3D Game Programming with DirectX 11: https://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228

I personally read the DirectX 12 book, but for newbies to graphics programming, DirectX 11 is much much easier to grasp. There are similar books for OpenGL, but imo you'd be better off learning DirectX 11 because it's a lot more modern.

u/ValentinoZ · 4 pointsr/gamedev

-2- A lot of early 3d animators would do tweens. Nowadays most people use blends. More often than not you have someone who is traditionally trained and will create very highly defined keyframe animation that works well without either(Like WoW). In a few test audiences I've shown games too, not one person noticed the difference between any of them. For theory behind animation, I think a good book is the "animator's survival kit" Amazon link here. Nearly everything it talks about can be brought into 3d, and it only makes 3d animation look better.

-3- webGL is too early to be useful. It's like flash 1.0, ignore it for now like you did then. Unless of course you want to make a career on building tools for other people.

u/savagehill · 1 pointr/gamedev

A fun entertainment read is Masters of Doom about the early days of Id pushing the limits on PC gaming.

I don't know what his contraints are, but if he wants to work on games & game design skills without being able to access a computer, but can use art supplies, then you could get him some blank playing cards and some thin-point sharpie markers. I found those were pretty solid for just sketching up random cards on, and can easily be used to whip up card-game prototypes.

Card games aren't video games, but some of the skills are transferable I bet.

u/nazbee · 2 pointsr/gamedev

Youre not wrong, art is like anything else in life. You get out what you put in, and it helps to have a roadmap.

If youre stuck- Try this book:

https://www.amazon.com/Drawing-Right-Side-Brain-Definitive/dp/1585429201/

It'll teach you techniques to see what youre looking at. Once youve understood that, art will seem less mystical.

Unfortunately, it wont turn you into a good artist. Next, start building up your foundation skills. Figure drawing from life by combining simple geometric shapes. Perspective. Color theory. Analyze and imitate good artists. Develop your eye with deliberate practice.

Make_lots_and_lots of game art, then look back every couple months and analyze what you need to improve.

Takes years but theres no end point so dont get hung up on being proficient. Just focus on getting better than you were yesterday. Every great artist ive known have had one similarity. They all made tons of art, ALL THE TIME for at least one period of their lives.

u/pickledseacat · 3 pointsr/gamedev

I think everyone can art, just a matter of unlocking it. Inkscape helped me a lot (though it feels like cheating ><). Also, Drawing on the Right Side of the Brain.

That being said, have you tried browsing around Open Game Art ? Lots of stuff there, but it will take a bit of exploring. Kenny does a lot, but that's a very specific style.

This GameDev Pocket Knife thread also has a couple other resources that might be helpful.

As an example, My Only Friend the End uses open licensed art (I'm pretty sure), though I can't remember where from.

u/ketura · 2 pointsr/gamedev

Game Design by Bob Bates covers a bird's-eye view of general game theory and the process of game development from beginning to end. It's very "readable" and gives you context to help you understand how your development process can help aid your particular design paradigm that you decide upon. If I recall correctly, it also goes over a lot of the different type of design documents that are often used in the industry.

Depending on how much textbook you can stomach, Software Engineering for Game Developers by John Flynt and Omar Salem is an interesting take on the whole game design angle by delving entirely into the source code development. It follows an actual game created by the authors and the entire process used from beginning to end in designing the engine. The game itself was shitty, but the code was immaculate and the process certainly gave me a lot to mull over and cherry pick for my own projects. Be warned, however, this book is as dry as a road trip in the Sahara and twice as long.

Besides these two, I can also definitely recommend Level Up! and The Art of Game Design: A Book of Lenses as previously recommended elsewhere in this topic.

u/thwoomp · 3 pointsr/gamedev

If you're brand new to Unity and learn well from books, I would recommend Unity in Action.
It covers 3rd person controllers, camera, inventory, and a bit more. Would likely help you to get started.

Otherwise, /r/Unity3D is a good subreddit you may find useful.

u/Redz0ne · 12 pointsr/gamedev

I'm going to give you some advice... Advice that every aspiring artist needs to hear.

For the first while you're going to suck at it. But if you keep at it, never accept defeat and keep pushing yourself you'll start getting good at it.

And art isn't a talent that comes naturally to some and not at all to others... Like any skill it can be learned and you can train yourself. So, if you face anyone getting up in your face about how you should stop or whatever, just tell them to eat a bag of dicks and shut the fuck up. (besides, it's not like they came out of their mother's womb with a full set of copics and a tablet... They had to learn just like everyone else.)

I don't know if this is really what you wanted to hear since it seems you are hoping more for concrete examples to learn from... But it's all I can really offer that hasn't been said yet.

So, good on you for wanting to expand your skills and best wishes!

EDIT: If you decide that you want to pursue this a little deeper than for a couple projects then I'm going to suggest that you look for and pick up a copy of "Drawing on the right side of the brain." ( Amazon Link to book. I am not affiliated, it's just the first amazon result I found. ) It's a phenomenal book that will really give you the tools you'll need to become an artist that a lot of those "how to draw" books don't cover. Things like learning how to actually see what it is you're drawing, how to draw what you see (and not what you think "ought to be there.") and how to actually understand on a deeper level the process involved in drawing/sketching/etc. which should really give you a leg-up in your pursuit.

u/badlogicgames · 11 pointsr/gamedev

Shameless plug: if you want to dive into mobile game dev, and have zero game dev experience, but know how to code in Java, you can give my book "Beginning Android Games, 2nd edition" a try.

I'm sure you can find a "backup-copy" on the net if you can't cough up the money for it. If you have the money, you can feel super special, as that keeps up our libgdx build servers :D

u/dsuse15 · 1 pointr/gamedev

This has always been my favorite book on the subject:

Essential Mathematics for Games & Interactive Applications: A Programmers Guide

It explains in great detail the how, why and when of most mathematical concepts as they relate to gaming: core concepts, rendering, physics, lighting, shading, animation, etc. It comes with examples and code. It's awesome.

u/jamesman135 · 1 pointr/gamedev

I'm currently working on my first game, and got this book and I cannot recommend it enough. It has a full template and example of a GDD and walks you through how to do it, and what you need to consider. Don't worry you don't need to buy it, I just flicked through the preview copy amazon puts online and it's available, obviously a few pages are missing here and there, but it gives you a good idea, it starts at page 68. Give it a quick read, I hope it helps!

http://www.amazon.co.uk/Level-Up-Guide-Great-Design/dp/047068867X

u/S1CKLY · 1 pointr/gamedev

This is the book I recommend for everyone. It doesn't have practise questions, but I still think you should pick it up (perhaps one of those peer-sharing things I've been hearing so much about ;) ). It's usefulness is damn near endless for beginners/hobbyists.

Edit: Amazon is recommending Game Engine Architecture to go along with it, which is another book that I own. It's not the greatest book in existence on the subject but it does the job fairly well and, again, is aimed at beginners and hobbyists. If you're headed in that direction it may be helpful, but I personally don't recommend it. Just thought I'd add my two cents :)

u/HiroP713 · 2 pointsr/gamedev

I'm a big fan of http://www.amazon.com/Game-Physics-David-H-Eberly/dp/0123749034/ref=pd_sim_b_3

I also have physics for game developers but the Eberly book is superior. How's your physics knowledge already? Do you already have a base of knowledge that you're looking to apply to games or are you pretty much starting from scratch?

u/aroymart · 2 pointsr/gamedev

Level up!: The Guide to Great Video Game Design I see this in B&N every time I go there but i never have money to buy it, I've looked through it and it looks pretty nice.

u/empyrealhell · 1 pointr/gamedev

As an alternative, I own this book. While it's a bit heavy on the math at times, and the concepts are pretty advanced, it's a solid book. if you have a basic understanding of physics and a good background in math, it's a fantastic reference.

As for writing a physics engine from it, I haven't tried, but it covers the bases pretty well. I used it to write a very simple 2d platformer with any-angle collisions with arbitrary polygons and circles. Nothing fancy like fluid dynamics or variable density and elasticity, but it was a boon getting the rigid body mechanics set up, and I only touched probably the first couple chapters.

u/DutchmanDavid · 2 pointsr/gamedev

Read books. It might be boring, but a lot more informational than watching a youtube video.

If you already know how to program in another (preferably OOP) language there's The C++ Programming Language or C++ Primer if you want to learn C++11 (not to be confused with C++ Primer Plus, which is a different book 'series')

If you don't know how to program and you want to learn C++ for game development there's Beginning C++ Game Programming, which starts at the beginning (variables are one of the first things explained). After that book you should read up Introduction to Algorithms to make sure you're not writing horrible inefficient programs. Then there's Design Patterns: Elements of Reusable Object-Oriented Software to teach you more about certain patterns used in programs design (needed when using Ogre3D for example. Ogre3D was 90% magic to me until I read about Design Patterns. :p As alternative to DP:EoROOS there's Head First Design Patterns, but it's Java-centric which is a whole other beast than C++.

After those books there's this Stackoverflow thread. Read the first answer (the gigantic list of books). The thread used to be a ton of comments (with the most votes comments on top), but all anwers got copied to the first comment, so it's all sorted on votes. Code Complete (2nd edition) was the most upvoted one, The Pragmatic Programmer was the 2nd most upvoted one, etc.

Then there's this Stackoverflow thread, which is more C++ centric.

I hope this helps :)

u/shr0wm · 2 pointsr/gamedev

Here you go:

> Calculus is the foundation for modern math. Always a good thing to have.

> Linear Algebra is the foundation for 3d mathematics in games. Things such as perspective projection, arbitrary rotation, and more exotic things such as quaternions come around here.

> Essential Math for Games is a most excellent book that, after having built your mathematical foundation through the previous two books, provides you pretty much everything you need to know about making a 3d renderer, which is probably one of the most educational experiences that you can undergo in game development.

u/JeffersonSales · 2 pointsr/gamedev

There is book written by the creator of the C++ for people who are learning how to code: https://www.amazon.com/dp/0321992784/?tag=stackoverfl08-20

Other than that, there are the r/learnprogramming sub, the http://cppreference.com where you can learn everything about the language, from the the very beginning and the other books written by Scott Meyers and the creator of C++ himself. All of them are great. Hope it helps.

u/shikatozi · 3 pointsr/gamedev

if your talking about game programming, i just got Killer Game Programming in Java from O'Reilly, it's a pretty good start.

However, if you're talking about game development, as in how to actually think of a game, i suggest The Art of Game Design by Jesse Schell. Very good book IMO.

u/joeldevahl · 3 pointsr/gamedev

I read Realtime Rendering a lot when I started programming 3D. It's good book , and the site links to a lot of other good books and sites.

I wouldn't recommend 3D Engine Architecture or 3D Game Engine Design though, since they give a very bloated approach and are quite C++ specific.

Remember to Keep It Simple. =)

u/Ihaveastupidstory · 3 pointsr/gamedev

Yeah I was going to say the same thing. That's like the best base to start at if you ask,

Here's a link.

http://www.amazon.com/The-Animators-Survival-Richard-Williams/dp/0571202284

u/zeushammer · 1 pointr/gamedev

Besides C, you can also try dabbling in Java and use Netbeans IDE since they are beginner friendly and explain the functions of syntax that you type in
(if you downloaded the 200MB++ help files)

(Try read this one!)[http://www.amazon.com/Killer-Game-Programming-Andrew-Davison/dp/0596007302]

or you can dabble in Flash n post your simple games to flash portal like kongregate/underground. Many indie developer also start from there.

u/iemfi · 1 pointr/gamedev

I would second that and say go even more general than that. The Pragmatic Programmer is thin and IMO the concepts are vital to learn. Also stuff like this edx/harvardx intro to com science course, are very recommended. IMO the return of investment for your time is very short.

Once you have your foundation it's easy to do exactly what you're doing now to learn the nitty gritty of C#/Unity.

u/coolnonis · 2 pointsr/gamedev

I used this book to learn OpenGL ES using Java. Its actually pretty fantastic. If Java isn't your thing, there's a similar book for C++ here.

u/[deleted] · 2 pointsr/gamedev

I try writing code in English first. Those become the starting comments. Then I fill in details.

I look for blocks of code that can be isolated into their own functions. I ask: if someone reads this procedure, do they need to know the details of this block of code to make sense of the rest of it? If it's not really relevant, hide that block behind a descriptive function name. This also sometimes helps me identify when code is too tightly coupled with some other code. E.g. "wait, this function shouldn't care how the results are displayed, so move that code elsewhere".

Even still sometimes I end up with functions that have hundreds of lines of code. In some situations that's more legible.

It takes experience to write legible code. When I was a young coder I was obsessed with being clever. Part of that was a bad habit encouraged by line numbers in Applesoft Basic -- if I didn't leave myself enough extra line numbers to insert new logic, I'd combine lines or write twisty formulas to get the same results. That led to less readable, poorer-performing code. Nowadays I treat comprehension as the most important aspect of my code -- if I can get it to make sense in English, writing the actual code is a mere implementation detail.

My current code style was heavily influenced by Code Complete. It's a nice read, I recommend it often.

(edit) Also, if you don't already, try posting your code to a public repo like GitHub. Just the threat of other people looking at your code will improve your habits.

u/spacetimebear · 1 pointr/gamedev

Suprised no-one mentioned this yet (or i just didnt see it) here you go: http://www.amazon.co.uk/gp/aw/d/047068867X?pc_redir=1405307632&robot_redir=1 We refer to this as the games bible. It covers almost all aspects of preproduction and provides very good examples. You can probably get the pdf for free somewhere around the net.

u/beammaker · 2 pointsr/gamedev

I highly recommend this book: http://www.amazon.com/Drawing-Right-Side-Brain-Definitive/dp/1585429201

It teaches you how to draw and how to summon the flow at will. It also reinforces that art-making is actually a learnable skill, and gives you the framework on how to approach other lines of art so that you can learn how to craft artwork in the most effective way.

u/Dhraz · 2 pointsr/gamedev

I have been in the exact same boat as you. I'm about to start actually coding a game finally after a year of letting the idea stew. I have been reading a book on XNA 4.0 which does a great job of describing object-oriented approaches to constructing some basic components. Even if you don't want to code for XNA the structure of the code can be used in just about any language.

The author of the book hosts all of the source code for his tutorials on his website, so you could always look through those as well.

Here's a link to the book: http://www.amazon.com/Learning-XNA-4-0-Development-Windows/dp/1449394620

u/stee_vo · 1 pointr/gamedev

Anyone here recommend this book? Amazon link

I'd really like to learn C++ and heard that books are one of the best ways to go, so is this one a beginner could start reading?

It's not necessarily for game development, but still.

u/silverforest · 2 pointsr/gamedev

Two book suggestions:

u/adeadrat · 3 pointsr/gamedev

Code complete 2, is the best programming book I have ever read. I would however recomend a year or two as a programmer before you read it.

u/johsko · 2 pointsr/gamedev

Note that Game Engine Architecture != 3D Game Engine Architecture. They are different books with similar names. While both are worth looking at, the former is my favorite (and the one OP mentioned).

u/remembertosmilebot · 0 pointsr/gamedev

Did you know Amazon will donate a portion of every purchase if you shop by going to smile.amazon.com instead? Over $50,000,000 has been raised for charity - all you need to do is change the URL!

Here are your smile-ified links:

Unity in Action

---

^^i'm ^^a ^^friendly bot

u/retroelyk · 17 pointsr/gamedev

It's hard not to be excited about technology when watching one of his keynotes, regardless of whether or not you understand the content.

Oh, and for those that haven't read it, I highly recommend Masters of Doom. Some really inspiring stories about early id.

u/datosh · 1 pointr/gamedev

Well I bought this book and gonna work through this until next semester starts. I think I can start using wrapper and frameworks after I know what I'm using under the hood.
Makes the wrapper&frameworks more intuitive... at least for me. But thanks for the tipp. I'll look into the stuff after I red the book.

u/hermitengine · 6 pointsr/gamedev

I too picked up DX11 mostly using rastertek's as a starting point, and then Microsoft's own documentation as a reference. I read rastertek's code as documentation in C++ rather than straight copying the code. After all, its abbreviated code is meant to illustrate D3D usage rather than be a production-level engine.

For a more guided approach, this book might suit you better:

https://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1936420228/ref=sr_1_2?ie=UTF8&qid=1502869223&sr=8-2

u/xgalaxy · 1 pointr/gamedev

I feel it is my duty to point out that there are two C++ Primer books and one of them is the not so great book, and the other is very very good. The one being linked is the mediocre book.

You want this one:
http://www.amazon.com/Primer-5th-Edition-Stanley-Lippman/dp/0321714113

u/hyperchromatica · 4 pointsr/gamedev

tldr if you want to learn cpp, get a book. This one is good. Don't attempt to dive into programming with Cpp in unreal, learn cpp first then go into unreal. or just go with unity. Books are your friend.

u/tango_oscar · 6 pointsr/gamedev

Best book to learn C++ in my opinion is Accelerated C++: Practical Programming by Example (350 pages). Right from the start, it teaches people to use STL containers and other C++ constructs, instead of teaching "C with classes" like many other books (including Thinking in C++). Unfortunately, it is outdated so you will have to learn about new features of the language. You can use A Tour of C++ for that(180 pages).

If you have the time and will to learn moder C++ from the start, then I would recommend C++ Primer. Similar in approach to Accelerated C++ but longer(970 pages).

u/WereCoder · 1 pointr/gamedev

This is not an authoritative guide -- it's a collection of opinions. However, the opinions are based on lots of experience and they're worth considering. Additionally, the author prods you to think about the right set of problems. It's a great place to start. At least it was for me when I was just getting started.

https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670

u/przemo_li · 2 pointsr/gamedev

This stackoverflow question
Have some good answers.

Web resources (good)

OpenGLBook OpenGL 4.0

Arcsynthesis OpenGL 3.3


Books (unknown quality, look for reviews)

OpenGL SuperBible 5th Edition OpenGL 3.2 Core

OpenGL 4.0 shading language cookbook OpenGL 4.0 Core

u/amonsch · 3 pointsr/gamedev

My personal favorite is Essential Mathematics for Games and interactive Applications. I covers the very basics, after that you can buy Real-Time Rendering.

u/spacemanatee · 1 pointr/gamedev

Tracer Bullet is a section from The Pragmatic Programmer and one of my favorite parts of the book.

u/Corbags · 6 pointsr/gamedev

Pencil to digital is just a matter of practice. If you have a few extra dollars, I'd also grab Drawing on the Right Side of the Brain. That'll teach you how to draw. To learn what to draw, i.e. be more creative, get The Keys to Drawing with Imagination. Transferring to digital is just a matter of learning how to use photoshop and a scanner or a drawing tablet.

I apologise, those are Canadian links, but the books are also available in the US.

u/jaza23 · 9 pointsr/gamedev

The Art of Game Design - Jesse Schell

very few illistrations (if thats what your into). All theory, it's the go to book for game design


http://www.amazon.com/The-Art-Game-Design-lenses/dp/0123694965

Level Up - Scott Rogers.

My personal favourite. Easy to read.


http://www.amazon.com/Level-Up-Guide-Great-Design/dp/047068867X

u/WikipediaHasAnswers · 0 pointsr/gamedev

The Pragmatic Programmer is a great book for people in all fields of programming, but has nothing specific to making games. If I had to be on a team with someone I would rather he or she had read the Pragmatic Programmer than 50 books on making games.

Just my 2 cents and probably not what you're looking for though!

u/davincreed · 1 pointr/gamedev

I really like the Beginning Android Games book, plus it does a snake game as a tutorial for one of the chapters.

That book also covers installing and setting up the development environment.

u/antininja · 8 pointsr/gamedev

> I first build a very simple prototype that has some basic actions and game principles I want to have in my game. I do not care for design nor code quality.

IIRC, this technique is highlighted in Code Complete. The key point the author made there was that it's OK to take shortcuts while prototyping, as long as you're willing to throw all that code away before doing the real work. (Of course, it's not that black and white.)

u/AlexeyBrin · 2 pointsr/gamedev

Since you are a C++ beginner, you should initially concentrate your efforts in learning the language.

My suggestion is to read Programming: Principles and Practice Using C by the father of C++ Bjarne Stroustrup https://www.amazon.com/Programming-Principles-Practice-Using-2nd/dp/0321992784/ and do the exercises from the book. Try to do these on your own, if you are really stuck on something search an alternative explanation, ask on Reddit /r/learnprogramming or Stackoverflow.

Also, very important, use a modern C++ compiler like the one from Visual Studio 2017 if you are on Windows, G++ 6 or 7 if you are on Linux, and latest Xcode if you are on macOS.

u/DoctorLawyer · 3 pointsr/gamedev

Animation survival kit is the best place to start for animation fundamentals: http://www.amazon.com/The-Animators-Survival-Richard-Williams/dp/0571202284

Go for both. Programming is lucrative in that you'll always find work. 3d animation is more in demand than 2d, but if you're game-making on your own you should be able to do it all to an extent.

u/Karzka · 10 pointsr/gamedev

Not game-specific, but these books are definitely industry essential books when it comes to anything related to software development.

In no particular order (though Code Complete should probably be first):

u/ddoomus · 3 pointsr/gamedev

Unfortunately, there's no real fast-track.

That being said, focus on design patterns and algorithms. Understanding and putting design patterns into use is absolutely your best starting place. Knowing and learning new algorithms gets your brain thinking in the right way about any problem you're trying to solve. These two topics on their own can be really pretty dry and boring, but there's only two ways to learn them. The slow way, by trial and error, by experience (which you've been doing). And the boring way, that's slightly faster, study.
Introduction to algorithms is really good, but dry.

Head First: Design Patterns If you've never used a head first book, they're really well done IMO. Just commit yourself to a chapter a day once a week or something, force yourself through it, and you'll learn tons.

Another pro tip, re-write your existing code. When you realize you should've done something differently, fix it. Any time you find yourself copy pasting code, or thinking to yourself, damn, I should've made an abstract class, or a factory, or ... whatever it is, go through the process. In the end, it always comes down to doing. Learning this stuff only comes from doing.

u/Marmadukian · 2 pointsr/gamedev

If you want to know some algorithms that are handy when designing systems to work together, read Head First Design Patterns. It's a pretty light read but if you do most of their exercises, it sticks pretty fast.

Just break down the problem into smaller and smaller chunks. Come up with a few systems, a map system where the grid is stored(i.e. 14,17 is a barracks and belongs to room id #115.(also, make it a singleton so that the building system can ask it wheres free)) and then the room system(pretty much just manages a collection of the rooms built) which keeps track of all the rooms and updating them every tick, and then have a Collection system that is a listener to all the rooms and will pop up showing that they need to be collected, then have the unit system where all the characters are stored, and probably a movement system to track which characters are moving where, and more systems as you build it bigger. Then a game StateMachine(which would probably be the dominant system and passes updates to all the other systems) to keep track of what to menus to be showing the player, and when to take input to the map or whatnot.

If something doesn't feel good to work with, refactor it and try to think of a simpler way to use it. It's a big task, and you shouldn't try to fit the whole thing in your head at once.

u/ClownCarnage · 1 pointr/gamedev

If you want to get into graphics, I would say use Frank Luna's DirectX 11 book or Joey de Vries' website LearnOpenGL.

EDIT: Phone's autocorrect...

u/kevdotbadger · 6 pointsr/gamedev

LibGDX is open source, so they make no money from it. They do have a donate button on the website, and Mario Zechner (the author) has a decent book for sale. He's also planning a new book focused on LibGDX

u/weeznhause · 9 pointsr/gamedev

I'm trying to remember which game design book this was covered in, I'll check when I get home. In short, so long as there is an immediate cue to acknowledge the input, the extended animation doesn't feel unresponsive.

​

Edit: Game Feel: A Game Designer's Guide to Virtual Sensation is the one, it covers this kind of thing at length.

u/TheSecretMe · 82 pointsr/gamedev

The animator's survival kit. Still an unbeatable book for this sort of thing.

u/Neumann347 · 4 pointsr/gamedev

If you are doing any coding at all, you should read Code Complete

u/Moon4u · 2 pointsr/gamedev

There is Masters of Doom, but I don't know if that is exactly what you are looking for.

u/c0Re69 · 3 pointsr/gamedev

Check out Beginning Android Games. It's written by Mario, the guy behind LibGDX.

u/n4te · 0 pointsr/gamedev

Beginning Android Games. It's generally applicable, despite the title.

u/unwary · 1 pointr/gamedev

First learn C# then read this book: Learning XNA 4.0.

In the book you learn how to make a simple 2d game and 3d game. Try it out!