ChaosEngine

Members
  • Content count

    2783
  • Joined

  • Last visited

Community Reputation

5192 Excellent

About ChaosEngine

  • Rank
    Contributor

Personal Information

  • Interests
    Business
    Design
    Programming
  1. Yep. In the OPs GraphicsDevice class, those DX structures are irrelevant to the user of the class. PIMPL will keep them out of the header that the user will consume (see also using an interface instead of a concrete class). The one issue with forward declarations is they violate DRY, especially in the case of templated classes. In that case, it's often useful to have a separate Class_decl.h that just includes the declaration.
  2. Reinventing the wheel

    Your employer/backer/significant other who would like you to stop f#$king around and finish the goddamn game so we can pay the rent? None of which matters on a hobby project, of course.
  3. Reinventing the wheel

    Like everything, the answer is "it depends". Are you a massive studio with resources to burn and the expertise to create new and better wheels? Reinvent away! Are you a one-man indie dev who has limited time and money? I would ask myself if reinventing the wheel is the best use of my limited time. Even that's just one axis on the "should I reinvent this wheel" chart. Are you doing this project for fun or profit? What will the return be on this custom wheel? Are you really good at making wheels, or are you more of a flash paint job kinda guy? Do your (potential) customer love wheels, or will they not even see them?
  4. Please don't do that. Aside from it being the wrong design decision, you're also reinventing the wheel. If you must do this, you may as well bite the bullet and use dynamic_cast. But just don't do it. There are better solutions (many of which detailed in this thread).
  5. Now he has all the excuses wants.

    Agreed, but that's not terrorism as such. Terrorism has a political aim. That guy didn't appear to have a specific agenda. The way to deal with him is another discussion (involving not defunding mental health and also gun control, but that would derail this thread). Well, the "right wing" approach plays right into their hands. "Hey guys, look how America treats Muslims". The solution to terrorism is not to abandon your principles. Fundamentally though, you can't defeat them with force. As I said, before unless you're willing to commit genocide (see the Romans in Gaul), every violent act you take just breeds more support. That's not to say that you shouldn't take steps to defend yourself, or even go after those who have wronged you, but ultimately, you HAVE to talk to them. Ireland is a good example of this working and Israel is a GREAT example of how to mess it up. Or you can follow the Sri Lankan example and unilaterally exterminate everyone who opposes you.
  6. Now he has all the excuses wants.

    Yeah, it's called.... the internet. The solution to terrorism is the same as it's always been, hold your nose, sit down and talk to the people who carry out unspeakable acts, then find out WHY they did it, what they want and work out a compromise. "We don't negotiate with terrorists" is a necessary fiction, but that's all it is... a fiction. In the real world, unless you are willing to commit genocide, you will never "defeat" terrorism. Hell, even as odious as the white power nazi assholes are, you ultimately don't defeat them with violence, but with conversation.
  7. Why watching movies is a necessity for games

    There’s a wonderful quote from Terry Pratchett about being a good writer. “So, instead, I give tips on how to be a professional boxer. A good diet is essential, of course, as is a daily regime of exercise. Pay attention to your footwork, it will often get you into trouble. Go down to the gym every day – every day of your life that finds you waking up capable of standing. Take every opportunity to watch a good professional fight. In fact watch as many bouts as you can, because you can even learn something from the fighters who get it wrong. Don’t listen to what they say, watch what they do. And don’t forget the diet and the exercise and the roadwork.Got it? Well, becoming a writer is basically exactly the same thing, except that it isn’t about boxing” And being an artist/programmer/level designer/whatever is exactly the same thing except it isn’t about writing. If you want to create something, look at what others have created before you. Good, bad, you can still learn from it. Don’t be restricted by genre or even medium. So yeah, watch movies (and tv shows too). Read books (and comics!). Listen to all kinds of music. Play games (board games too); if you can study the source code, even better Unless you are spending more time watching than creating, immersing your self in art can only help you.
  8. C++ derived class template D:

    Why not? Post the error message and show us the PComponent constructor and the where you’re trying to call it.
  9. Anyone going to see Bladerunner 2049 at the flicks?

    Went to see it last weekend. It's legitimately great, easily one of the best movies of 2017 and a worthy successor to the original.
  10. Crawling out of the uncanny valley

    This is quite an impressive demo. It's not 100% there yet (certainly not in motion), but this is impressively close to a photo-real face and in real time too. Would be interested to know how usable this in an actual game (i.e. is it insanely expensive to render?) Note: I have nothing to do with this, I just thought it was cool.
  11. Anyone going to see Bladerunner 2049 at the flicks?

    Definitely. I was terrified when I heard they were making this. Then I heard that Denis Villeneuve was directing and I was a little more hopeful. Now, after hearing/reading some early reviews, I am utterly psyched for this movie.
  12. Coding Guidelines

    Basically what @Bregma said. All it does is add noise. It also discourages refactoring (int iThing = GetAThing() now returns a float, now we have rename every variable). The whole lpszThisIsAString was a mistake in the first place. Initially, "Hungarian" notation was meant to encode metadata in the variable name. For example, wndX vs scnX to denote a window coordinate versus a screen coordinate. The idea was that if you see wndX = scnX // oops should be wndX = ScreenToWindow(scnX) it would look immediately wrong. But even that is no longer that useful (you could make different ScreenCoord and WindowCoord types, for example).
  13. Coding Guidelines

    Prefixing type is generally a terrible idea. Scope decoration, OTOH, can be kinda useful. Using m or _ for member variables, for example, allows differentiation between parameters and members, and also intellisense will quickly list all your members for that class. Sure, you could explicitly type "this->", but that's overkill. I'm also open to prefixing pointers with p, purely because it makes your life a tiny bit easy when you're coding (variable. vs pVariable->). But basically, pick a standard with your team, agree on it (quickly) and stick to it. Readability is key.
  14. Wolfenstein 3D Game Engine Black Book

    I hate to break it to you, but you're older than you think. Wolf 3d came out 25 years ago!
  15. Weird fears?

    Write only threads.