Indie VR & Game Developer

Hello! I'm Jason.

I'm a computer programmer with almost 2 decades of experience, now trying to transition from a hobby to a career. I've spent the last several years learning game development with the Unity game engine, and specialize in C# scripting.

I publish my own assets on the Unity Asset Store, aspire to make my own games, and will entertain offers for jobs on projects that suit my skills and interests.

Please enjoy my projects, consider my services, and contact me anytime!

Find Out More


Friday, July 17, 2020

Update: Project: Empty Soda Can #2

Update: Project: Empty Soda Can #2


Theme for this one should be bugs and issues.
Like i set the wrong shade of blue for the cube
Typo in Everybuddy.
Accidentally replaced Move Right with Move Left, instead of using both.

Another random coincidental 6 month update! So weird...

Well, sadly... it seems like the theme of this update will be "bug-fixes". I made a boo-boo. Well, multiple boo-boos. So made a boo-boo-boo-boo-boo-boo?

Recent Example #1:

First up, there was a bug with the color of the blue cube. It's the wrong shade of blue! How could I make such a mistake?

*Bangs head against wall.

Here's the new, MUCH IMPROVED, correct version.

Whats that? You say you can't tell the difference?

*Smirks very smuggly.

Well, you see...

*Tries to adjust eye-glasses with 1 finger.

*Realizes he doesn't wear eye-glasses to late.  

*Misses the bridge of his nose and pokes himself in the eye.  

... Color is represented by 3 values. R, G, & B. To get that blue I used "0, 0, 255".

But what I meant to use was (0, 0, 254). HUGE difference!

Recent Example #2:

It seems my script code was not spare from the bug problem.

I can't believe it even compiled and worked!

*Attempts to gasp in amazement, but winces instead because eye is still sore.

Well, it seems I made a typo.

It should have been "Hello Everybody!".

Instead, it was incorrectly typed to "Hello Everybuddy!".

*Blinks sore eye to see if its still foggy.

Recent Example #3:

It seems that in our attempts to appease the left handed audience, we forgot about the right handed.
*Cracks open Blinds on his window and looks both ways suspiciously.

Right-handers has REALLY been after me about this!

We didn't mean to REPLACE the right animation with a left animation. The right animation wasent supposed to be removed!

Instead both were to be included!

With these major bugs now fixed, hopefully the project can remain stable now, and next time we can get to some new additions!

Next time...

I wonder when that will be...

Who knows? Can never predict stuff like this!

Friday, January 17, 2020

Update: VR3DMediaViewer v2.4

Update: VR3DMediaViewer v2.4

VR3DMediaViewer has been updated to v2.4!

While waiting for publishing approval for TwIRC I decided to check in on VR3DMediaViewer to see if there was anything on my list that was worth looking into. SinglePass rendering support was the best task, so I gave it a shot.

SinglePass rendering requires use of shaders. As is, my asset is not designed around that, so I figured it was to contrasting of a option to support and integrate into my asset as is. After messing with it a little though I realized that I could fit it in as an option well enough. So, as much as I hate shaders, I wrote up what I could and got single pass rendering working. Setup is about 2/3 the same as the other method. You just don't need to setup a camera now for the SinglePass method.

The old, Layered, method is still an option. Selecting between the 2 options is available via a global option on any canvas. I would have just programmatically selected Layered if you had MultiPass selected, and Shader if you had SinglePass selected. But MultiPass mode supports both options, so I wanted to allow users a choice.

A common default question will probably be "which option do I choose for my project?". IDK. All I can say is, I think the SinglePass/Shader method will be more efficient considering performance. But I don't believe it will be significant in most cases. I think for it to be noticeable, you would have to have MANY instances of VR3D canvases in your scene. Like a gallery. Since the SinglePass option is so new and for me, experimental, I can't clearly declare it as the better default option though. The Layered method just works. It's been the only/primary method since the old RenderSwap method was dropped. About the only other difference is that Layered supports use of any shader, while the Shader method naturally requires the use of my assets Unlit shaders. So SinglePass+Shader for minor performance, and MultiPass+Layered for stability and customizablity?

Moving on, the next most interesting inclusion in this version is (limited) support for taking Panoramic Screenshots. The limits are that Unity v2018.1 and up is required, and the method/APIs used to achieve it are flawed as I've noticed quirks with the output when looking up/down. I just followed Unity own guidelines and use of APIs that they created specifically for this, and as such the issues with this method are out of my hands. I'd still recommend eVRydays free asset for capturing Pano media instead. In theory his is largely the same technique, just his Cubemap to Equirect code seems to be better than Unitys.

Finally, worth mentioning is a new addition/change to all my assets that I'll be trying out.

I've been trying to find ways are improving my sales. And when you come right down to it, one thing that helps the most is people leaving reviews. But very VERY few people do, and it really hurts new assets. People are reluctant to try and buy an asset because it has no/few reviews, and it has none/few because of the few that do by it don't leave a review. The only working method I have found to help get reviews was to ask people when they contacted me about issues. But ideally, my assets would be so good that people wouldn't be contacting me with issues. So then what? I don't want to purposely make flawed assets. So what can I do?

