Skip to main content

Changelog

WhatVersion is1.0.2 Pragma?[wip]

patreon_logo32.png

Filmmaker youtube_social_square_red32.png Twitter_Social_Icon_Square_Color32.png Artboard-1_32.png Discord-Logo-Color.pngv0.4.3

Pragma is a free, open source custom game engine written in C++. Here is an overview over some of its core features:LuxCoreRender

  • SupportAdded volumetric lighting options
Added subdivision options for materials Added option for enabling PhotonGI cache

 

Lua
  • Added CompositeComponent:GetEntities, :GetRootGroup, :AddChildGroup, :GetChildGroups

 

Version 1.0.1 [2021-06-22]

Filmmaker v0.4.2
  • Improve retargeting performance
Fix various retargeting issues General retargeting improvements Update default material hair settings

 

Engine
  • Added updated Lua documentation and ZeroBrane configuration files
Updated "lua_help" documentation database Added "TF2" and "HL1" demo gamemodes Fixed random crashes on some hardware
Fixed issue where game could freeze permanently during shutdown Fixed Lua JIT-Compiler not being enabled Fixed importing glTF models saving material files in wrong location Fixed exporting maps not working in some cases when the map name has a "." in the name Fixed crash on startup with certain launch parameters Fixed automatic asset reloading on asset file change not working Fixed issue where Steam locations wouldn't get mounted properly on new Steam installations Added additional crash dump debug information Transitioned AI-nav file-format to UDM system Transitioned Lua documentation file-format to UDM system

 

Lua
  • Added Skeleton:IsRootBone string parameter overload
Added Skeleton:GetBoneHierarchy Added phys.Transform.IDENTITY, :GetAngles, :SetAngles, :GetForward, :GetRight, :GetUp, .x, .y, .z, .pitch, .yaw, .roll, phys.ScaledTransform.IDENTITY Added CompositeComponent:ClearEntities Add EVENT_UPDATE_BONE_POSES and EVENT_ON_BONE_POSES_FINALIZED animated component events Added table.copy Added engine.library_exists Added ents.PlayerComponent:SetFlashlightEnabled, :ToggleFlashlight, :IsFlashlightEnabled General LuaDoc improvements

 

Version 0.9.15 [2021-05-30]

Filmmaker v0.4.1
  • Added console commands: pfm_max_fps, pfm_asset_icon_size
Added bone visualization to retarget editor Retarget rigs can now be auto-generated from existing rigs if a match can be found Various retargeting improvements Fixed "hair" settings in material editor not working Fixed PFM not showing up in new game menu Fixed material editor and explorer not working properly

 

Engine
  • Added console commands: udm_validate, asset_clear_unused, asset_clear_unused_textures, asset_clear_unused_models, asset_clear_unused_materials, cache_version_target, loc_reload
Added launch option: -audio_api <audioApi> Added game mount priority options Physics engine can now be toggled between PhysX and Bullet Bullet is now the default physics engine Audio engine is now implemented as a module (can be changed in options) Assets are now automatically cleared from memory when not in use Transition particle system format to UDM Fixed entities appearing invisible in some cases Fixed various character animation issues Fixed character eyes not working correctly if entity is scaled Fixed issue where models with a "." in the name could not get imported properly Fixed maps not being rendered if map was compiled without BSP Fixed crash when generating reflection probes Fixed crash when loading map with invalid world model Fixed various crash instances Fixed various shader/rendering issues

 

Lua
  • Added debug.beep and debug.print
Added phys.CollisionObject:SetAlwaysAwake, :IsAlwaysAwake Added math.map_value_to_fraction and math.map_value_to_range Added locale.set_text Added composite and animated2 entity components Added util.DirectoryChangeListener class Added animation.Channel, .Slice, .Animation2, .Pose, .Player classes Added ents.Entity:SetUuid Added ents.RenderComponent:GetRenderModeProperty Added ents.EyeComponent:GetEyePose Added udm.PropertyWrapper:GetChildCount, :HasValue and :ToAscii Added ents.AnimatedComponent:GetLayeredAnimations, :ApplyLayeredAnimations Added game.Model.Animation:GetBoneId Added ents.IteratorFilterModel Added asset.delete, .determine_type_from_extension, .get_legacy_extension, .get_binary_udm_extension, .get_ascii_udm_extension, .determine_format_from_data, .determine_format_from_filename, .matches, .relative_path_to_absolute_path, .absolute_path_to_relative_path, .get_udm_format_extension, .get_asset_root_directory, .exists, .find_file, .is_loaded
Added file.find_absolute_path Added new overload for file.remove_file_extension with parameter to specify which extensions to remove Added udm.AssetData:SetData Added gui.find_focused_window, gui.get_primary_window, gui.find_window_under_cursor, gui.get_base_elements, gui.add_base_element Added gui.Element:GetRootElement, :GetRootWindow Added shader.BasePbr base class Added prosper.create_window, prosper.WindowCreateInfo and prosper.Window classes Fixed ents.Entity:SetEnabled Lua binding not behaving correctly in certain cases Scripts loaded with lua_exec and lua_exec_cl now auto reload when changed (Unless"nocache" argument is set) util.register_class now defines a default constructor and tostring method util.register_class now returns class object (or nil) instead of boolean

 

