BooBoo

From CMYKilluminatiNetwork Wiki
Revision as of 11:36, 20 October 2024 by Tremblin (talk | contribs) (Game Library)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Booboologo2x.png

About[edit]

BooBoo is a mini language that shares some DNA with assembly language but is much higher level. It includes two versions, one command line only version and one with a builtin, powerful game API.

Syntax[edit]

BooBoo uses Polish notation for syntax. That means the operation comes first instead of in the middle. e.g. + x 1 increments x.

Modelling[edit]

The DirectX .x exporter here: Codeberg link can be used with Blender 2.78 to export compatible models until a exporter is developed for new Blender versions. You should set it to a right handed matrix when exporting in the options, as well as make sure everything you want exported is checked.

Builtin vs. BooBoo functions[edit]

BooBoo functions can't accept variable number of arguments (unless you use vectors.) They can now modify their inputs using references (~) but that wasn't always a feature.

Engine[edit]

The game engine is built on Shim. A few things in the command line version also use parts of Shim for convenience. libutil in Shim has been separated out so the command line version doesn't have any dependencies on SDL/etc.

DirectX[edit]

Shim does not use D3DX which hosts the shader compiler. Instead, you need to pre-pack your HLSL shaders with pack_shader.exe. You need the DirectX 9 SDK installed and run pack_shader from the D3D9 SDK command prompt.

Demo Games[edit]

The demo games are:

  • CoinHunt
  • DOOMED
  • RAINRUNNER

In addition to the simpler examples. There are also some mini-games like Pong and Robots in the slideshow example.

Game Library[edit]

The documenatation has the following sections, which describe the different major areas the library supports aside from core BooBoo functionality

  • Core
  • Graphics
  • Primitives
  • Image
  • Sprite
  • Font
  • Tilemap
  • Shader
  • 3D
  • GUI
  • Collision Detection
  • Audio
  • Input
  • JSON
  • Configuration