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


Saturday, December 10, 2016

AdFighter: VR Jam Trailer

AdFighter: VR Jam Trailer

Today was the deadline for Stage 3 of a VR Jam. So what does that mean? Trailer video!

It's been a busy couple of weeks since AdFighter's announcement and screenshot deadline. The game has seen some shifts in direction, refinement of game play mechanics, and a bit more polish as the end goal grows closer.

I now know just how many developers I'm competing against! And while I'm less confident I'll win against such a large pool, a pool with entrants developing their games for up to a couple years ahead of this Jam, I'm still extremely happy with and proud of my game and what I've been able to do in 6 weeks! So maybe I do still have a shot!

When I was thinking about making the trailer I wasn't sure what to do at first. I've never made a trailer before. I'm not much of a video creation/editing type. After thinking about it though, it seemed kind of clear for this game. To the point that now that I'm done making it, to me the outcome now seems very appropriate and fitting.

Without further ado, here's the trailer. I hope you like it, and it gets you appropriately hyped and interested! And if not anything else, maybe it can entice you to vote for it for the community choice prize when the time comes!

Saturday, November 19, 2016

Announcement: AdFighter

Announcement: AdFighter

After several long years, I'm happy to announce my next project! My first real game. AdFighter!

I'm announcing this now because I have it entered into a VR Jam. There is a hefty prize pool on the line, but regardless, as soon as the Jam stuff is over I will be continuing this game in hopes of giving it a full commercial release.

This VR game will be targeting Oculus w/Touch, and probably Vive later. The Jam entry will have almost everything done by me. Including scripting, models, textures, shaders, gameplay design, story/premise, etc. It's been a great way to learn exactly where my skills are in all areas, and should also serve well for that reason, in my developer portfolio!

Here's a description of the game.
Set in an abstract 80's-90's vision of VR Cyberspace, you assume the role of someone who is fed up! Sick of greedy corporations increasingly encroaching on the Metaverse with Advertisements. Armed with just your 2 fists, your goal is to destroy as many Ads as you can! Help save the Virtual Realm and keep it fun and clean for everyone!

This game is designed to have a fun Arcade feel. You earn score points from the Ads that you punch. If you earn enough you can move onto the next level! You try to achieve a higher score by punching Ads based on their color and the color of your fists, which changes color every punch. Ads come at you in waves of patterns. Punch them all and plan a few seconds ahead to optimize your score!

I conceived of this idea a few years ago, but put it on the shelf soon after. I recently reconsidered it and picked it back up as just something to practice Touch development with. I soon realized there was something more to this, and I could make it into a full game. And the timing was perfect! I could enter it into a VR Jam!

The Jam entry will have a handful of levels. Enough to have fun, and hopefully convince some judges. But I have much more I would like to implement for a future commercial release. I am only one man, and this is only my second Jam. So I have my limits for what I can do solo in 6 weeks, little to no money, and my limited skills and experience.

Still, I'm confident in my game. I feel it should have a real shot at winning one of the top 3 prizes. Or maybe the community choice prize? I'm much more proud of what I've accomplished with it in just the first 2 weeks of prototyping alone, than what I accomplished in my last VR Jam in 4 weeks total! As of this post, I'm blown away at how far my game has progressed. I never REALLY felt like I could call myself a game/VR developer before. But that's changing!

I hope you all play and enjoy my game. Please vote for me for the community choice award. And of course, support the eventual commercial release! =)

Saturday, October 8, 2016



Hello! Welcome to my website!

In the past I've used a personal blog for all my content, but this website will now serve my professional side. Here you will find my commercial products, portfolio, freelance services, games, and maybe even a few articles here and there.

I'm an aspiring game developer. Computer programming has been my main hobby for many years. As the Virtual Reality revolution started I branched that hobby out into learning game development. Ever since then I've wanted to make that my career. Along the way I've picked up some experience with 3D modeling, texture creation, and general scene composition in my game engine of choice, Unity.

My path thus far has been winding. I've made nostalgic demos, Social VR content, challenged myself in month long game jams, and published content on the Unity Asset Store. My immediate goals are to continue creating content for the Unity Asset Store to fund the development of my own games.

I primarily deal in VR at the moment, but my plans don't restrict me to just that. I will probably make some non-VR assets, and at times I've decided to continue my goal to make a game, whether if it's for VR or not.

The type of games I'm interested in most are RPGs, Puzzlers, or something with a rich story with a High Fantasy setting/elements. That's what I like to play, and what I would like to create. But I have entertained idea's for other content like scripted shows, simulators, Social VR experiences, and more.

