{"id":108730,"date":"2020-02-05T16:28:01","date_gmt":"2020-02-05T16:28:01","guid":{"rendered":"http:\/\/gamefromscratch.com\/post.aspx?id=ec8ac939-f279-46bc-b548-ce26e7adec79"},"modified":"2020-02-05T16:28:01","modified_gmt":"2020-02-05T16:28:01","slug":"the-forge","status":"publish","type":"post","link":"https:\/\/sickgaming.net\/blog\/2020\/02\/05\/the-forge\/","title":{"rendered":"The Forge"},"content":{"rendered":"<p>Previously we looked at <a href=\"https:\/\/www.gamefromscratch.com\/post\/2018\/06\/13\/Cross-Platform-OpenGL-Alternatives.aspx\">OpenGL alternatives<\/a> shortly after OpenGL on Apple products was deprecated.&nbsp; One of the technologies we mentioned was The Forge, a cross platform rendering solution.&nbsp; It is an open source cross platform rendering framework with several game development building blocks created <a href=\"http:\/\/www.confettispecialfx.com\/\">by Confetti<\/a>.<\/p>\n<p>In addition to taking are of the low level details of working with Direct3D and Vulkan, the Forge provides the following features:<\/p>\n<blockquote>\n<ul>\n<li>Asynchronous Resource loading with a resource loader task system as shown in 10_PixelProjectedReflections\n<\/li>\n<li><a href=\"https:\/\/www.lua.org\/\">Lua Scripting System<\/a> &#8211; currently used in 06_Playground to load models and textures and animate the camera\n<\/li>\n<li>Animation System based on <a href=\"https:\/\/github.com\/guillaumeblanc\/ozz-animation\">Ozz Animation System<\/a><\/li>\n<li>Consistent Math Library based on an extended version of <a href=\"https:\/\/github.com\/glampert\/vectormath\">Vectormath<\/a> with NEON intrinsics for mobile platforms\n<\/li>\n<li>Extended version of <a href=\"https:\/\/github.com\/electronicarts\/EASTL\/\">EASTL<\/a><\/li>\n<li>For loading art assets we have a modified and integrated version of <a href=\"https:\/\/github.com\/assimp\/assimp\">Assimp<\/a><\/li>\n<li>Consistent Memory Managament:\n<\/li>\n<li>Input system with Gestures for Touch devices based on an extended version of <a href=\"https:\/\/github.com\/jkuhlmann\/gainput\">gainput<\/a><\/li>\n<li>Fast Entity Component System based on our internally developed ECS\n<\/li>\n<li>Cross-platform FileSystem C API, supporting disk-based files, memory streams, and files in zip archives\n<\/li>\n<li>UI system based on <a href=\"https:\/\/github.com\/ocornut\/imgui\">imGui<\/a> with a dedicated unit test extended for touch input devices\n<\/li>\n<li>Audio based on integrating <a href=\"https:\/\/github.com\/jarikomppa\/soloud\">SoLoud<\/a><\/li>\n<li>Shader Translator using a superset of HLSL as the shader language. There is a Wiki page on <a href=\"https:\/\/github.com\/ConfettiFX\/The-Forge\/wiki\/How-to-Use-The-Shader-Translator\">how to use the Shader Translator<\/a><\/li>\n<li>Various implementations of high-end Graphics Effects as shown in the unit tests below<\/li>\n<\/ul>\n<\/blockquote>\n<p>The Forge is open source under the Apache 2.0 license and is <a href=\"https:\/\/github.com\/ConfettiFX\/The-Forge\">hosted on GitHub<\/a>.&nbsp; You can learn more about The Forge in the video below.<\/p>\n<p align=\"center\">[youtube https:\/\/www.youtube.com\/watch?v=uFDa4M4ZBPs&#038;w=853&#038;h=480]<\/p>\n<p class=\"under\"> <span class=\"categories\"><a href=\"https:\/\/www.gamefromscratch.com\/category\/GameDev-News.aspx\">GameDev News<\/a><\/span> <span class=\"tags\"><a href=\"https:\/\/www.gamefromscratch.com\/?tag=\/3D\" rel=\"tag\">3D<\/a><\/span> <\/p>\n<hr>\n<p> &lt;!&#8211;<\/p>\n<p>&#8211;&gt;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Previously we looked at OpenGL alternatives shortly after OpenGL on Apple products was deprecated.&nbsp; One of the technologies we mentioned was The Forge, a cross platform rendering solution.&nbsp; It is an open source cross platform rendering framework with several game development building blocks created by Confetti. In addition to taking are of the low level [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[71],"tags":[72],"class_list":["post-108730","post","type-post","status-publish","format-standard","hentry","category-game-development","tag-gamedev-news"],"_links":{"self":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/108730","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/comments?post=108730"}],"version-history":[{"count":0,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/108730\/revisions"}],"wp:attachment":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media?parent=108730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/categories?post=108730"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/tags?post=108730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}