MBM Documentation Release 3.1.F
Total Page:16
File Type:pdf, Size:1020Kb
MBM Documentation Release 3.1.f Michel Jul 03, 2021 Contents: 1 Mbm Engine 3 1.1 Another Game Engine!..........................................3 1.2 Which version should I get?.......................................4 1.3 Looking for binary?...........................................4 1.4 Main Libraries And Status........................................4 1.5 Games made with mbm.........................................5 1.6 Quick start guide.............................................7 2 Scene 35 2.1 Main Scene’s flow............................................ 35 2.2 Scene’s functions............................................. 36 2.3 Example of Scene............................................ 38 2.4 Example of Scene class style....................................... 39 2.5 Example of Scene using coroutine.................................... 40 3 Table mbm 45 3.1 World................................................... 46 3.2 mbm................................................... 54 3.3 Texture.................................................. 69 3.4 Shader.................................................. 73 3.5 Miniz................................................... 77 3.6 Aes.................................................... 78 3.7 Useful.................................................. 79 3.8 Android.................................................. 84 4 Table camera 87 4.1 Camera 2D methods........................................... 87 4.2 Camera 2D attributes........................................... 90 4.3 Camera 3D methods........................................... 91 4.4 Camera 3D attributes........................................... 96 4.5 User data acknowledgment........................................ 97 5 Table font 99 5.1 font methods............................................... 99 5.2 font methods with editor features.................................... 102 5.3 Creating a font programmatically.................................... 105 i 6 Table gif 109 6.1 gif methods................................................ 109 7 Table line 113 7.1 line methods............................................... 113 7.2 line shader................................................ 119 8 Table mesh 123 8.1 mesh methods.............................................. 123 8.2 Creating a mesh programmatically.................................... 124 8.3 Importing mesh.............................................. 130 9 Table meshDebug 133 9.1 Primitive options............................................. 133 9.2 static methods.............................................. 137 9.3 meshDebug methods........................................... 139 10 Table particle 169 10.1 particle methods............................................. 169 10.2 particle attributes............................................. 186 10.3 Creating particle programmatically................................... 187 10.4 Saving particle to a binary file...................................... 190 11 Table render2texture 193 11.1 render2texture methods......................................... 193 12 Table renderizable 203 12.1 Renderizable methods.......................................... 203 12.2 Blending................................................. 213 12.3 Animation................................................ 216 12.4 Physics.................................................. 224 12.5 Renderizable attributes.......................................... 225 12.6 User data acknowledgment........................................ 227 13 Table shader 231 13.1 shader methods.............................................. 231 13.2 pixel shader................................................ 252 13.3 vertex shader............................................... 304 14 Table shape 307 14.1 shape methods.............................................. 307 15 Table sprite 317 15.1 sprite methods.............................................. 317 15.2 Creating a sprite programmatically................................... 318 16 Table text 331 16.1 text methods............................................... 331 16.2 text attributes............................................... 333 16.3 Creating a text programmatically.................................... 333 17 Table texture 335 17.1 texture methods............................................. 335 17.2 Creating a texture programmatically................................... 336 ii 18 Table tile 339 18.1 tile map definitions............................................ 339 18.2 tile methods............................................... 341 18.3 tile object................................................. 351 19 Table timer 353 19.1 timer callback signature......................................... 353 19.2 timer methods.............................................. 353 19.3 timer attributes.............................................. 357 19.4 User data acknowledgment........................................ 357 20 Table vec2 359 20.1 vec2 methods............................................... 359 20.2 vec2 attributes.............................................. 370 20.3 User data acknowledgment........................................ 370 21 Table vec3 373 21.1 vec3 methods............................................... 373 21.2 vec3 attributes.............................................. 383 21.3 User data acknowledgment........................................ 383 22 Table audio 385 22.1 audio Methods.............................................. 385 23 Editors 389 23.1 File Format................................................ 389 23.2 Sprite Maker............................................... 389 23.3 Font Maker................................................ 390 23.4 Particle Editor.............................................. 395 23.5 Physic Editor............................................... 396 23.6 Shader Editor............................................... 399 23.7 Scene Editor............................................... 400 23.8 Asset Packager.............................................. 406 23.9 Tile Map Editor............................................. 406 23.10 Texture Packer Editor.......................................... 409 24 Modules 413 24.1 What is a Module?............................................ 413 24.2 Parsing OBJ wavefront.......................................... 414 25 Module box2d 421 25.1 box2d Methods.............................................. 422 25.2 box2d Body............................................... 436 25.3 box2d Joint................................................ 458 26 Module ImGui 499 26.1 Begin / End methods........................................... 499 26.2 Calc methods............................................... 512 26.3 Capture methods............................................. 513 26.4 Color methods.............................................. 514 26.5 CreateContext.............................................. 516 26.6 DestroyContext.............................................. 516 26.7 Flag / Enum............................................... 516 26.8 General methods............................................. 525 26.9 Get methods............................................... 527 iii 26.10 ImDrawList................................................ 542 26.11 Is methods................................................ 563 26.12 Save / Load methods........................................... 574 26.13 Log methods............................................... 575 26.14 NewFrame / EndFrame.......................................... 577 26.15 Open / Close methods.......................................... 577 26.16 Pop methods............................................... 578 26.17 Push methods............................................... 580 26.18 Render.................................................. 583 26.19 Set methods............................................... 583 26.20 Show methods.............................................. 594 26.21 Style methods.............................................. 596 26.22 Text methods............................................... 602 26.23 Widgets.................................................. 603 27 Module lsqlite3 651 27.1 Asset................................................... 651 27.2 Editor................................................... 656 27.3 Examples................................................. 656 28 Indices and tables 659 Index 661 iv MBM Documentation, Release 3.1.f Table of Contents • Mbm Engine – Another Game Engine! – Which version should I get? – Looking for binary? – Main Libraries And Status – Games made with mbm * Tower defense * Space ship combat * Puzzle from photos – Quick start guide * Getting the source code * Build for Windows * Binary for Windows * Build for Linux * Build for Android * Binary for Android * Command line usage Contents: 1 MBM Documentation, Release 3.1.f 2 Contents: CHAPTER 1 Mbm Engine MBM is a given name to a graphics engine which provides basic and essential resources to develop games or graphics applications 2D or 3D. For now, is possible to develop games for Windows , Linux , and Android . The intention is to provide the minimum necessary for game development or graphics application using minimal dependencies. The engine is written in C++11 language using OpenGL-ES on its core and LUA as a scripting language. Note: Although there is an effort to migrate the whole project to C++11 still there is a lot of mixedC code and maybe is not the best