I prefer to go by DarkAkuma on-line rather than my real name. I'm quiet and reserved, but do often have opinions all my own. I do this game development stuff because I find it fun. I enjoy the freedom of, if at anytime I'm in a situation were I'm finding that I'm not having fun, I can just walk away. Be it a project, social situation, etc.

I'm open to freelance work and collaboration. But it depends on the project, people, time considerations, etc. Mainly I'm just focused on my own pursuits. But I'm willing to listen to and consider proposals for outside work.

I come from Las Vegas, Nevada. United States. English is my primary language.

I'm always willing to make new friends and contacts. Discuss gaming, VR, media, etc.

And I guess that's all! Please enjoy what I have to offer!

-- Jason Peterson (DarkAkuma)

Tuesday, October 4, 2016

Update: VR3DImageViewer 1.3

Update: VR3DImageViewer 1.3

VR3DImageViewer has been updated to v1.3!

It now officially supports both *Stereoscopic 3D Video and Stereoscopic 360 Panoramic media!

Until now the asset "technically" supported both, but was not designed to be specifically intended for either. To help, 2 new demo scenes have been provided as examples on how to use both types of media with the asset.

Additionally, the asset has been update to work with the latest Unity (v5.4) and major VR SDKs.

*A special note about Video support. Due to the nature of the interlaced, checkerboard and analglyph formats, the asset does not support Video of those formats. This may be changed in the future.
Change Log:

  • Updated setup steps in the readme for SteamVR and OVR SDKs to be compatible with Unity 5.4.
  • Replaced the Google Cardboard setup steps with GoogleVR/Daydream steps.
  • Fixed tooltips for good now!
  • Added a Demo example for showing how to use this asset for Stereoscopic 360 Panorama images, since they are popular with VR.
  • There are probably various ways of achieving this, and probably a few variations on formatting for 360 images. This just shows a common one.
  • Added a Demo showing how to use this asset for Stereoscopic 3D video playback. This demo is just an example using Unitys MovieTexture format. Other forms of media playback in Unity, like through asset store assets, may and probably will work too.
  • Added a check every frame to ensure that any changes made to the Material (sourceMaterial) used by the VR3DImageViewer script, are visible. This applies to selected texture, tiling and offset. This was done to address issues with this assets compatibility with several Video assets I tested it with.

Available now on the Unity Asset Store!

Tuesday, August 9, 2016

Update: TransformEx 1.1

Update: TransformEx 1.1

TransformEx has been updated to v1.1!

This update mainly tunes up the asset with some tweaks to make it more aesthetically modest in the Editor UI, and more refined on how you access if from other scripts.
Change Log:

  • The Mesh Size fields are now encased in a foldout like the position fields.
  • The RGB boundaries lines will now only show in the scene view when the new above mentioned fold out is expanded.
  • The open/close status of both fold outs will now be remembered and used between all transforms in the scene.
  • Condensed the SizeEx() and PositionEx() extension methods into a single new TransformEx() method.
  • Replaced the old GetAs****() and SetFrom****() functions with more proper Get/Set accessors. You now access them like variables.
    • I.E.:
      • positionIn****
      • sizeIn****

Available now on the Unity Asset Store!

Monday, June 27, 2016

Update: VR3DImageViewer 1.2

Update: VR3DImageViewer 1.2

VR3DImageViewer has been updated to v1.2!

The major new changes are a new option to change at which depth the image focuses. This is particularly useful when dealing with images that are difficult to focus on, perhaps because the contents of the image around the sides appears to be in front of the image frame. It can also be used to help viewers better focus on a image when they're camera rig is nearer to it.

Various functions of this script have now been exposed to be accessed via your own scripts, to change setting at run time.

Several new Stereoscopic 3D formats have had now been added as supported, include 2 images, Vertical/Horizontal Interlaced, Checkerboard, and Anaglyph (Red/Cyan).