Version 0.9.14 [21-04-16]

Filmmaker
  • Added animation and flex retargeting system
Transform widget can now be toggled between world/local/view space Added basic posing and animating capabilities Improved hair rendering quality with LuxCoreRender Added hair configuration options to material editor Added live raytracing preview
Engine
  • Added "util_export_asset" option to export assets to Source Engine andmodel/material/texture Sourceformat 2with assets,optional suchfake as:pbr maps,conversion
models,Transitioned materials,asset textures,file sound-scriptformats filesto UDM system Added console commands: "udm_convert", "save", "crash", "debug_render_memory_budget" and particle systems"debug_render_memory_stats" ExtensiveExporting moddingmodel with glTF exporter now includes additional UV sets (such as lightmap UVs) Fixed rare random deadlock issue Added entity UUIDs to uniquely identify entities Added additional crash dump debug information
Lua
  • Added asset.get_supported_extensions, asset.export_texture_as_vtf, asset.TYPE_MAP
Added ents.GetUuid, ents.AttachableComponent:GetBone Added Quaternion:Distance Added class ents.IteratorFilterUuid Added udm library Added game.get_material Added util.BSPTree.Node:GetIndex Added game.Material:Reset Added game.Model.Animation.Load, game.Model.FlexAnimation.Load Added game.Model.Mesh.Sub:Copy Added game.Model.Animation:GetBoneId Added game.Model.Eyeball:GetUpperLidFlexIndices, :GetUpperLidFlexAngles, :GetLowerLidFlexIndices, :GetLowerLidFlexAngles, :GetUpperLidFlexIndex and :GetLowerLidFlexIndex Added game.Model.FCOPY_BIT_FLEX_ANIMATIONS flag Added ents.ModelComponent:GetBodyGroups, :SetBodyGroups Added ents.AnimatedComponent:GetBaseAnimationFlags, :SetBaseAnimationFlags, :GetLayeredAnimationFlags, :SetLayeredAnimationFlags, ents.AnimatedComponent:SetAnimatedRootPoseTransformEnabled, :IsAnimatedRootPoseTransformEnabled, :AddRootPoseBone, :SetRootPoseBoneId, :GetRootPoseBoneId and ents.AnimatedComponent.FPLAYANIM_LOOP Added ents.LightComponent:SetMorphTargetsInShadowsEnabled, :AreMorphTargetsInShadowsEnabled, .BakeSettings.globalLightIntensityFactor and .import_lightmap_atlas Added ents.ReflectionProbeComponent:GetIBLMaterialFilePath, :CaptureIBLReflectionsFromScene and :RequiresRebuild Added prosper.ImageCreateInfo:FLAG_ALLOCATE_DISCRETE_MEMORY_BIT, FLAG_DONT_ALLOCATE_MEMORY_BIT, FLAG_SRGB_BIT, FLAG_NORMAL_MAP_BIT Added prosper.Image:IsSrgb, :IsNormalMap, :SetSrgb, :SetNormalMap and :Convert Added prosper.Mesh:ClearBuffers Added ents.LightMapComponent:SetLightmapAtlas Added ents.RenderComponent:ClearBuffers Removed game.Model.Eyeball:GetUpperFlexDesc, :GetLowerFlexDesc, :GetUpperTarget, :GetLowerTarget, .lowerLidFlexDesc and .upperLidFlexDesc

 

Version 0.9.13 [2021-03-14]

Filmmaker
  • Fully integrated LuxCoreRender
Added support for transparent backgrounds/skies when rendering with LuaLuxCoreRender Added new render tool commands (withLuxCoreRender Live-coding,only): debugging-support
  • preview: Creates a preview image of what's been rendered so far and opens it in the default image program