I came up with the idea to remind people with my asset itself somehow. But I needed to find a way to do it that seemed like a fair reasonable balance of actually reminding people, but not completely annoying.

My idea was to create an on load pop-up you see for many assets, but mine only shows up every 3 days. You can easily click it away and not see it for another 3 days, or you have a couple options to never see it again. The main way to never see it again is to simply wait 3 minutes for a countdown to complete, and a checkbox in the window to permanently hide the popup will become accessible. The idea is, if you want to wait, you can go and leave that feedback while you do. Seems reasonable to me! If you want to not be reminded, don't want to wait, don't care about helping support asset devs with a simple review, than you could also just edit or delete the script. It would then of course be gone until the next time to update or re-import the asset. I obviously don't like that option, but its peoples right to chose that.

This reminder is a trial I guess. My hope is of course that it gets more glowing 5 star reviews! But it could always backfire and cause customers to over exaggerate and leave a bad review solely based on perceiving a minor inconvenience as annoying and completely negating all the positive they get from the asset. IDK. Time will tell. I'll hopefully be adding this to my other assets too.

Change Log:

  • Added SinglePass Stereo rendering support.
  • Optimized demo files.
  • Added review reminder popup. (Removed for now.)
  • Fixed misc minor camera setup bugs.
  • Fixed an issue with the Mono_TwoImages format not working as intended.
  • Fixed some script/shader errors.
  • Addressed issue with shaders not being included in builds.
  • Added Panoramic support to the Stereoscopic3DScreenshot script. Requires Unity 2018.1+. Its imperfect though, but out of my hands.

Available now on the Unity Asset Store!

Wednesday, January 15, 2020

New Asset: TwIRC v1.0

New Asset: TwIRC v1.0

I'm happy to announce yet another new asset! This time, its my first ever non-VR asset!

I've been wanting to branch out of VR for quite a while. There's more room to innovate and less competition in with VR, but also a smaller audience. So its very limited.

This isn't the most ideal, or original asset to create for my first non-VR asset. But its something up my ally as it marks probably about the 5th-6th IRC client I have created. Except this time I can actually see something come of the work. Also, to be fair, when I originally worked on this... there was not nearly as many other IRC assets. There were a couple, but none were very good. There was like 1 that "supported" Twitch, and a couple half-assed ones that look like they were made in a day. So there was room for me to significantly improve upon what was available. But like BodyLanguageVR, this too got lost in the shuffle and shelved. I concluded that IRC was not as popular as it once was, and thus this assets potential was low. Now... I just decided to finish it up and release it just because I already put in the work.

I do still believe that my IRC asset is the best of the selection. There's something lacking with every other one that mine tries to cover, though now Twitch compatibility is no longer a selling point, kind of making the inspiration for the name of my asset pointless. Damn near every IRC asset claims Twitch compatibility. Technically, if its an IRC client, its Twitch compatible. Mine at least tries to offer some premade code for some of the unique Twitch APIs.

One thing that tripped me up was that, originally I just wanted to make the IRC client core and that's it. But I realized that that would not be enough. I needed to put effort into providing an interface that was usable in its own right. And well, I hate UI design. Working on that caused me to lose the remaining interest I had. But since coming back to the project recently, I got the UI figured out and working for the MMO chat demo/template. I decided to write a quick editor example too.

Right now the main script has become the TwIRC_ModernUI.cs. While its set up for a demo with the MMO chat example, its not limited to that. I hope to use the same script to setup and provide some other examples later.

Of course, neither of the TwIRC UI scripts are necessary. The Editor UI version is mostly done as an easy to understand example of how to access the IRC client core code itself for use with your own UI. In the end, all you need is to grab new the new strings from messages regularly, process them and display them however you wish, and take and send input to the IRC core code.

As this is my first non-VR asset, I'm curious to see how well this will sell. More due to not being in the limited VR niche? Or less because... it's IRC, and not many will care to use that anymore?

Now my backlog of unfinished assets is empty. So hopefully next I can figure out something to work on that's on the next level. Something that has the potential to reach becoming a top selling asset. My portfolio is full enough of small fry assets now. I need something big. But if I have an idea for a small fry asset that's quick/easy to make, I wont mind creating that either.

My Services

Unity C# Scripting

I'm available for C# scripting for small Unity projects.

Read More

Basic 3D Modeling

I'm experienced with Blender. Basic modeling and rigging.

Read More

Unity Development

I've created many demos, scenes, and even a simple game.

Read More

Virtual Reality Consultation

I've been an VR enthusiast for a few years, and made VR content.

Read More

News / Dev Blog


Contact me

You can reach me by email or twitter.


Twitter: @DarkAkuma_

LinkedIn: Profile