Search the Community
Showing results for tags 'strafing'.
Found 1 result
STK posted a topic in Design IdeasWhy hello there, STK here, and this is my first time posting on the forums and I'd like to start off with a little bit of background info: I used to play cod4 a lot at decently high level, played cod2 and quake live a little bit, and most recently I've been playing overwatch at tier 2 level. Next to that I've been programming for about 5 years, mostly with game development in mind, and currently I'm studying "Creative Media and Game Technologies" at HKU in Utrecht, The Netherlands. Back in the days of cod4 I used to play smg for our team, and I absolutely LOVED the movement in that game. The movement in cod4 was the one thing that seperated promod from other shitty FPS games, and the fact that it took thousands of hours to master its movement was an extremely competitive and fun factor. After years of playing other games and occasionally playing .wars in cod4, Battalion 1944 finally arrives, and it is truly the game I've been waiting for. I love it so far. But that doesn't mean its perfect, and I mainly wanna focus on the movement in this game; strafing. Today, phantasy uploaded the video "Battalion 1944 - Strafe Jumping Tutorial", and in it he mentioned how the strafing is fundamentally different from quake engine based games, because battalion uses unreal engine, and therefore CANNOT have the same movement. This is absolute bullshit, the game's programmers should know this, and I'm here to explain why and how it could in fact be implemented. Since I've always loved strafing in games, I have done some research on the topic. There are a lot of different places on the internet where the mechanic gets described, but the most useful source of information has to come from the id software's github itself (https://github.com/id-Software). If anyone is interested in how it really works on a mathematical level, I'd be happy to explain, but I wont put that in this post just yet. When you go to the github, and more specifically to the quake 2 section, you can find a file named "pmove.c" (https://github.com/id-Software/Quake-2/blob/master/qcommon/pmove.c) this file contains all the character movement code of the engine, and its full of some great examples of code. When you scroll down to the function "PM_Accelerate", you see a function of just 15 lines long. Since movement is done by applying forces to the character in different directions, there has to be a function that limits and controls this kind of behavior. "PM_Accelerate" limits the amount of acceleration that occurs when pressing a specific directional key (WASD), and just this function alone creates the "bug" of air strafing. Again, quake-like strafing is not an "engine specific bug", but in fact some wonky vector math in the air control function. This CAN be implemented in different engines, and I have even done so. The following link is a demo i created of quake-like strafing done in unity: https://drive.google.com/file/d/19RcjAQmE33GCcfS-Pm3pWNDE6HxfmEDo/view?usp=sharing If the devs want help with implementing this feature, I would be honored, but please at least just look at the code, because I would KILL for real strafing in Battalion, and its frustrating to keep hearing its impossible when a noob dev like me can even implement it. That's it, -STK