If you write your script to be universal and translation-ready you will already have created a script with strong foundations. Not world-specific, not unit-based specific (for example a script that only works on archer worlds but does not work on non-archer worlds). When working on a new script, try to make that script as universal as possible. is that worth it? Do we need a script to bring us to HQ and then another script to bring us to the Barracks? If instead, you are trying to "automate" 2 clicks. is this script worth it?ĭigitalization of a process (a.k.a script) is valid when you want to "automate" some complex/hard/repetitive task (for example sending resources from village to village, filling unit fields on rally point, etc). If it gains very little, like for example a script that redirects the player to HQ no matter where you are. Whenever you start working on a script think about what the player will gain from this script. So consider these suggestions as an open and fair discussion between developers, on how to improve scripts, instead of hard rules on how to write scripts. I will try to make my case to support those suggestions on each specific point as better as I can but you are not forced nor will you be denied script approval (if your script deserves to be approved) if it does not fit any of the suggestions below. You are not enforced to follow the suggestions mentioned below. So I will start by linking the official script rules and approval procedure:Įvery rule that is mentioned on the link above needs to be followed.Īll that comes below are only recommendationsbased on personal experience as a scripts author, they do not represent Tribal Wars official policy regarding scripts and scripting. I haven't personally written quaternion camera code (yet!) but I'm sure the internet contains many examples and longer explanations you can work from.In this article, I will share my own experience writing and maintaining Tribal Wars scripts. It is very common for general purpose game engines to use quaternions for describing objects' rotations. Quaternions are used somewhat like rotation matrices, but have fewer components you'll multiply quaternions by quaternions to apply player input, and convert quaternions to matrices to render with. Instead, you should represent your camera/player orientation as a quaternion, a mathematical structure that is good for representing arbitrary rotations. However, this approach (“Euler angles”) is both tricky to compute with and has numerical stability issues (“gimbal lock”). The minimal solution to this is to add a roll component to your camera state. As a consequence, no matter how you implement the controls, you will find that in some orientations the camera rolls strangely, because the effect of trying to do the math with this information is that every frame the roll is picked/reconstructed based on the pitch and yaw. Two numbers can represent a look-direction vector but they cannot represent the third component of camera orientation, called roll (rotation about the “depth” axis of the screen). The problem is that two numbers, pitch and yaw, provide insufficient degrees of freedom to represent consistent free rotation behavior in space without any “horizon”.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |