mamoniemhttp://www.mamoniem.com
Sun, 20 Jan 2019 18:15:08 +0000en-UShourly1https://wordpress.org/?v=5.0.3http://www.mamoniem.com/wp-content/uploads/2018/09/cropped-mamoniemIcon-32x32.pngmamoniemhttp://www.mamoniem.com
3232Unreal Python[S]http://www.mamoniem.com/unreal-pythons/
http://www.mamoniem.com/unreal-pythons/#respondSun, 20 Jan 2019 18:15:04 +0000http://www.mamoniem.com/?p=1124I have created a public repo where i’ll be cleaning up most of my personal unreal Python scripts that I’ve made (and keep making) to help me in processing many things faster while working with UE4 pipelines.You can access the public repository on GitHub here. I’ve another larger private repo on gitlab full of the entire library of my scripts, but i would not love to share it right away, as there are many many outdated scripts or chunks of scripts, things need updates, things are replaced or removed from the main Py api of UE4, so I found it more safe to pick them one by one, make sure it works without any errors, and then push it to the public repo.

And to warm up, here is the first one in this series, make sure to follow the channel or the twitter account to get the latest news regarding the new scripts, i won’t be posting here per script.

-m

]]>http://www.mamoniem.com/unreal-pythons/feed/0Mirage Engine Latest Updateshttp://www.mamoniem.com/mirage-engine-latest-updates/
http://www.mamoniem.com/mirage-engine-latest-updates/#respondSat, 12 Jan 2019 14:24:26 +0000http://www.mamoniem.com/?p=1116Since my last post about “Mirage”, I had the chance to work on different branches in adding several new features to the engine. And while it is a complicated long term project & a side project as well, the progress becomes slow, but still happy with the outcomes regardless the amount.

ScreenshopMirage now have a new tool called Screensho[p], which by that weird name you can easily guess it is the screenshot-ing tool in within the engine. Now no need to capture screens with a third party helper app or any external tools.There is now a full screenshot-ting support that is copying right away from the buffers to a new imageview.In the past years I had the chance to work with several commercial and in-house engines, while those engines either not allowing you to do screenshots without adding your own solutions (Unity as commercial example requires you writing editor extension for that goal), or giving you the opportunity to capture screenshots with many limitations (Unreal for example as an existing limited tool) such as file format, UI capturing and quality.

While writing the Mirage in-engine screenshot tool, I decided to start adding more options, like file format and UI which used to annoy me a lot with in in-house engines more than commercial engines. While in something like Unreal UI will not be captured, in Unity it will be captured, and will look ugly most of the time!

Check out the UI in this Unity based game I made earlier, it is captured using a Unity editor extension I made

Next step will be adding more functions to scale up the image. But yet, satisfied with the current options and generated captures….May be not satisfied with the JPG captures but what can we do JPG is JPG after all!

Another interesting part (for me at least) regarding this feature, was checking for & creating a user folder. It is something i didn’t think about it yet. The engine will need to store many values and/or files & user settings. So I decided to start handling this now while not much data need to be stored yet. And for the first time in the past ~8 years to handle such a thing in pure cpp. Have always been doing system/files related stuff either in C#, .Net or Py as the most common interfaces with any engine/API I used to use. And coming after those many years of dealing with Windows[C# & Py] to windows[C++]; I only must say, dealing with windows system in c++ got a lot worst over the years!And btw, the engine footage in this article, in addition to the post featured image, are captured with Mirage’s Screenshop tool.

HDR & CubemapsWhile working on loading textures to test out models loading & the PBR shaders, I started in a new branch to load textures, as yet all the models were using color based textures. Yes Mirage yet can load textures to sample on meshes, but limited usage, so it was the time to expand that feature and make it BIG. And glad to say that Mirage by now can not only load all textures formats (JPG, PNG, PSD, TGA, TTF,…etc), but also all types.For example apart from the common file format for images, Mirage can read HDR & KTX at the same time as high ranged images, and for each can load as HDR, LDR or Cubemap. All those options can be found in other engines of course, but not all of them at once!

A capture showing couple of PNG, JPG loaded along side to an HDR & RTX. Youll notice that the seleced image format is R8G8B8A8 while being HDR image as you can see, this is because for that example I done conversion from HDR to LDR

While I’ve to stop now, there are many other features been added, such as MSAA, VSync, Editable Wireframes, CollectionAssets, TurnTable Matrix, Editor options…. and much more, will sign off for now, and will be posting again about other things when I get the time. If you’ve any questions, feel free to reach out!