Check the change log for further details.
Change Log:

  • Merged the 2 scripts into one. Now there's an option called "Render Method" in the inspector. RenderSwap is the original method meant for Single Cameras/NativeVR. Layered is the method for cases in which RenderSwap doesn't work.
  • Updated setup steps for SteamVR.
  • Fixed an issue with the Layered method that created infinite copies of the image object.
  • Fixed tooltips not displaying.
  • Fixed the bonus screenshot script to render a SBS image instead of cross-eyed.
  • Added a new feature to control a convergence offset to help make images focus at different depths. Explanation as follows:
    • To use the convergence, you need to set a max range. Doing so crops the visible area of the image pair, by 2 pixels per unit. One on each side of the displayed image.
    • The max range is meant to be set by the developer ahead of time, not at runtime. Though for the sake of changing images at runtime you can.
    • The convergence value shifts the images horizontally for each eye by units of pixels.
    • The convergence value can be set at all times. Though to see it have an effect it needs to be at runtime.
    • Setting the convergence to a negative value draws the the focus areas of the stereo image closer to the viewer. Naturally then, a positive value draws it further away.
    • You can use this feature to fix hard to focus stereo images that weren't made properly.
    • You can also use it to dynamically adjust a good image at runtime for different reasons that you may have. Like making a image easier to focus on as the camera rig gets nearer to the image.
    • Dimensions of the image are provided in the editor to help you adjust your mesh scaling as needed, as the cropping causes a loss of any pre-existing viewed aspect ratio. So generally you will want to scale your meshes GameObject in horizontally to compensate for any loss.
    • If you're using the included bonus script to acquire your stereo pictures, you can try bumping up the width of the screenshot before you capture it, to compensate for the pixels you will lose due to cropping. Just remember that you lose twice the pixels of the maxConvergence value.
  • Newly added instances of the script will now try to use RenderMethod settings from pre-existing instances of the script in a scene, as defaults.
  • Added support and public methods for changing textures and image properties at runtime. The following is a full list of methods and variables meant to be accessed via code:
    • Pubic Methods:
      • SetTexture(texture1, texture2, ImageFormat); Texture2 is only needed if using Two Images. ImageFormat is optional but recommended in most cases.
      • Set3DImageFormat(ImageFormat); Pass the new image format as "ImageFormat.SideBySide" for example.
    • Public Variables:
      • swapLeftRight = bool; True = Swap the Left and Right images. False = Don't.
      • stereo = bool; True = Show the displayed image in Stereoscopic 3D. False = Show the same image to each eye. (Left is used for both, unless swapLeftRight is true, then right is used for both)
      • convergence = int; A pos/neg value to offset the textures each eye sees by 2 pixels per unit.
      • maxConvergence = int; A maximum value for the above. The max for this is 1/4 the pixel width of each eyes texture.
  • Added support for 2 source images, one for each eye, to be used.
  • Added support for several new image format types. These formats are less common, and not recommended that you ever create stereo 3D images in these formats. But since such format images exist, this asset might as well support them.
    • Due to the way these formats are, they require a behind the scenes conversion. And because of that they will not work with animated Textures like video. Animated textures should be created in a formats like SBS, TB, and Two Images.
    • These new formats are:
      • Horizontal Interlaced
      • Vertical Interlaced
      • Checkerboard
      • Anaglyph (Red/Cyan only for now)
    • Anaglyph support is done in a way similar to using colored glasses in real life, except the world around the picture remains un-tinted. Due to each eye seeing a significantly different color, some people may experience discomfort after extended use just like with the colored glasses.

Available now on the Unity Asset Store!

Tuesday, May 17, 2016

Update: VR3DImageViewer 1.1

Update: VR3DImageViewer 1.1

VR3DImageViewer has been updated to v1.1!

Added an optional script for Rendering 3D images.

Added a new demo scene with a fake VR camera rig that helps clearly show that each eyes camera sees a different image, on a 2D monitor.
Change Log:

  • Removed scripts/code to check for native Unity VR support. They were only used to assume that native VR was the only case in which a device/SDK would be using a single camera.
  • Now when using a single camera, like with native Unity VR, you have to select the camera as either left or right. If none is selected, it will attempt to search for MainCamera and use that if found.
  • Added a second demo scene with a fake example stereoscopic VR camera and a texture to clearly show that a different image is going to each eye.
  • Fixed the ToggleMonoStereo() method. Not sure what I was thinking back when I made it, by having it display the default double imaged texture when set to Mono, but now it displays the left eye texture to both eyes when set to Mono.
  • Added in a optional alternative script for viewing 3D images. It uses a method involving layers that I made and discarded last year, thinking it was now obsolete. Pre-Unity v5.4 SteamVR support proved otherwise. So in an effort to make this asset cover as many devices and SDKs as possible, I added it in too. Basically it relies on using Layers for each eyes camera to only not render objects of the other eye. I added another demo scene as an example of how to use it. Refer to the "Pre-Unity 5.4 SteamVR" section for how to use it.
  • Cleaned up some code and comments.
  • Reorganized the folder structure.

Available now on the Unity Asset Store!

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