pause: Pauses the current render resume: Resumes the current render stop: Stops the render and uses what's been rendered so far to generate the final image suspend: Creates a .rsm-file, which can be used to continue the render at a later date export: Exports the entire scene in a LuxCoreRender format (including models and textures), which can be used to render it with the ZeroBranestandalone IDELuxCoreRender program Fixed issue where importing textures via drag-and-drop would not generate mipmaps
Engine
Morph targets now affect shadows Increased bone limit from 512 to 1024 Added console commands "strip_weapons" and "cl_render_frustum_culling_enabled" Reduced number of entities with unnecessary tick/logic events to improve performance Characters now blink if no eyeballs are defined in the model, but blink flex controllers exist Added UDM data format for unifying asset file formats Fixed issue where viewmodel entities would use incorrect field of view Fixed viewmodel not appearing in some cases if viewmodel was changed after weapon was deployed Changed entity component net event system so net events no longer have to be registered on the server before they are registered on the client Merged cengine with client library and engine with shared
Lua
  • Removed gamemode system and replaced it with gamemode entity components
    • Allows changing gamemodes on the fly, as well as running multiple different gamemodes at the same time
Added "player" and "gamemode" entity component types (and sub-directories) All entity components can now have individual tick/logic events instead of relying on the logic component Added udm library for loading/saving/working with udm assets Added ents.ModelComponent:GetBodyGroups and :SetBodyGroups Added math.Quaternion:Distance Added ents.PhysicsComponent:EnableCollisions, :DisableCollisions, :SetCollisionsEnabled, :SetSimulationEnabled and :IsSimulationEnabled Added ents.CharacterComponent:SetMoveController and :GetMoveController Added util.DataStream:WriteVertex, :ReadVertex Added Vector:GetYaw and :GetPitch Added util.generate_uuid_v4 Added ents.register_component_net_event Added ents.AttachableComponent.FATTACHMENT_MODE_FORCE_TRANSLATION_IN_PLACE, FATTACHMENT_MODE_FORCE_ROTATION_IN_PLACE and FATTACHMENT_MODE_FORCE_IN_PLACE

 

Version 0.9.12 [2021-02-08]

Filmmaker
  • Added support for customrendering shaders,with custom entities/weapons/NPCs/vehicles, etc)LuxCoreRender
  • SupportAdded forfur PBRrendering (physicallyoptions basedwith rendering)LuxCoreRender
Engine
  • Massive general performance improvements
  • SupportAdded forautomatic therendering Cycles-rendererinstancing (the same as used by Blender)
Multiplayer-support, including dedicated servers Steam Workshop support VR support Support for the Bullet and PhysX physics engines Support for OpenGL and Vulkan AI-system based on behavior trees Entity-component-system SteamAdded Audioflex animation system Added new bloom/glow implementation Added lightmap baking with Cycles Added console commands debug_render_octree_dynamic_find, debug_render_stats, render_vsync_enabled, render_draw_static, render_draw_dynamic, render_translucent, cl_render_shadow_lod_bias, render_queue_worker_thread_count, debug_textures, sky_override, render_queue_entities_per_worker_job, render_queue_worker_jobs_per_batch, render_instancing_threshold and render_instancing_enabled Fixed issue where camera would move upwards continuously in fullscreen windowed resolution mode Fixed first LOD being skipped when importing Source Engine models Fixed model LODs not working Fixed various crash bugs Fixed bone scaling not working correctly in some cases
Lua
  • Added ents.RenderComponent:GetLocalRenderBounds, ents.RenderComponent:GetLocalRenderSphereBounds, ents.RenderComponent:GetAbsoluteRenderBounds, ents.RenderComponent:GetAbsoluteRenderSphereBounds, ents.RenderComponent:SetLocalRenderBounds, ents.RenderComponent:ShouldCastShadows, ents.RenderComponent:ShouldDraw, ents.RenderComponent:ShouldDrawShadow, ents.RenderComponent.EVENT_ON_RENDER_MODE_CHANGED and ents.RenderComponent.EVENT_UPDATE_INSTANTIABILITY
