Randy Gaul
Hello! I am a Computer Science student studying at DigiPen IT. You can find more content by myself at RandyGaul.net!
  • Game Development
    How to Dynamically Slice a Convex ShapeDynamically cutting shapes fruit ninja style 400px
    The ability to dynamically split a convex shape into two separate shapes is a very valuable skill or tool to have in your gamedev arsenal. This splitting allows for advanced types of simulation, such as binary space partitions for graphics or physics, dynamically destructive environments (brittle fracturing!), ocean or water simulation, collision resolution for physics engines, binary spatial partioning, and the list just goes on. One great example is the game Fruit Ninja for Kinect.Read More…
  • Game Development
    Spaces: Useful Game Object ContainersSpaces preview400
    The whole point of a space is to hold game objects. The game objects in one space should not have any way to communicate with the game objects in another space, so spaces provide a simple means to separate different groups of game objects. In this article, you'll learn the benefits of such an architecture.Read More…
  • Game Development
    Modelling and Solving Physical ConstraintsModelling solving physical constraints 400px
    A constraint is a restriction upon a physically modeled object within a simulation. In general, an object starts with six degrees of freedom, representing its ability to move about and rotate within the simulated world; by restricting these degrees of freedom in various ways, we can achieve many interesting and appealing effects.Read More…
  • Game Development
    Understanding Sutherland-Hodgman Clipping for Physics EnginesShclippreview400x400
    Clipping is the process of determining what region of space is within another region of space. This is especially important in areas of study such as computer graphics and physics simulation. For instance, when rendering a world to the screen it is best to know what will be on the screen before processing any data. This allows lots of extraneous data to be ignored, while only processing and presenting what will be seen by the user.Read More…
  • Game Development
    The Action List Data Structure: Good for UI, AI, Animations, and MoreActionlistpreview1
    The action list is a simple data structure useful for many various tasks within a game engine. One could argue that the action list should always be used in lieu of some form of state machine.Read More…
  • Game Development
    How to Create a Custom 2D Physics Engine: Oriented Rigid BodiesCustom physics logo
    So far, we've covered impulse resolution, the core architecture, and friction. In this, the final tutorial in this series, we'll go over a very interesting topic: orientation.Read More…
  • Game Development
    How to Create a Custom 2D Physics Engine: Friction, Scene and Jump TableCustom physics logo
    In the first two tutorials in this series, I covered the topics of Impulse Resolution and Core Architecture. Now it's time to add on some of the final touches to our 2D, impulse-based physics engine.Read More…
  • Game Development
    How to Create a Custom 2D Physics Engine: The Core EngineCustom physics logo
    In this part of my series on creating a custom 2D physics engine for your games, we'll add more features to the impulse resolution we got working in the first part. In particular, we'll look at integration, timestepping, using a modular design for our code, and broad phase collision detection.Read More…
  • Game Development
    How to Create a Custom 2D Physics Engine: The Basics and Impulse ResolutionCustom physics logo
    There are many reasons you might want to create a custom physics engine: first, learning and honing your skills in mathematics, physics and programming are great reasons to attempt such a project; second, a custom physics engine can tackle any sort of technical effect the creator has the skill to create. In this article I would like to provide a solid introduction on how to create a custom physics engine entirely from scratch.Read More…