Jump to content
  • Advertisement

KulSeran

Member
  • Content Count

    2424
  • Joined

  • Last visited

Community Reputation

3272 Excellent

About KulSeran

  • Rank
    Contributor

Personal Information

  1. XMVector3Dot returns a 4 component vector with all components set to the dot product value. In order to get a float, you must call XMVectorGet(X/Y/Z/W) in order to extract a single float value from the vector.
  2. KulSeran

    "Every single pixel is simulated"

    It looks like a cross between a lot of tech. 1) coarse fluid simulation layer to provide forces which push loose things around with (like say, Plasma Pong) 2) per-pixel simulation like any "Falling Sand Game" (eg. https://sandspiel.club/) 3) regular particle engine for some effects. 4) possibly some coarse particle-fluid simulation similar to pixeljunk shooter
  3. You need to write out `map::example::Vertex * lastRobotPos`, if Vertex is in a different namespace from where you're trying to use it. However, for your robot, it seems strange that you'd want to have a pointer there. `#include "Vertex.h"` or whatever the correct header is seems more appropriate here.
  4. Firstly, you can forward declare types, when you're dealing with pointer-type members or reference type members. Secondly, because you can forward declare types, an often followed pattern is the "pImpl" pattern, where in your header looks like the following: class Impl; class Bar { private: std::shared_ptr<Impl> m_pImpl; }; And your .cpp file is where you actually define the `Impl` type. Lastly, you shouldn't be having issues with your #includes missing as you describe. If you are, then there's something else wrong with your project setup.
  5. KulSeran

    Aiming turret (math question)

    You shouldn't need the angles, if you can set the joint's matrix. I'll label your matricies from the base to the barrel as: A (base), B(joint), C(barrel base), D(barrel end) Firstly, you have a target to find, relative to your joint: target_dir = normalize(target_pos - B.pos()) Secondly, your barrel is offset from the joint: offset = D * inv(B) Thirdly, you need to apply that offset to get the correct position, which means rotating your turret into the same plane as the target and applying the inverse of the offset to the target position. offset_pos = target_pos * look_at(target_dir) * inv(offset) Lastly, you have your corrected target position, so you can look at it relative to world space, and multiply by your turret's bind pose to get B in the correct spot. B = look_at(normalize(offset_pos - joint_pos)) * joint_bind_matrix Where "look_at" if your library doesn't define it is basically building a matrix from a guess of the "up" direction combined with your desired "at" direction: look_at(dir) { left = cross(up_guess, dir); up = cross(dir, left); return [at, up, left, zero_vec]; } However, if you do actually need the angle, you can extract them from that final matrix's `at` vector.
  6. Man I just want to say how much I appreciate the help you have given me. I am more of an ask questions hear explanations learner than a read once and understand learner. Great job explaining how peices work. Thanks a ton!!
    ~coderwalker
  7. KulSeran

    Windows Installer is Terrible

    Now, I've never had to make any installers for my applications yet. But I've been doing a lot of work in linux, and the install process itself is a breeze compared to the windows installer. With linux, I love that I can type "apt-get install foo" and get a streamlined process. I usually have one prompt of a "are you sure?" type, and then the only real time consuming part of the install is that it downloads everything fresh from the internet (using a package disk tends to be faster). One command, one "yes/no?" question, and within seconds I can be done with the install. What a backwards feel the windows installer has after that.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net 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!