Advertisement Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

2439 Excellent

1 Follower

About ericrrichards22

  • Rank

Personal Information


  • Twitter
  • Github

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. ericrrichards22

    Why is Eclipse the most popular Java IDE?

    Intelli-J is much better. There is a free community edition, and I believe that they also have student licenses if you sign up with a school email, so unless your coursework requires using Eclipse, you might as well make the switch. It's a much more pleasant experience. JetBrains does make some really excellent developer tools - for instance, Android Studio is now based on IntelliJ. Generally, what you learn in college is 5-10 years behind the curve, particularly with regards to tooling. At this point, I haven't seen Eclipse used professionally in some years.
  2. ericrrichards22

    FBX SDK : Object display wrong

    Usually I've seen this sort of thing when I forget to apply the transformation matrices for the parts of a mesh correctly. Looks like the body and head are two pieces, and the body mesh is missing a rotation, while the head is missing a translation. There's probably a root transform for each submesh that isn't being applied.
  3. I think I have a copy of that on the shelf, I'll see if the CD is still in it. It was probably five years ago when I went through it the last time, but I think it was compiling fine on VS 2010, maybe with some little tweaks.
  4. Not overly familiar with DirectXMath, and it has been quite a while since I was digging through the Luna DX11 book, but it looks like you probably need to use the constructor for XMFLOAT4, rather than rely on an implicit conversion
  5. ericrrichards22

    How to learn from Quake source code

    He might be in that state now. By his own admission (can't find the source at the moment, but probably one of the interviews Fabien links to in the Quake blogs, or his .plan archive, or Masters of Doom), he wasn't really sure what he was doing a lot of the time back when he was writing these early engines; he was muddling through as best he could, and learning things left, right and center along the way. The Quake 1 engine is probably the most approachable of the open-sourced IdTech engines - I don't have it pulled down at the moment, but I was pretty deep into looking at it a few years ago, and I want to think it was on the order of 50k lines of fairly standard C89 code, which is more manageable to keep in your head than the later, larger engines. And it doesn't have a ton of the inline assembly and DOS-hacks of Wolfenstein or Doom. The OpenGL rendering pipeline is archaic, but its pretty standard for the way you had to do things back in that OpenGL 1.0 era. That being said, exploring the code base is more of an archaeological expedition than anything that you would want to take as an example of best-practices. The hardware available now is very different than what was available then, and we've got much more powerful tools, as well as twenty-odd years of insights into better ways to structure game engines.
  6. ericrrichards22

    Wolfenstein 3D Game Engine Black Book

    All three are at the top of my to-do pile. Every couple years I pull out the ray tracer I wrote for a college class and port it to whatever new language I'm learning. I think F# is next
  7. Why is GUI.buttonContainer static? You're going to always be drawing all of your buttons on all of your GUIs, so at best if you've got two of these top-level GUI objects, you're going to draw every button to whatever window it's supposed to be in twice. Unless there is more we're not seeing, I don't really see the point of Button subclassing GUI, either...
  8. It's really spreading everywhere lately. It seems like half the non-AAA games on Steam these days are in Early-Access... It's not necessarily a bad thing; as long as you realize that you're buying what the game is RIGHT NOW, and the potential of what it might be later is just icing on the cake. For instance, and this is many moons ago now, I bought into Mount & Blade back in maybe 2005 or 2006, way before it finally was finished - but even in that very raw and somewhat buggy state, it was a really fun medieval combat simulator.
  9. ericrrichards22

    Will we ever see an adoption of something other than C and C++?

    Beyond compiled vs interpreted, this is really veering into the territory of dynamic vs static typing, and also the strength and expressiveness of the type system. Javacript and Python aren't a PITA for large systems because they are interpreted - although things like exec and self-modifying code and monkey-patching don't help - it's mostly because they've got dynamic type systems that are pretty weak. Static typing isn't necessarily a silver bullet; C is statically typed, but weakly, and you can do all sorts of evil stuff casting and poking at memory. Haskell might be getting too far into the chains-and-whips masochist end of the spectrum, but it increasingly seems like evidence is piling up in favor of more strongly, statically typed languages. At least for anything that has to be supported and maintained and isn't quick-and-dirty throwaway code.
  10. ericrrichards22

    I like to learn about BSP rendering

    If you haven't already, you might want to look into Chocolate Doom ( It's a pretty clean and straightforward port of the original Id source. I think it uses SDL, the last time I looked into it. Likewise, for another good deep dive into how the Doom engine worked, and how it used BSPs, Fabian Sanglard's website is fantastic (
  11. ericrrichards22

    Will we ever see an adoption of something other than C and C++?

    I chuckle a little bit whenever I see that the next big thing in the front-end world is something that existed 10, 15, 20, 30 years ago... We keep reinventing Java applets, Flash, UI paradigms that are old enough to order a beer, and even makefiles. But in Javascript!
  12. ericrrichards22

    Will we ever see an adoption of something other than C and C++?

    We're standing on top of forty years of C-based APIs and libraries. Despite some attempts to slowly port or replace parts of that legacy - thinking of the Rust Evangelism Strikeforce redoing libc, or Microsoft trying to replace Win32 with UWP - everything is stacked up on top of those old C-based foundations. There's a lot of inertia. D is an interesting case. I remember articles on here at least ten years ago touting D as a replacement for C++, but it just can't seem to get much traction. Maybe if it had one of the giant tech companies pushing it, like Google does with Go, or on a lesser scale Mozilla is doing with Rust, but ultimately the Linux kernel is C, and the Windows kernel is C/C++, Android is Java, IOS is Obj-C/Swift, and the web is Javascript. If I had to guess, what I imagine will happen is that we're more likely to see C++ continue to morph into different directions and evolve, rather than be replaced. I've been watching that kind of process happen with C# over the last decade, as it keeps stealing more and more ideas from F# and other functional languages
  13. Resharper is fantastic if you're running Visual Studio on Windows. Otherwise not so much. If you want something nicer to use than MonoDevelop, try JetBrains' other product, Rider, it should run on Windows, Mac, or Linux. It's got most of the same refactoring tools and other bells and whistles that ReSharper adds. P.S. if you're a student or still have a .edu email address, you can usually get a student license to the whole JetBrains suite, which has all kinds of goodies.
  14. ericrrichards22

    DirectX 11 , Where to start?

    Truth be told, there aren't that many DX11 books out there that I am aware of. There were seemingly a lot more books written in the DX7, 8 & 9 eras - I've easily got a half-dozen on my shelf right now. There's a Direct3D Succinctly free ebook from SyncFusion, which would probably be good for a quick-and-dirty let's-get-things-going overview; I haven't read that one specifically, but that whole series is usually pretty well-done but very concise. My suspicion is that the rise of Unity and Unreal Engine as free tools have shifted most peoples' focus further up the stack. Where there used to be a ton of books titled "Program an XYZ game in DirectX", now there are tons of "Program an XYZ game in Unity/Unreal Engine" books.
  15. ericrrichards22

    Any gun enthusiasts here?

    Caliber doesn't tell the whole story with different firearm cartridges. For example, the picture below shows a variety of rounds that all have a .22 caliber bullet, but wildly different powder loads behind them. On the left you have a .22 LR cartridge, which is typically used at relatively short ranges (< 100m) for target shooting or squirrels; many of these rounds are manufactured so that they have a muzzle velocity below the speed of sound (~1000 ft/s). On the right is a .22-250 round, which can exceed 4000 ft/s muzzle velocity, and is typically used for long-range shooting, 300-700m. Similarly, there is a huge difference between rifle, "intermediate" and pistol rounds. Below are a 7.92mm Mauser rifle round, a 7.92mm Kurz round (used in the first modern-style assault rifle, the StG 44) and the 9mm Parabellum pistol round. Very different powder loads, bullet masses, and bullet geometries. The usefulness of each round really comes down to range and rate of fire. The Mauser rifle round is a very accurate and effective long-range ammunition, but has tremendous recoil - so unless fired from a heavy weapon with a bipod or tripod, fully-automatic fire is not feasible; after the first round or two, the recoil would destroy any ability to aim accurately. On the other hand, the 9mm pistol round has significantly less recoil, but nowhere near the same stopping power, and becomes pretty inaccurate and ineffective at anything beyond short distances. This means it was well-suited for pistols and also sub-machine guns, like the MP 40, where the lighter weight and recoil of the 9mm made fully-automatic and burst fire from a hand-held weapon very effective in close-quarter fighting, but mostly useless beyond that range. The intermediate Kurz round was designed to have most of the ballistic performance of the full rifle round, out to the ranges that were typically encountered in actual battle, but with reduced recoil to permit rapid fire. It was also about half as heavy, in pure weight, so you could lug around twice as many rounds of ammunition.
  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!