Review: Getting Started in 3D with Maya: Create a Project from Start to Finish – Model, Texture, Rig, Animate, and Render in Maya by Adam Watkins

3DWithMaya

In what has to be one ridiculously long title for a pretty straight-forward book, Getting Started in 3D with Maya: Create a Project from Start to Finish – Model, Texture, Rig, Animate, and Render in Maya is actually not a bad place to start if you’re trying to get into 3D. Adam Watkins manages to pack all the crucial steps of 3D modeling and animation into 9 concise chapters. I enjoyed the flow of the book, and felt that every important detail was explained. The author teaches just enough to get to the next step, and it’s all done in a logical order and progression. If you are just getting started with 3D, or if you know another package and are new to Maya, I think this is a excellent book to pick up.

Watkins begins by explaining the general workflow and with the Maya philosophy (including a few somewhat comical hardware recommendations even though the book is only a couple years old). He continues with architectural modeling, organic modeling, UV layout, textures and materials, lighting and rendering, rigging and skinning, and finishes up with animation. Clocking in at around 448 pages, the book is not particularly short but I found I was able to get through it quickly. Each chapter was just the right size to read in one sitting, and the text was engaging enough to make me want to come back the following day.

I definitely feel like I learned a thing or two by reading this book, and it has helped me to better understand the Maya workflow. Most 3D packages are huge, monolithic pieces of software, and no single book could cover everything. However, Getting Started in 3D with Maya covers the basic things you need to know in order to get started (so the book is true to it’s name). If I had one complaint, it’s that I thought the art direction could have been better. This book won’t teach you to be a masterful artist but I guess that wasn’t the goal or scope of the text. In any case, I would certainly be interested in reading more from the author as I feel he has a clear and honest style that is easy to learn from. Recommended.

Review: How to Cheat in 3ds Max 2015: Get Spectacular Results Fast by Michael McCarthy

3dsCheat

I found this book to be quite interesting, but it’s also very specific to the 3ds Max package. How to Cheat in 3ds Max 2015: Get Spectacular Results Fast by Michael McCarthy has about 15 chapters focusing on various aspects of the 3d modeling process. It probably only took me about a week to read the text, which I don’t mind at all. Not every book has to be a 1000 page tome. I actually find it refreshing to read short books, especially if the author can impart a deal of knowledge in a quick span of time. How to Cheat in 3ds Max 2015 was one of those books.

Included in the 328 page copy are some very essential topics in the creation of art in 3ds Max: customizing the UI, navigating the scene and transforming objects, basic modeling, character modeling, materials, lighting and shadows, reflections, animation, MAXScript, rendering, plug-ins, special effects, and more. Not a bad amount of coverage, though many of the chapters are not extensive.

If you’re using 3ds Max, I think this is a decent addition to your library. It covers some specific things well, and gives you enough information to know what to search for to find out more. I especially liked the chapter on how to make an object fracture and then fall into pieces using physics. It also shows you what tools there are (sometime even 3rd party plug-ins) and does give you a good idea of what’s possible if you’re new to Max. However, if you are using a different 3d package, the book may not be as useful.

What I wish is that there were more general 3d art and modeling books out there. I’ve already read Digital Modeling by William Vaughan and it was amazing, but sort of a one-of-a-kind. Too many of the books out there seem to focus on one particular toolset and don’t try to abstract the concepts into something more widely applicable. Clearly, the basic foundation of modeling and texturing techniques are not all that different with different programs. The buttons or methods may be different, but the thought process is very similar. I can’t knock this book for that, though, it’s just more of a general musing on the subject.

Overall I thought How to Cheat in 3ds Max 2015 was a competent book, and achieves what it set out to do. I feel like it would probably be useful for beginner 3d artists trying to up their game, but maybe as a 2nd or 3rd book. The chapters each have a sort of “cookbook” feel to them, so I think some other books do a better job of building on top of previous chapters in a more cohesive manner. However, I don’t think that was the goal here, so I won’t penalize the author. All in all: not bad.

Review: 3ds Max Modeling for Games: Insider’s Guide to Game Character, Vehicle, and Environment Modeling: Volume I by Andrew Gahan

3dsMax

If you’re working with 3ds Max, or even similar packages, I think this book holds some insight. I’ve tried a few different modeling packages, but somehow Max just seemed to click better for me. Maybe it’s because it was the first one I started learning with, or maybe it’s popular for a reason. Not sure, but I think it’s a very capable product (especially for game development). 3ds Max Modeling for Games shows you how to do some basic (and not so basic) modeling tasks in the app. I found the instruction to be detailed and clear, though at times it can be very specific to the package.

