Game Engine streaming of "unlimited" sized worlds automatic loading, unloading, updating and rendering of terrain and objects objects with custom class and set of parameters instant pathfinding even between distant areas built in classes for objects: static doors items characters
Animation System skeletal keyframed (target orientation, relative rotation, position offset) multiple animation blending intelligent camera distance based facial animation support events highly compatible (one animation works on all meshes with similar skeletons) creating animations in Mesh Editor tool importing animations from external formats
Camera custom cameras (including Fpp, Tpp, Isometric, Static) camera effects - quake, dizzyness automatic frustum culling
Geometry calculating surface area, volume, distance between, multiple transform operations (moving, rotating, scaling, transforming by matrix), basic collision detection, drawing of: plane point (2d/3d) edge (2d/3d) triangle (2d/3d) quad (2d/3d) rectangle box oriented box circle sphere capsule tube torus cone pyramid
Graphics color rgb, hsb (hue, saturation, brightness), opacity, inverse, adding, lerping screen color transformations gamma calibration 4:3, 5:4, 16:9, 16:10 or custom screen aspect support shader model 2.0, 3.0 supported vertex buffering for simple graphics drawing (images, gui elements, geometry objects, ...) alpha blending, testing synchronization, windowed / fullscreen screenshot taking custom font creation font drawing with shadows point, directional, cone lights dynamic light maps occlusion query support particle system (based on a single shape, or animated skeleton) viewports, rendertargets (with support of high precision formats) smooth fading between screens 2d effects - subtitles, ripple, fade using fade texture
GUI custom GUI with support of - button, checkbox, combobox, context menu, desktop, custom element, image, menu, tabs, text, viewport, list, progress bar, region, slidebar, slider, textline, window, window IO (file/dir selection) description of elements (tooltips) message boxes skin changing
Input keyboard, mouse, joypads detecting key states, key pushes, key releases, key double clicks, and key combos mouse rectangle clipping, driver disabling, hardware pointer
IO reading & writing - binary, text, xml files accessing files in memory, on disk, or file inside another file wth data encryption detecting file / directory information, file / directory searching, file / directory creating / deleting, operating on all files inside directory data packing to one big PAK file (keeps directories structure, automatically sorts files for faster accessing) drives detection (hdd, cd)
Mathematics math operations - minimum, maximum, average, abs, saturate, sign, trunc, round, ceil, floor, frac, align, sqr, cube, sqrt, cbrt, pow, ln, log2, sin, cos, sincos, tan, ctan, acos, asin, atan, angle, linear interpolation, hermite interpolation, power interpolation, 4-values interpolation, equation solving of 0th, 1st, 2nd and 3rd degree vector (2d, 3d, 4d float & int) operations - add, subtract, multiply, divide, change sign, abs, minimum component, maximum component, minimum index, maximum index, normalize, length, length^2, set length, dot product, cross product, perpendicular, comparing, epsilon comparing, matrix transforming matrix (3x3, 4x3, 4x4) operations - moving, scaling, rotating, multiplying, inversion, from quaternion quaternion - adding, scaling, multiplying, inversing, rotating, calculating angle and axis of rotation, conversion from and to matrix 512-bit precision integer / float operations - add, sub, mul, div, mod, sqr, sqrt calculator function (calculates given strings for example "sin(2*x) + dot(vec(1,2,3),vec(4,5,6)) + 15*(1+2*pow(x,y))" to int, float or vectors)
Mesh vertexes (position, normal, tangent, binormal, tex0, tex1, matrix index, blend weights, size, color, duplicate index) edges (vertex index, adjacent face, normal, flag, id) triangles (vertex index, adjacent face, adjacent edge, normal, flag, id) quads (vertex index, adjacent face, adjacent edge, normal, flag, id) automatic uv mapping transforming (moving, scaling, matrix transforming), reversing, mirroring correct normal, tangent, binormal calculation vertex welding, edge welding, edge subdividing, face subdividing joining, spliting, duplicating linking vertex->vertex neighbour, vertex->edge, edge->face, rectangle->edge convert triangle to quads, quads to triangles, edges to polygons logical operations on 2d / 3d meshes (or, and, xor, sub..) - BETA add/remove vertex / edge / triangle / quad optimize (remove inline vertexes, faces, vertex cache) level of detail (lod) binary / text custom format importing 3ds, ase, obj, wrl, x, xml (OgreXml, IGame/3dxi) creating meshes out of geometry shapes
Memory zero, copy, is copy, list copy, set byte value, comparing, swapping, copy aligned data (8to32, 16to32, 24to32, 32to8, 32to16, 32to24), encrypting, decrypting, allocating, reallocating memory containers working on any defined structure (list based, block based) cache for storing dynamic loaded data (meshes, materials, textures, animations, skeletons or any custom data) with name sort for faster access times, and ability to load files in local or global path memory leaks detection
Miscellaneous game config file support cpu detection (mmx, 3dnow, sse, sse2, sse3, number of cores) state manager custom randomizing unit creating random ints, floats, probability correct vector directions, points (on surface or inside) sphere, box, capsule, tube, edge, circle, rectangle. log file support clipboard get / set text values detecting system language custom string operations (case up, case down, add, length, compare, path compare, starts with, contains, contains words, replace, get extension, get not extension, get path, get base name, get start, get not start, string<->int, string<->binary, string<->hex, string<->real, string<->vector) timer support - frame time, current time, frames per second date & time operations - differences between 2 dates in seconds, seconds from 1 Jan 0 AD 00:00:00 (leap years support included) OS windows minimize, maximize, activate, move, get parent, get focused drag & drop support with custom provided function data de/compression sorting custom structures with custom comparing function
Network downloading file from url address UDP socket based peer-to-peer connection
Physics rigid body collision detection rag dolls character controllers vehicles actors - sphere, capsule, box, oriented box, convex, triangle based (static only) joints - fixed, hinge, spherical, slider, breakables calculating actor position, matrix, velocity, angular velocity, energy, mass, damping actor groups and user data holding and dragging actors
Shaders flat, normal, parallax, relief bump mapping light blooming glow hdr + eye adaptation motion blur depth of field per pixel lighting stencil shadows shadow mapping hardware shadow mapping soft shadows volumetric lighting volumetric clouds ambient occlusion sub-surface scattering early z soft particles markers grass fire water fur fog sun sky
Sound 1D / 3D, streamed wav / ogg, from file or memory custom volume groups (sound fx, voice, music, ambient, global) music and ambient systems play random tracks from given theme (set of tracks), with crossfading support
Textures anisotropic filtering, mip-mapping formats supported L8, A8, A8L8, X8R8G8B8, A8R8G8B8, DXT3, DXT5, ... modes supported 2d, 3d, cube, software color, normal, bump, specular, glow, alpha, detail, reflection maps texture lock, unlock, crop, blur, average, sharpen, normalize, downsample, normal downsample, pixel set / get bump to normal map conversion optimized texture compression importing bmp, png, jpg, tga, dds
Threading process management simplified threading separate threads for game updating, physics calculating, rendering, sound processing |