-m

]]>http://www.mamoniem.com/mirage-engine-latest-updates/feed/0Penguins of The North – Editor Updateshttp://www.mamoniem.com/penguins-of-the-north-editor-updates/
http://www.mamoniem.com/penguins-of-the-north-editor-updates/#respondSat, 01 Dec 2018 09:23:05 +0000http://www.mamoniem.com/?p=1105By now, you probably heard about my super old game Penguins of The north, either here, FB, YT or Twitter. If you don’t, then in a nutshell, it is one of those endless games, that i never feel it is the time to finish its development Funny thing, I’ve started this game almost 10 years ago. It went from idea, to 2d game, to 2.5d game, to 2d game again, to real 3d game, to 2d game (AGAIN), to a 2d game with level editor (now)!

POTN started many years ago as a kind of jam game, called Harmonics at that time, and then been polished an updated in 2013 to a 2.5d version. Later on I decided to take it further to be a full complete game, and set the theme to be 2d rather than 3d. I felt in love with penguins as creatures to replace my unknown old Harminion weird creatures, and that was a good decision, as the game passed steam’s greenlight (oh,…when greenlight was exist!). It moved to a full 3d version that i’ll share about it later as postmortem when the game get out! But while the two games seems a lot different, but they have always been the same project, same code base & same folder!

All that was great, but the real anchor point for that project, and the reason it never ended, is the level editor!

At somepoint in the game lifecycle, I’ve decided to add a level editor to help me iterate faster in creating new levels, not only that, but i can share an editor executable with my friends to toy with, and i get their final *.POTN files to check them out, and put the interesting ones into the game.

But editor meant more work for me to do. As my goal have always been a runtime editor, where at any moment you can show the editor and edit the level, and save it. So every single element of the game have to be in a good synchronization with the editor, and the vise versa! With some exceptions in mind, things that takes time to add, but it makes more sense, something like death situations that have to be ignored while editor UI is exist, but restart the level if you are in game mode. Again, this was not means to be editor where i create the game, but editor where the game can be edited at any time!

And what i wanted to share here today, is the most recent update in the Editor, you can see it has more functions now, better and unified UI, and most importantly, better experience to have the game living while being created!

Also I’ve noticed that the game page on the Unity Connect hub became one of the most visited pages in there, it’s been long time since i created this page, but seeing this huge interest in the game is really impressive. I don’t usually keep an eye in there, but seems I must do now!

https://connect.unity.com/p/games-penguins-of-the-north

At the end, I’ve posted this over twitter long time ago, and I’ve reposed it today, but it is good one to leave you with

]]>http://www.mamoniem.com/penguins-of-the-north-editor-updates/feed/0Graphics debugging in Miragehttp://www.mamoniem.com/graphics-debugging-in-mirage/
http://www.mamoniem.com/graphics-debugging-in-mirage/#respondWed, 21 Nov 2018 14:19:34 +0000http://www.mamoniem.com/?p=1091After Vulkan based investigations I made few years ago, I started right away in my self-driven-like-a-lost-fish-in-the-ocean heavy experimentations in order to prepare the path for myself to start in creating a Vulkan (only) based engine. Till this moment I’ve built several 3d apps/engines, two crappy ones (one crapy & one crashy!), and the current one which is in progress and (hopefully) will be the best of the worst! The first two iterations contained a ton of branches at the repository, enough to confuse me, not to mention the thousands of lines commented either because it is not working, or because I was testing with. And crashes all the time for no safety or assertion check!

I learned a lot since that post, especially because I was officially super far far away from graphics coding for near a decade (fixing Unreal bugs or writing shaders not really something to count -_-). Glad to say, a TON of lessons learned from trial & error and happy to say no hardware loss yet =D. But the most important lesson was the must of getting as far away as possible from using short cuts combinations, as I always either forget them, or re-assign several tasks to the same short cut, and sometime it get worst (keep reading about that unique case). And try more to invest in a better solution. Today’s issue that I want to highlight as part of the short cuts, is the debugging, view-modes & visualizations.

Since I started at the first engine iteration, NSight and Renderdock have always been my lovely friends, can’t deny the great help i got from them, not only to detect issues, but also to learn more about the new API. But at the same time can’t ignore the time get wasted sometimes to visualize or dig deep into something related to my passes or shaders. Not to mention that I was assigning the debug views into the numeric keys in my keyboard next to tilde’~’ (0-9) but as soon as I exceed that number, it started to be messy and a big as hell issue from all aspects!

Coming for a huge Unreal Engine based background, I must get some inspiration, I’ve always admired the tools in there, the ideas and the quality is top notch, so I decided to learn from that good user experience, and try to do a similar thing.