So what does Andrew Gahan show you here? Well, he goes through some basics of working with the 3ds Max interface, terminology for game art, and texturing. Then he shows how to create, unwrap, and texture a simple model. Creating a more complex model (sort of a floor sweeper thing), vegetation and alpha maps, a low-poly vehicle, normal mapping techniques, an entire 3D environment, and finally a high and low poly character. Quite a good assortment of chapters and each one was fully fleshed out.

I did appreciate that the author goes through each step, even simple stuff other books may gloss over. In some cases, as I started reading I was questioning the method he was using, but eventually he made it work. While the text is very focused on the one specific application, I do think that artists (or aspiring artists) could glean knowledge from the techniques and apply them to other packages. However, this would not be the first book I went to if I was using Maya or whatever.

Overall I feel like I learned a couple neat tricks, and after reading the book I feel a little more confident in my modeling skills. Will really need to put this to the test soon, as I’ve been dying to create some nice art to work with building graphic demos and whatnot. Looking at programmer art all day is just not as motivating. I have plans of creating a realistic-style apartment, and I think it’s something reasonable to get finished. Down the road, I’d love to do a full character, but I’ve always struggled with this in the past. At least now that I’ve switched to Unreal, I can free up some of my effort to focus on art since I know the engine will support whatever I throw in there (and make it look good!). Looking forward to checking the Volume II in the series shortly.

Making Pong in Unreal Engine 4 (My Very First UE4 Game!)


 

Today I’d like to unveil what I’ve been working on for about 2 weeks: Pong in Unreal Engine 4. Most of that time was spent reading documentation and watching tutorial videos just to figure out the basics. There is actually a *lot* of good material out there for Unreal Engine 4, the docs have been helpful and there are plenty of videos. Disappointingly, there are barely any books out there for the engine, but I’m sure that will change quickly.

Pretty much anyone will tell you, when you are learning to develop games (or switching to a new engine/platform), the best thing to do is to start small and try to complete something. It’s really silly to try to make an MMORPG as your first game (I have fallen for this one!) and even relatively simple things can become complex fast when you are not familiar with the platform. So I chose to do Pong as my first excursion into Unreal 4. It was not without some trials, but I made it through alive. Oh, and, no. This will not be considered my “finished project of the new year”. There are some other, cooler, things I have in mind.

Previously I was making multi-part blog posts with basically quick status updates. This was fine, but I think it will be more helpful for the community for me to do focused tutorials on a specific topic and post those more frequently. I learned quite a lot about Unreal with this project, and I think I can share some of that on this site. Some of the things I picked up working on this demo include: importing assets, working with Blueprint, basic flow and logic, movement, collision, HUD, events, keyboard control, functions and variables, and just getting familiar with the Unreal Editor interface. Not sure I will make tutorials on everything, but I plan to break this into a few posts. Below you can see the level Blueprint for the game, just to give you an idea of the complexity.

UE4_Pong_BP

Overall I have been impressed with Unreal Engine 4, and I can’t imagine purchasing a more capable piece of commercial software for less than the pennies they are giving this away for. People can complain about the 5% royalty but, really, if you get to the point where 5% is a significant dollar amount, you will be rolling in the the dough and shouldn’t care if Epic wants a piece of the pie. Cost aside, I do like the engine a lot. Granted, I ran into some bugs, and more crashes and stability issues than I’d care to admit. At one point, the project saved in a corrupted state and I was blocked from even opening it at all. Luckily, I was able to update the engine and convert the project, but I was sweating pretty hard for a little while. That said, I’m sure this can be improved in time and it didn’t stop me from developing (I’d just recommend using source control and committing often).

The visual programming system, Blueprint, is very powerful and I used that alone for this demo (no C++). I did start checking out the C++ support and it seems to add some extra power and flexibility, but I haven’t got that far yet. However, I can see building some simple games and experiences using the visual coding by itself. This is also great for designers, who may be able to rig up some basic stuff themselves. Keep in mind, it’s still programming (just not with text). You have to understand the basics of logic and control flow and, in some ways, it may even seem alien to veteran programmers. I know there were definitely a few cases where I had a non-trivial amount of nodes and connections and thinking “I could have done this in 1 line of code”. Once I got beyond that, I think I may prefer it to coding manually, as it’s much harder to make mistakes (or to create stuff that doesn’t work).

I hope to continue working with UE4 in the future and I’ll continue updating my blog as I make major developments. Thanks for watching.

Creating a 3D Game Engine (Part 25)

So it comes with great reluctance but I think I will have to suspend development on my 3D game engine, at least for the near future. Surely this will be a disappointment to anyone following the progress and I did not make the decision lightly. After spending some time thinking about it, I think it’s the right move. It’s just really hard to justify the amount of time and effort put into this when there are much better solutions available off-the-shelf.

In the little less than 2 years I’ve worked on this project, I think I have made decent strides. Honestly, I was not working on it full-time. Just on weekends mostly or maybe here and there when I had time after work. My initial goal was to have something functional in about 6 months to a year. It took a little longer, but I guess eventually I did have the basic features of an engine somewhat working. I will list what was implemented below, but it was enough to load in some textured models and fly a camera around. Not ground-breaking work by any means, but I built nearly everything myself so I was happy about that. There was just an enormous amount of work remaining to get to a state where a game could be produced. Finally, it was too much.

So before I give my personal advice, I’ll break down how I got to this point. First, let’s look at all the books I read as research for this project:

Game Engine Architecture – Jason Gregory
Game Coding Complete, Fourth Edition – Mike McShaffry
Real-Time Rendering, Third Edition – Tomas Akenine-Moller
Game Engine Design And Implementation – Alan Thorn
3D Game Engine Programming – Stefan Zerbst
Game Engine Gems, Volume One – Eric Lengyel
3D Game Engine Architecture – David H. Eberly
3D Game Engine Design –  David H. Eberly
3D Math Primer for Graphics and Game Development – Fletcher Dunn
Mathematics for 3D Game Programming and Computer Graphics, Third Edition – Eric Lengyel
Introduction to 3D Game Programming with DirectX 11 – Frank Luna
Practical Rendering and Computation with Direct3D 11 – Jason Zink
Beginning DirectX 11 Game Programming – Allen Sherrod
Game Programming Patterns – Robert Nystrom
Game Physics Engine Development – Ian Millington
Physics for Game Developers – David M Bourg
Physics for Game Programmers – Grant Palmer
Game Physics Pearls – Gino van den Bergen
Shadow Algorithms Data Miner – Andrew Woo
The C++ Programming Language, 4th Edition – Bjarne Stroustrup
C++ Primer (5th Edition) –  Stanley B. Lippman
C++ Primer Plus (6th Edition) – Stephen Prata
More Effective C++ – Scott Meyers

If you are considering engine development, please read on, but I believe all the above books are valuable to look at. I’ve also read a variety of sources online, from tutorials to official documentation and more. Looking at that list it seems huge, but I am an avid reader and have read and listened to a number of non-technical books in that time-span as well.

Next, let’s look at what features were actually implemented and working (or mostly working):

  • Win32 app template (message pump)
  • DirectX 11 based rendering engine
  • DirectInput mouse and keyboard controls
  • Custom math library (Vector, Point, Matrix, view/projection)
  • Node-based hierarchical scene graph
  • Frustum culling (sphere and point tests, minimal bounding sphere)
  • Generic XML parser (from scratch, kind of hacky and slow)
  • COLLADA importer (only basic vertex and UVs)
  • Custom binary 3D model format (for speed)
  • Camera object (spectator mode)
  • Texture mapping and Skybox (cube mapping)
  • Directional, ambient, and specular lighting
  • Normal and shadow mapping shaders
  • Command-line console window logging
  • Architectural glue and probably some odds-and-ends.

So what wasn’t finished? Way too much to list. I don’t want to get down on myself too hard, cause I think that I accomplished a little something here. Certainly some of this stuff was not easy and, if anything, it has made me a better coder. Even in the current state I guess you could make a Pong game or a simple walk-through demo or the like. Also keep in mind this was a part-time excursion. If I were dedicated to this fully it probably would only have taken months (not counting research time). While I started with a very clean style and deliberate design, by the end I was kind of hacking things together, and some features (like the shadow mapping) became very intertwined with the core rendering code. Of course, this was very much a learning experience, and I planned to go back and clean things up later (which may or may not ever happen, we’ll see).

