From User Input to Animations Using State Machines
Performing smooth animation transitions in response to user input is a complicated problem. The user can press any button at any time. You have to check that the character can do the requested move,...
View ArticleHow to Design the Data Structure for a Turn Based Game
One of the recurring questions I get is how to exactly make a turn-based game that has a coherent data structure.Because you're already great coding features for your games, all you may need is a...
View ArticleA Spin-off: CryEngine 3 SDK Checked with PVS-Studio
We have finished a large comparison of the static code analyzers Cppcheck, PVS-Studio and Visual Studio 2013's built-in analyzer. In the course of this investigation, we checked over 10 open-source...
View ArticleParticle Systems using Constrained Dynamics
Simulating physics can be fairly complex. Spatial motion (vehicles, projectiles, etc.), friction, collision, explosions, and other types of physical interactions are complicated enough to describe...
View ArticleA Rudimentary 3D Game Engine, Built with C++, OpenGL and GLSL
“What we’ve got here is failure to communicate. Some men you just can’t reach.” - The Captain, Cool Hand Luke Introduction In a way, this article is the continuation of the post I published about a...
View ArticleMath for Game Developers: Advanced Vectors
Math for Game Developers is exactly what it sounds like - a weekly instructional YouTube series wherein I show you how to use math to make your games. Every Thursday we'll learn how to implement one...
View ArticleProblems Found in Appleseed Source Code
The majority of the projects we report about in these articles contain dozens of PVS-Studio analyzer warnings. Of course we choose just a small portion of data from the analyzer report to be in our...
View ArticlePreview: Reliable UDP implementation, lockstep, LAN, and parity bit checking
IntroductionWhether you're interested in making an FPS or RTS, you've probably heard that you should use UDP. It's probably because of its speed. Using TCP with the TCP_NODELAY option (which means it...
View Article2D Transforms 101
A presentation/tutorial on 2D transforms for programmers and practitioners favouring intuition over mathematical rigour; animations are used to illustrate the effect of every transform explained. Click...
View ArticleJump Point Search: Fast A* Pathfinding for Uniform Cost Grids
In 2011, at the 25th National Conference on Artificial Intelligence. AAAI, Daniel Harabor and Alban Grastien presented their paper "Online Graph Pruning for Pathfinding on Grid Maps".This article...
View ArticleLeading the Target
Where should we aim if we want to hit a moving target with a finite-speed projectile? This is one of the recurrent questions from beginner game developers. If we naively aim at the target's current...
View ArticleCode for Game Developers: Optimization
Code for Game Developers is another take on Math for Game Developers - a weekly instructional YouTube series starting from the basics of a concept and working up towards more complex topics. In the...
View ArticleCombining Material Friction and Restitution Values
Physics simulations commonly use the Coulomb friction model, which requires a coefficent of friction between the materials of two interacting objects to calculate the friction force. Similarly, a...
View ArticleMaking Your C++ Namespace Solid and Future-Proof
This article provides a possible solution to a real problem, nothing more, nothing less. It is up to developers evaluating pros and cons to decide if this approach is worthwhile for their...
View ArticleMaintenance-free Enum to String in Pure C++ with "Better Enums"
BackgroundEnums are used in game programming to represent many different things – for example the states of a character, or the possible directions of motion: enum State {Idle, Fidget, Walk, Scan,...
View ArticleBillboarded Foliage in Unreal Engine 4
This article will guide you through how to create billboarded folage in Unreal Engine 4. That is, foliage which is a simple quad repeated many times, all of which always face the camera. I will also...
View ArticleMy Year as a Mobile Gamedev
Over a year ago I released my first Android game after a few months of working and posting my progress on wykop.pl with #odzeradogierdevelopera hashtag. with literally no prior knowledge in gamemaking,...
View ArticleCreating your first game with Game Maker: Studio
IntroductionSo you want to start creating your own games? Then you've come at the right place. This article will get you started on creating simple 2D games.Game Maker: StudioWhat is that?Game Maker:...
View ArticleNot All is Fine in the Morrowind Universe
I have checked the OpenMW project by PVS-Studio and written this tiny article. Very few bugs were found, so OpenMW team can be proud of their code.OpenMW OpenMW is an attempt to reconstruct the popular...
View ArticleBrain Dead Simple Game States
Lately, I've realized that game state management is always vastly overcomplicated. Here's a brain dead simple system that does everything you probably need in a straightforward way.Just what the heck...
View Article