Good sources to learn about the mathematics required by xenko?


#1

Hello, i’m wondering if some of you know some good sources to learn more about the mathematics operations required to properly be able to use Xenko Engine ?

Since Programming wise I have some good basics of C# and C++, but mathematics wise i tend to lack the knowledge to work with all the vector3 stuff etc for instance to rotate objects to look at an other etc

It would be really helpful if some of you know where i could learn the mathematical stuff required to work with xenko


#2

Really any google search for “3d mathematics” will get you tons of examples. Most examples for one game engine will translate to Xenko very well (especially Unity). A lot of the math is hidden from you and you don’t need to worry about it too often unless you want to implement low level features. That said it doesn’t hurt to understand what is going on, so some specific subjects to look for that are related to how Xenko does some of the magic would be:

  • Vectors and Matrices. In particular, translation, scale and rotation matrices and how they form the view from the camera based on the positions of the objects. I have this URL bookmarked from when I was teaching myself WebGL, but the concepts are universal: http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/ and another more complex url I have bookmarked: http://www.opengl-tutorial.org/assets/faq_quaternions/index.html

  • MonoGame / XNA: Xenko’s low level pieces are extremely similar to XNA (retired and replaced by MonoGame) but a lot of articles on those subjects could help for Xenko.

  • HLSL (High Level Shader Language) and Direct3D: Xenko has it’s own shader language (XKSL) but it’s build on top of HLSL (used by Direct3D) and you can use HLSL commands and features in XKSL. Sort of how TypeScript is a superset of Javascript, that’s how XKSL and HLSL relate. Most of the things you’ll do with rendering mathematics will make their way into HLSL at some point, either automatically or by custom features you make.

If you want a pretty exhaustive explanation of how game engines work, with the math involved from the most low level up (writing the math yourself, pushing data to the video card) up to modern full featured engines I highly recommend this video series. It’s for the WebGL engine BabylonJS but most of the concepts will translate to Xenko: https://mva.microsoft.com/en-US/training-courses/Introduction-to-WebGL-3D-with-HTML5-and-Babylon-js-8421?l=PjfDpUKz_4304984382

That video series got me very far and I even made some simple games using their engine. I am not trying to get you to use that engine instead, Xenko is a lot more powerful and has a lot more features (and an awesome editor) but it can be helpful with the basics.

Hope these help!


#3

Thanks for the detailled answer, i’ll take a look at it


#4

Since I wanted to improve my C++ level at the same time, do you think learning OpenGL in C++ would help me mathematics wise too ?


#5

it’s called linear algebra… there are tons of learning resources in the net. just google “3d game math” or so.