OK, so by now you are probably getting the idea. As to my advice, if you are trying to make a game (or game-like interactive experience) don’t bother making a custom engine. Everyone basically told me this from the start, and I didn’t listen. It’s sort of like when you see people doing stunts on TV and they tell you “don’t do this at home.” But they did it, and it made them rich and famous. So maybe I was looking for glory, or hoping finishing a big project like this would take me to another level. I guess in a way it did. I’m just not sure that was the best use of my limited time. What I mean to say is that knowledge is valuable, and I feel I learned a lot. However, unless you are really looking to be an engine programming professional, there is not much reason to try to do this.

The crux of the matter is that all-in-one engines like Unity and Unreal are just too complex and mature to expect to compete with. That’s not to say a small team or a single hero-coder can’t produce something great. They can. However, using a pre-built engine cuts out a *lot* of time and risk. Had I been working on a project for a client, I would have never even contemplated a custom engine. It just doesn’t make sense. Both Unreal and Unity have huge teams of expert engineers working solely on engine development. Unless you work for a huge AAA studio with a monster budget, I just can’t see coming up with something better in any reasonable amount of time. Even some huge companies (like Capcom and Square-Enix) are dropping in-house engine development for Unreal 4. Not a good sign for indies or bedroom coders working on their own engines.

But let’s say those big engines aren’t for you. There are a number of open-source engines and libraries out there to help you along. Something like Torque or C4 look promising (if you want a full-featured solution), or OGRE (if you don’t mind having to cobble together a bunch of different libraries). If you are interested in web publishing there are things like three.js for WebGL. With source access you can add the features you need or fix critical bugs. Really there are too many options to ignore.

For the last few weeks I’ve been playing with Unreal Engine 4, and it basically does everything I need and a whole lot more. At $19/month and a small royalty (if you sell your title) making a AAA looking game has never been more affordable. Unity may still have a leg up on ease-of-use and scalability on different platforms, but for high-end development I think Unreal is probably the one to go with. Having the source-code is a huge boon, and the price makes it attainable to almost anyone. Plus, with the visual scripting, Unreal can even be approachable to artists and designers. I’m still in the early stages of getting acquainted with the engine, but so far I am pleasantly surprised. I plan to follow up with some posts and tutorials in UE4 in the future, so don’t think this is the end of my blogging career or anything of that sort.

With all that said, there are still some things I’d like to see in engines that don’t exist today. You typically can’t use the editor in stereo 3D (assuming the engine even supports 3D natively), motion control support for placing objects is non-existent, image and model editing is usually very rudimentary (you must switch back and forth to other apps), real-time code editing and previewing can be limited. So things can certainly improve, and I guess there could be a case made for making plugins or forks to existing projects. I’m not saying things can’t improve. Just that reinventing the wheel to make incremental improvements may not be the best path.

At this point I don’t think I would say engine development is a “waste of time.” As a learning experience, I think it was fun and rewarding. Certainly I hope I didn’t just waste 2 years of my life. Doing all the work and research has brought me here to this place. So it was somewhat worthwhile. It just pains me to think how far along I might have been had I jumped on Unreal 4 when they first announced the subscription model, or spent more time with Unity over the years. If you actually want to build (and finish) a game, it’s a pretty clear choice to use an off-the-shelf solution. I’m sorry, guys. I wanted to prove everyone wrong, but they were right. Make games, not engines.

Finally, I’m sure the question you’re thinking is “will I release the source.” I’m considering it, but there are some hacked bits in there and I’m not sure it’s a great example to work off of. More likely I will pull out portions or classes from the project and use them for future blog posts highlighting a particular algorithm or technique. The full source itself is probably less useful compared to other stuff that’s out there. In any case, I hope maybe you have learned something after 2 years and 25 posts on this project. If you click the (somewhat hidden) 3 white line icon on the top right of the blog, you can see a list of all the blog updates in this series for a little history (if you weren’t following the whole time). Cheers, and happy coding.

Review: Game Programming Patterns by Robert Nystrom

Game Patterns

I will start by saying this book is game programming GOLD! Whether you are a pro or a novice looking to learn, this book deserves to place on your shelf (or I guess in memory if you buy the e-book). While some of the chapters may seem like obvious things for people that have programmed games before, I think even advanced coders will discover a few things they didn’t know.