I loved this endless list of Unreal Engine viemodes and visualizers, and I found it will be a good milestone for my engine, in order to make it more usable and user friendly, even if it is not something that will be used by millions of users, but still, making it great is a priority in order to push my productivity and experience. So,…I started working on it!

After I finished adding similar solution, and I became very satisfied about it, and freed the memory allocated in my brain to remember near 20 use of keys and combinations. I came to the two major question I always like to ask:

How to make my implementation different from the inspiration source “Unreal Engine”?

How to make it better than any other engine exist?

I run away to check how Unity implemented this user experience, at the end of the day, Unity3d & Unreal Engine is the most common and diverse with features free and accessible engines out there. Unfortunately found it handled through the post-processing stack profile new thing. Which makes it much less usable than Unreal Engine, and makes it far away from my goals.. Making it better. But I appreciate the ability to edit parms foreach mode! Which became an inspiration for something else (will discuss in another post).

This led me to a bit of confusion, but that was good phase, and now I’m really happy to be confused. Because this confusion made me decided to add one more essential question to ask myself, which should help me in defining the how of making the inspiration better. The question was “Why I want it to be better than Unreal Engine ones?” ! The How doesn’t matter, or in another meaning, the How will be easily defined by the Why.

While I used to use Unreal 3 and now 4 for almost a decade, and have always been happy user and satisfied with those type of tools in there, asking myself the “Why” question helped me to see what been a hidden element in my user experience, and putting my hands on the reason that could led to decreasing my usability sometimes. That hidden element was the ability to compare between different views or buffers at the same frame in a decent way. I know Unreal have the “Overview” thing, but this show several buffers, far from each-other and even worst, in tiny squares.

For me, most of the time I was flipping between different views to check for whatever i look for. When I had those modes linked to the keyboard buttons in my code, I was able to toggle quickly between any two different viewmodes or buffers, and check whatever I’m seeking. So, my issue in the mapped keys was the hilarious numbers of shortcuts I need to remember, but my blessing with the mapped keys was the ability to compare in an efficient way. Voilà !

And that was the outcome of this personal brainstorming. To make it better, I need to fulfill the need of being able to easily compare the modes/buffers.

As soon as I switch to anything, but the final lit mode, a tiny lil slider will show up, to allow me in doing the “Split Visualization” of the modes. Not only that, but also I can compare two different materials/shaders assigned to the same mode (you can see cell shaded material in the video below for example). Later I’ll blog more about my implementation for the viewmodes, as there are some nice stuff going on under the hood, and some optimization tricks I made in order to not fall again into the issues or crashes I got at the first iteration. Not to mention some Vulkan tricks been learned the hard way.

Last time I blogged about Vulkan I said I’m 50/50 sure about it. But after ~couple of years by now since I started with VK, and more than what I ever wrote of lines been written in those crappy engines, I’m glad to say I’m 99% sure about it. And no\ way back to OGL! I’ll try to blog frequently about Mirage engine, and if all goes smooth to the end of my plan, I might put the entire Mirage source online. Not sure yet!

]]>http://www.mamoniem.com/graphics-debugging-in-mirage/feed/0The Resume thing!http://www.mamoniem.com/the-resume-thing/
http://www.mamoniem.com/the-resume-thing/#respondMon, 12 Nov 2018 13:09:05 +0000http://www.mamoniem.com/?p=1086Today while cleaning-up old files, that proj came on my radar, and it brought some nice memories, so I wanted to share more about it.

Years ago, specifically at the peak of X360 era. I was still 100% Gameplay programmer, I took a decision to show myself in a different way as a GPP who can do a bit of everything else. @ the end of the day, the more u know about the pipeline, the higher ur chances r.

Seeing my avatar daily hanging around the X360 menu got me the idea of remake my console avatar in game, and make a little demo with the minimal elements of a game. Not only that! But everytime I get and HR asking for my PDF file, I send the game instead!

This became interesting and super beneficial thing @ my career at that time. Opportunities was countless @ that time, not to mention, sending that resume was my green-card to get the job I want!!!!

Last time I updated and used that “interactive” resume was 3 years ago, but still, the project itself can stand today. In the future, I’ll defiantly work on a similar one again, but totally different, and including what been learned in the past decade since that demo!

It is happening again, this morning I noticed that my contributions in adding features and fixing some UE4 issues was included in 4.21 again. Supper happy with that great community and seeing everyone helping each-other and pushing the engine as far as we can. Despite the fact of being busy at daily work, and working in my free-time in making personal projects and experimentation, but there is always a buffer of time to work something into the UE4 core.