Added util.DataBlock:GetVector2 Added game.Material.detail_blend_mode_to_enum and game.Material.DetailBlendMode enums Added ents.SceneComponent:GetRenderQueue, ents.SceneComponent:BuildRenderQueue and ents.SceneComponent.CreateInfo Added math.Vector:ToScreenUv Added game.set_default_game_render_enabled, game.is_default_game_render_enabled, game.render_scenes, game.set_debug_render_filter and game.update_render_buffers Added game.RENDER_FLAG_TRANSLUCENT_BIT Added util.ImageBuffer:SwapChannels Added prosper.get_api_identifier, prosper.get_api_abbreviation, prosper.wait_for_current_swapchain_command_buffer_completion, prosper.create_primary_command_buffer and prosper.create_secondary_command_buffer Added prosper.CommandBuffer:Flush Added game.DrawSceneInfo.FLAG_FLIP_VERTICALLY_BIT, game.DrawSceneInfo.FLAG_DISABLE_RENDER_BIT and game.DrawSceneInfo.flags Added classes game.RenderQueue, game.DepthStageRenderProcessor, game.LightingStageRenderProcessor, shader.GameWorld, game.Model.FlexAnimation and game.Model.FlexAnimation.Frame Added ents.ModelComponent:SetMaxDrawDistance, ents.ModelComponent:GetMaxDrawDistance and ents.ModelComponent.EVENT_ON_RENDER_MESHES_UPDATED Added ents.AnimatedComponent:AreSkeletonUpdateCallbacksEnabled, ents.AnimatedComponent:SetSkeletonUpdateCallbacksEnabled, ents.AnimatedComponent.EVENT_ON_SKELETON_UPDATED, ents.AnimatedComponent.EVENT_ON_BONE_MATRICES_UPDATED and ents.AnimatedComponent.EVENT_ON_BONE_BUFFER_INITIALIZED Added util.BSPTree:FindLeafNodesInAABB Added ents.LightmapComponent.bake_lightmaps, ents.LightmapComponent:SetExposure, ents.LightmapComponent:GetExposure, ents.LightmapComponent:GetExposureProperty and ents.LightmapComponent.BakeSettings Added ents.FlexComponent:PlayFlexAnimation, ents.FlexComponent:StopFlexAnimation, ents.FlexComponent:GetFlexAnimationCycle, ents.FlexComponent:SetFlexAnimationCycle and ents.FlexComponent:SetFlexAnimationPlaybackRate Added game.Model:GetFlexAnimations, game.Model:GetFlexAnimationNames, game.Model:GetFlexAnimationCount, game.Model:AddFlexAnimation, game.Model:LookupFlexAnimation, game.Model:GetFlexAnimation, game.Model:GetFlexAnimationName, game.Model:ClearFlexAnimations, game.Model:RemoveFlexAnimation, game.Model.AddFlexControllerId, game.Model.SetFlexControllerValue, game.Model.LookupLocalFlexControllerIndex, game.Model:GetLOD and game.Model.Mesh:RemoveSubMesh Added game.RasterizationRenderer:ReloadPresentationRenderTarget Added file.to_relative_path Added geometry.calc_point_on_triangle and geometry.calc_triangle_area util.save_image now has an option for saving cubemap textures Removed ents.SceneComponent:PrepareRender, ents.TransformComponent:GetPosProperty, ents.TransformComponent:GetRotationProperty, ents.TransformComponent:GetScaleProperty, game.draw_scene, ents.RenderComponent:GetRenderBounds, ents.RenderComponent:SetRenderBounds, ents.RenderComponent:GetRenderSphereBounds, ents.RenderComponent:GetRenderModeProperty, ents.RenderComponent:SetDepthBias, ents.RenderComponent:GetDepthBias, game.DrawSceneInfo.flipVertically and ents.RenderComponent.RENDERMODE_AUTO Changed parameters of ents.SceneComponent:Render and ents.RenderComponent:UpdateRenderBuffers

 

Version 0.9.11 [2020-11-11]

Filmmaker
  • Cycles render settings are now saved with the project
Changed frame render order when rendering animations with external render tool for easier quality control Added support for spatialdetail audiomaps when rendering with Cycles etc.Fixed emission textures having no effect when rendering with Cycles Fixed IOR value being set improperly when opening material in material editor Fixed material editor not updating properly when switching to a different material Fixed HDR output format not working properly when rendering with Cycles Changed default gamma correction value when rendering with Cycles to 2.2 (was 2.4 before)
Engine
  • Added support for $detail, $detailscale, $detailblendfactor, $detailblendmode and $detailtint VMT parameters
Added CS: GO to default game mount list Fixed issue where entities with morph target animations would get visually corrupted if they were made invisible and then visible again Fixed issue where ingame cursor position would mismatch actual cursor position in fullscreen windowed resolution mode Fixed issue where camera would move upwards continuously in fullscreen windowed resolution mode
Lua
  • Replaced class game.Scene with ents.SceneComponent
