# Prerequisities for Roomle Content Scripters

This document sums up recommended skills and prerequisities for scripting Roomle content (= writing component definitions). Note, that a lack in some of these skills does not mean you can't be a good scripter!

# Programming skills

  • ability to design and implement algorithms
  • a feeling for object oriented programming (components act as objects, including inter-component data interactions)
  • knowledge of any specific API not required
  • basic programming consturctions (variables, expressions, conditions, loops, arrays)
  • code versioning, preferably using Git
  • ability to write understandable and maintainable high quality code, that follows good practices

# 3D graphics basics

This theoretical knowledge is not essential for scripting Roomle content, but are highly recommended and advantageous to study eventually:

  • RGB color space
  • textures
  • normal maps
  • shader values: roughness, metallicity, alpha, etc.
  • primitives, meshes, sketches, extrusion
    • vertices, triangles, normals, UVs
  • transformations: movement, rotation

# Other non-mandatory, but advantegeous skills

  • communicative knowledge of English (we have most documents and task descriptions in English, we also communicate in English or German)
    • comments and ids should be unviversally written in English
  • it is an advantage to understand products' origin language (to understand manufacturer's drawings, catalogues etc.)
    • the most common language of produced configurator outside of English is German
  • 3D vector algebra
    • position and normal vectors
    • transformations
    • coordinate systems
  • CAD, construction, engineering
    • to understand and be able to measure in drawings, CAD models etc.
  • 3D game engines
    • experience in 3D game development - Unity3D, Unreal etc.
    • because there you also bring 3D graphics to live 😃