<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Game Engine Dev on Smbat Voskanyan</title><link>https://senpie.net/categories/game-engine-dev/</link><description>Recent content in Game Engine Dev on Smbat Voskanyan</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sun, 23 Jul 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://senpie.net/categories/game-engine-dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Talos VFX</title><link>https://senpie.net/post/talos-vfx/</link><pubDate>Sun, 23 Jul 2023 00:00:00 +0000</pubDate><guid>https://senpie.net/post/talos-vfx/</guid><description>&lt;img src="https://senpie.net/post/talos-vfx/talos.png" alt="Featured image of post Talos VFX" />&lt;h1 id="introduction">Introduction
&lt;/h1>&lt;p>Talos VFX is a powerful open-source visual effects editor designed for Java and LibGDX projects. Create stunning particles, shaders, and custom scripts, while seamlessly managing game assets – all from a single workspace. Its intuitive, node-based VFX editor and support for visual programming routines (similar to Unreal Engine&amp;rsquo;s blueprints) empower you to craft dynamic effects. Build 2D levels and scenes with brushes, and bring your creations to life with Spine2d skeletal animations, easily attaching VFX directly to animation bones. While primarily focused on 2D, Talos VFX also offers limited 3D support.&lt;/p>
&lt;p>As a major contributor to Talos VFX, I&amp;rsquo;ve played a role in squashing critical bugs, implementing user-requested features, and refining the overall user experience. As of writing this post I authored around ~50% of Pull Requests on the project. Here&amp;rsquo;s the &lt;strong>&lt;a class="link" href="https://github.com/rockbite/talos/tree/talos-3d" target="_blank" rel="noopener"
>link to project&lt;/a>&lt;/strong>. Note, that active development is carried on &lt;code>talos-3d&lt;/code> branch and &lt;code>master&lt;/code> branch is greatly behind.&lt;/p>
&lt;p>&lt;img src="https://senpie.net/post/talos-vfx/talos.png"
width="2131"
height="1276"
srcset="https://senpie.net/post/talos-vfx/talos_hu9ab9ff59ef09db64b97121e1afd1e09a_1006924_480x0_resize_box_3.png 480w, https://senpie.net/post/talos-vfx/talos_hu9ab9ff59ef09db64b97121e1afd1e09a_1006924_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="On the top-left scene hierarchy, preview and scene editor. On the bottom-left routine graphical editor. On the right node-based particle system. "
class="gallery-image"
data-flex-grow="167"
data-flex-basis="400px"
>&lt;/p>
&lt;h1 id="feature-development">Feature Development
&lt;/h1>&lt;p>Since a lot of features were missing initally and we needed many tools for our prototypes, I had a chance to contribute a lot in this area.&lt;/p>
&lt;h2 id="fake-bvb-bone-attachment-support">Fake BVB&amp;quot; (Bone Attachment Support)
&lt;/h2>&lt;p>Problem: Users were limited in how they could interact with skeletal animations, hindering dynamic effects and customization.&lt;br>
Solution: Implemented &amp;ldquo;Fake BVB&amp;rdquo; functionality, exposing animation bones as restricted game objects within Talos, enabling the attachment of other objects.&lt;br>
Result: Users can now create more complex and visually engaging effects by directly linking particles, objects, and more to
skeletal animations. Examples include attaching characters to moving vehicles or syncing particle effects to bone movements.&lt;/p>
&lt;h2 id="nineslices-support-and-sprite-editor">NineSlices Support and Sprite Editor
&lt;/h2>&lt;p>Problem: Users lacked advanced scaling options for UI and graphic elements, limiting design flexibility. Limited or inefficient tools for sprite editing and managing NineSlice metadata within Talos VFX.&lt;br>
Solution: Implemented NineSlice rendering functionality, providing a system similar to Unity&amp;rsquo;s NineSlices. This allows specific sections of images to be repeated horizontally, vertically, or in both directions.&lt;br>
Result: Improved control over how UI elements and graphics scale, enhancing the ability to create visually polished and responsive interfaces within Talos VFX.&lt;br>&lt;/p>
&lt;h1 id="bug-fixes-and-refinements">Bug Fixes and Refinements
&lt;/h1>&lt;p>I have fixed more bugs than I could remember, however to recall some off the top of my head, then these would be the ones.&lt;/p>
&lt;h2 id="project-explorer-stability-and-user-experience">Project Explorer Stability and User Experience
&lt;/h2>&lt;p>Problem: File management was unreliable, with crashes and unexpected behaviors. Crashes when moving or renaming files. Bad user experience. Poor file search performance.&lt;br>
Solution: Revamped project explorer logic, preventing errors and ensuring a smoother file management experience. Refreshed the UI for more costumization and assets previews. Fast asset lookup.&lt;br>
Result: Increased stability and reliability within Talos VFX, protecting user work. Happy users.&lt;br>&lt;/p>
&lt;h2 id="routine-workflow">Routine Workflow
&lt;/h2>&lt;p>Problem: Editing curves within the Routine App was buggy, hindering intuitive workflow.&lt;br>
Solution: Fixed curve gizmo display and interaction points, including inserting new points and using the ESC key.&lt;br>
Result: Restored smooth and predictable curve editing, streamlining the creation of dynamic effects within routines.&lt;br>&lt;/p>
&lt;h1 id="concusion">Concusion
&lt;/h1>&lt;p>Through this project, I&amp;rsquo;ve learned many new topics and significantly improved my knowledge in Java, libGDX, and 2D engine development tools. It was both challenging and rewarding to work with a community of people directly affected by my contributions. Seeing others use Talos VFX to create amazing games is a deeply satisfying experience.&lt;/p></description></item><item><title>Tiny World</title><link>https://senpie.net/post/tiny-world/</link><pubDate>Thu, 05 Jan 2023 00:00:00 +0000</pubDate><guid>https://senpie.net/post/tiny-world/</guid><description>&lt;img src="https://senpie.net/post/tiny-world/capture.jpg" alt="Featured image of post Tiny World" />&lt;div class="video-wrapper">
&lt;iframe loading="lazy"
src="https://www.youtube.com/embed/hA-29bpJ4Bc"
allowfullscreen
title="YouTube Video"
>
&lt;/iframe>
&lt;/div>
&lt;p>I&amp;rsquo;ve created a game engine from scratch featuring a tiny
world. This project aimed to demonstrate my understanding of 3D graphics programming and the
principles of perspective, lighting, and texturing. I had a lot of fun implementing the water. It features Fresnel Effect, samples skybox and terrain for realistic reflections and uses depth buffer information to achieve soft edges.
I wrote the project purely in Java and OpenGL, and the source code is available on &lt;a class="link" href="https://github.com/TheSenPie/tiny-world-java" target="_blank" rel="noopener"
>git&lt;/a>.&lt;/p>
&lt;p>Furthermore, this is a personal live project meaning it will be constantly updated with new stuff as I keep
learning new techniques and would want to practically apply them somewhere. Specifics and more details
about the project, and how to run it on your local machine are uploaded to the webpage provided in the
link. Enjoy!&lt;/p>
&lt;p>&lt;strong>&lt;a class="link" href="https://github.com/TheSenPie/tiny-world-java" target="_blank" rel="noopener"
>Source code&lt;/a>&lt;/strong> for curious ones.&lt;/p></description></item></channel></rss>