Added ents.SceneComponent.OcclusionCullingMethod enums Added game.Material.DetailBlendMode enums Added game.Material.detail_blend_mode_to_enum Added ents.SceneComponent:SetOcclusionCullingMethod Added game.Model:GetBodyGroupMesh Added game.Material:SetShader Added ents.Entity:GetBodyGroup and :SetBodyGroup overloads for body group IDs Added ents.BaseEntityComponent:Save, ents.BaseEntityComponent:Load and ents.BaseEntityComponent:Copy Added ents.Entity:RemoveFromAllScenes and ents.Entity:AddChild Added debug.breakpoint (Only available if -luaext was specified in the launch options) Added math.Mat4:ApplyProjectionDepthBiasOffset Added ents.RenderComponent:SetReceiveShadows and ents.RenderComponent:IsReceivingShadows Added ents.EyeComponent:ClearViewTarget Added util.DataBlock:GetVector2 Renamed game.create_scene to ents.create_scene util.remove now has a second argument for removing objects safely (if available) toboolean and toint now accept numbers and booleans as arguments Changed parameter order of ents.create_prop

Pragma 

Version 0.9.10

Filmmaker
  • Added Cycles option for setting the number of frames to the end of a clip or session
Render jobs now take up a lot less disk space for animations (static geometry is currentlynow stored shared instead of every frame) Slightly improved overall rendering speed Fixed rendering taking up your entire CPU resources when rendering with your GPU Fixed an issue where rendering several times consecutively could slow your PC down to a crawl Fixed VR renders being flipped horizontally Fixed a denoising issue which caused less than optimal denoising quality Fixed issue where the tiles in anthe earlyfinal beta,image would have mismatching sample counts and some featurestiles maywould be lower quality as a result Fixed render preview not bebeing fullyinteractable functionalwhen atrendering theVR momentimages orFixed arepotential unfinished/experimental.crash

 

when

Pragmadoing alsoa shipspreview render with the PragmaVulkan Filmmakerrenderer being used

Engine
  • Minor occlusion culling performance optimizations
Greatly improved reflection probe rendering speed Fixed issue where entities would get rendered with error materials if their skin would exceed the max skin count of their model Fixed bone scaling not working correctly Fixed massive performance hit for light sources that cast shadows in the past, but had shadow casting disabled Fixed BSP occlusion culling not working for imported Source Engine maps Fixed meshes not being rendered if entity skin exceeds maximum skin count Improved lightmap implementation Various minor bug fixes and improvements Improved loading times when starting a game
Lua
  • Added class util.Version
Added exec Added ents.create_prop Added ents.AnimatedComponent:SetBindPose and ents.AnimatedComponent:GetBindPose Added ents.LightMapComponent:UpdateLightmapUvBuffers, anents.LightMapComponent:ReloadLightmapData openand sourceents.LightMapComponent:SetLightmapAtlas alternativeAdded ents.LightMapReceiverComponent:UpdateLightmapUvData Added gui.Element:InjectMouseClick and gui.Element:InjectKeyPress Added ents.Entity:IsDisabled and ents.Entity:IsTurnedOff Added util.Path:CreateFilePath and util.Path:CreatePath Added ents.MapComponent:GetMapIndex Added ents.AnimatedComponent:PlayAnimation overloads for playing animations by id Added util.DataBlock:ToString Added game.Model.Frame:Copy, game.Model.Skeleton.Bone:IsAncestorOf and game.Model.Skeleton.Bone:IsDescendantOf Added math.calc_average_rotation Added file.strip_illegal_filename_characters Added game.Model.Mesh:GetReferenceId Added game.Model.Mesh.Sub:FlipTriangleWindingOrder, :SetVertexCount, :SetIndexCount, :AddUVSet, :GetUVSetNames, :SetVertexTangent and :HasUVSet Added string.hash Added new overload for game.Model.Mesh.Sub:GetUVs:SetVertexUV:GetVertexUV with UV set parameter Changed argument format for util.pack_zip_archive Renamed ents.AnimatedComponent:GetBindPose to theents.AnimatedComponent:GetBoneBindPose Sourceutil.remove Filmmaker.now

Youaccepts cana usetable as argument

file.write now automatically creates the Bookfile Navigationpath onif theit leftdoesn't toexist navigateFile towrite theoperations nextnow page,accept whichpaths hasthat detailsinclude on how to download and install Pragma.

Click the firefox_2020-08-12_15-57-16.png button at the top right for other topics (such"addons/<addonName>/" as theprefix

API documentation for developers).

 

Media