So let me talk about what this book is. Basically it covers common challenges in game programming and some useful ways of resolving the problem. Though the theme of the book is game development, a lot of this stuff is applicable to any sort of visual or object-oriented programming. Nystrom starts by revisiting the classic design patterns popularized by the seminal book by the “gang of four” in 1994. Surprisingly, 20 years later a lot of those ideas still hold up. Next he moves onto more game specific topics like double buffering (not just for graphics), a game loop, and updating objects. Then he goes into bytecode (really a simple compiler), components, event queues, singletons, object pools, dirty flag and spatial partitioning. It’s actually not the longest book out there at 354 pages, but this is a breathe of fresh air after persevering through The C++ Programming Language (which was great, just very long). The author does not waste pages, though. There are nuggets of knowledge littered throughout the text.

One thing I like is how the book is not tied to a particular API or library. The pseudo-code is in C++, but really you could implement the ideas in almost any language. He even goes as far as not using the STL (for example, rolling his own linked list for a few examples). In a real application, you would probably not want to reinvent the wheel for basic containers, but it’s nice that the examples stand alone without any nasty dependencies. I could see a lot of the code here being copied into a real game and being usable with only minor additions. Well, of course you have to modify for your platform or engine or whatever, but the concepts are solid.

Another point is that this makes design patterns concrete (please, no abstract class jokes…). I read the original Design Patterns book years ago but some of the patterns never made sense to me. They were too abstract and, though interesting, sometimes didn’t click for me. This book, on the other hand, clicked the whole way through. Everything made sense, and was immediately clear why it was useful. Sure, I’ve probably learned a lot in the past few years, making Game Programming Patterns more approachable. But I think almost any game coder (or aspiring coder) could get value from this book. I’d give it 5 stars, 10 out of 10, 2 thumbs up, and definite “buy it now.”

Review: The C++ Programming Language by Bjarne Stroustrup

C ++ Programming

This book could be called “Everything You Ever Wanted to Ask About C++ and a Whole Bunch of Other Stuff You Had No Clue You Didn’t Know.” It really is the most comprehensive book I’ve seen on C++ and covers just about everything you will need to know (and maybe some more). That’s not surprising, as the book is some 1,300+ pages long. And, of course, it’s written by the creator of C++, so I would guess he knows a thing or two about the language.

The C++ Programming Language by Bjarne Stroustrup does cover all the major aspects of C++, but to name a few of the topics included: pointers and arrays, namespaces, classes, lambdas, overloading, copy and moving, templates (lots of templates), the STL, strings, regular expressions, concurrency, and the C standard library. It almost does a disservice to try to list all the topics, as it touches on almost all areas of the C++ language.  I found the code snippets to be useful and relevant, while still being short enough to be clear and understandable.

Keep in mind that this text has been updated to C++11 and the author does not bother teaching older standards. There are only a couple of instances when he mentions the difference but there is a chapter all the way at the end talking about some specific features that are different in each version of the language. This can be a good or bad thing depending on how you look at it. I mean, I think it was a good choice as the book would be twice as long and twice as confusing with constant clarification. But sometimes I was left wondering if a feature was new or if I just had never heard of it.

I’ll admit, I have actually not read earlier versions of this book, but I feel that Stroustrup has done a great job here. I would NOT recommend the book for beginners as I feel it is very technical and you might become afraid of C++ before even finishing the book. While the basic stuff about types and classes and all that are covered, the majority of the book is focused more on advanced features (templates, etc.). For intermediate to advanced programmers, this will be a great addition to the collection, and required reading to be an expert in C++. For novices I would recommend picking up C++ Primer or C++ Primer Plus (no relation).

One thing to note, this book is long. I think it may be the longest book I’ve ever read. Though I enjoyed it, there were points were I was doubting I would ever finish it. I would estimate it took around 2 months of daily reading to knock it out. If you wondered what I was doing since I haven’t updated the blog in a while, I was reading this. So before you embark on this adventure, make sure you’re fully prepared for what you are getting into. Recommended.

Creating a 3D Game Engine (Part 24)


 

It’s been some time since the last 3D engine update, but I’m still sticking with it. Currently I am working on getting a physics engine implemented. The video you see above is the first glimpse of this custom physics engine. Obviously it’s ultra basic right now, but it’s a start. The algorithm is based on a verlet integrator, and the code is running using DirectCompute on the GPU.

To be honest, it’s pretty hacked together right now, and the bounds/bouncing behavior is hard-coded. But, hey, it’s something! I also tweaked the style of the demo to more closely align with other demos from researchers (and the clean flat-shaded style looks a bit more classy).