I still didn’t get the official 4.21, so I’ve no idea what fixes or features from my branch are in there, but regardless; I’m proud of whatever of my work! =D Let’s see if something gonna come in 4.22, 4.23 ^_^

-m

]]>http://www.mamoniem.com/once-more-mentioned-in-unreal-engine-4-21/feed/0The Unreal Garden!http://www.mamoniem.com/the-unreal-garden/
http://www.mamoniem.com/the-unreal-garden/#respondTue, 16 Oct 2018 16:44:18 +0000http://www.mamoniem.com/?p=1054Few months ago I did dump all the info regarding the UnrealEngine git repo. It was interesting seeing how many commits are in there, who made them, who is the most active user, who did the first commit,…etc. A ton of interesting data to know, not critical or essential, but nice to know if you love that tech!

But at the same time it never been enough or user friendly, so I started looking up for any previous tries of visualizing git data in more friendly way than text in a console font! and I was lucky to find out Gource (GitRepo or PreCompiled)! Which is an opensource git repo/app that allow you to visualize all the data related to any sourcecontrol based repo by going through it’s logs.

And as soon as I found it, I totally forgot the main reason i was looking for such a project. I enjoyed during all this time toying with it, as it is an opensource software, so it was a good chance to see its inner workings specially when I found out it is based on my beloved-sweet-darling-ex-api OGL, and when i’m done with my researches, I decided to go back to the main goal, which is visualizing the entire history of UE4 git repo.

]]>http://www.mamoniem.com/the-unreal-garden/feed/0[P.A.I.D.] Physx-Anim-IK-Destruction Mixerhttp://www.mamoniem.com/p-a-i-d-physx-anim-ik-destruction-mixer/
http://www.mamoniem.com/p-a-i-d-physx-anim-ik-destruction-mixer/#respondSat, 08 Sep 2018 12:27:38 +0000http://www.mamoniem.com/?p=1030As promised in the last time to start putting the different systems together, and get something out of it. Here you can see a skeletal mesh (UE4’s Mannequin) driven by animations and physics at the same time, with IK manipulations, and the ability to be totally destructible at any moment.

Soon I’ll upload another video (same duration) but 60fps. so it can be easier to watch in slomo (the one above is 30fps). so you can have better chance in checking the mesh destruction and the accuracy it tries to have to match the character animation and posing (even though the animation is totally physics based and unpredictable). Below are some gathered screenshot from this video of play through, of course there were many many moments in that ~5 min video, but I can list everything in a single image.

Click to open a full res. version

Next step still not yet planned. But it could be either doing more test cases or put those studies into a higher and more mature/advanced uses.

-m

]]>http://www.mamoniem.com/p-a-i-d-physx-anim-ik-destruction-mixer/feed/0Physx-Anim-IK Mixerhttp://www.mamoniem.com/physx-anim-ik-mixer/
http://www.mamoniem.com/physx-anim-ik-mixer/#respondTue, 28 Aug 2018 20:38:54 +0000http://www.mamoniem.com/?p=1025As part of my ongoing tech prototypes for skeletal meshes/animations, I wanted to take things a lot further in Unreal Engine, and create some type of a system inspired by Euphoria that is used in games such as MaxPayne3, GTAV & RedDeadRedemption2. But trying to make it more friendly, encapsulated in easy to use nodes. And most importantly, not only Physics & Animation based and no pre-set blend layers/weights such as my old love <3 Endorphin. But more of a realtime solution based on some key values & IK full support for some limbs (if needed) as well.

The core usage is the ability to mix and blend between physx, animation and IK for different limbs (fullbody || per-part) in a natural way to enable physics simulation while keeping the topology of the animations. so what u see in the video above is mannequin always tries to do the animation but adapt to world physics & save the body from falling. It is not yet like Euphoria, and not even close! not even a centimeter! But it is kind of getting close to Endorphin, as it still count on an animation[s] as entry.

Next post, I’m not planning to show any of the other new stuff. Instead; when I get the time, I will try to put some of those Anim/Physics techs together at the same character!

I always get GitHub emails saying my fixes and features in my UE4 fork got approved or rejected, but i never knew when or where it will be merged and released. Few weeks ago I noticed that my contributions in fixing some UE4 issues was included in 4.20 again. Very happy to see how great this community in helping each-other and pushing the engine as far as we can, in order to produce some personal experimentation and learn more!

Idk which fixes are those in 4.20, but proud of them indeed =D I’m expecting some for 4.21 or even 4.22, dunno!