I’m planning on expanding this significantly, but still have a lot of work ahead of me. Though I’m still questioning whether GPGPU is the way to go with this, especially since there are 8-core CPUs available for consumers (and which I am running now). There is also added difficulty and limitations of DirectCompute rather than straight C++. But if there are big gains on the GPU obviously I would like to go that route. Definitely more testing to do here, but progress is being made. Stay tuned.

Review: Game Physics Pearls by Gino van den Bergen & Dirk Gregorius

GamePhysicsPearls

Game Physics Pearls has been a book on my wishlist for a while, and I’ve finally got the chance to finish reading it and putting up this review. The text is edited by Gino van den Bergen and Dirk Gregorius, and each chapter is written by a unique author. I found that a lot of ground was covered while still keeping the book somewhat cohesive. It doesn’t feel like a complete random mash-up, and the progression is nice.

Some of the chapter content includes: basic mathematics, game physics pitfalls, broad phase, narrow phase, GJK, SPH, parallel particle simulation, ropes, soft bodies, and verlet integration. Even after reading several game physics books, there was still a decent amount of information I had not seen before. I especially appreciated the chapter on verlet integration (and the subsequent chapter on cloth physics that builds upon it). So many of the books I’ve seen seem to focus on Euler integration techniques and it’s rare to see much talk of verlet integration (or position based dynamics for that matter). This is the direction I am going with my physics engine, so it was nice to see some coverage.

Overall I was impressed with the quality of the book. Sometimes with these “gem” style books, it can be a hit or miss if the chapter is relevant to your needs. I did not think that was the case here. Nearly all the chapters had some pertinent information, and (while maybe not directly relevant to my current project) were at least interesting to read. I did not feel bogged down with math, most of the explanations made sense and there wasn’t too much needless minutia.

I would definitely recommend this title to anyone interested in video game physics. While there are other books that may be better places to start (as the book sort of assumes you know the basics already) this would not be a bad book to add to the collection. There are actually only a couple game physics books that I *haven’t* read, so it’s getting to the point I will need to stop researching and start writing code. Wish me luck!

Review: Physics for Game Programmers by Grant Palmer

PhysicsForGameProgrammers

Today I will be reviewing Physics for Game Programmers by Grant Palmer, another stepping stone on my quest to build a custom physics engine. Overall I enjoyed reading the book, and I feel like I learned a lot of general things but not enough to base a physics implementation on. Please read on for more details.

What I found most interesting about this text was the explanations of certain aspects of physics that I had not seen covered before. I have already read about 3 or 4 different books all on game physics, and I was expecting this title to be more of a refresher than anything. However, I was surprised to find a lot of things I didn’t know about. In particular, the coverage of drag forces was extremely detailed including things like turbulent and laminar flow and the Reynolds number. Some of the topics covered include: Newtonian mechanics, kinematics, projectiles, collisions, sports simulation (golf, soccer, basketball), cars and motorcycles, boats, airplanes, rockets and missiles, explosions, and lasers. Quite a lot in a little under 500 pages.

There is certainly a breadth of knowledge living inside this book. It was undeniably an interesting read, and I felt like I learned a decent amount. However, I am not sure it really got me any closer to building the physics engine I have set out to create. Let me explain. While there are equations listed in the text, and some example code is given, it is mostly used to support the 2D sample applications. I am not sure there is much I could just pull from the book an paste into a 3D engine. The concepts are sound, and it wouldn’t be a huge stretch to make it work, it’s just not spelled out for you. To be fair, some topics are explained well, like his discussion on differential equations and drag forces among other things.

My main gripe with the book is that it did not really try to explain rigid-body dynamics at all. There are some interesting things talked about, like sports and boats and planes and all that. And certainly there are probably a ton of sports games and simulators that would benefit from that focus. For my purposes, I was looking more for a rigid or soft body solver, and how bodies can interact with each other. Unfortunately, that was not discussed at all.

It’s not that I want to get down on Physics for Game Programmers, and I think Grant Palmer did a great job within the scope of what he was trying to do. The book was entertaining and relevant, it just wasn’t a one-stop-shop for all your physics needs. However, it does cover some basic things well, and includes topics not even touched by some of the other books I’ve read. That alone would make it worth reading, just set your expectations correctly. Once you are ready to make an actual implementation, you will likely need to seek other books or papers. But I guess it is almost always the case as one book can rarely impart all the knowledge you need in any given topic. To sum up: I liked it but wanted more.

3D Engine Dev Log
3D Engine Dev Log