Enklu was a platform built to work with AR and VR on the web and on various devices. I was a designer on a lot of projects meaning I would create designs for clients and present slideshows for review, then I would work with contracts and assist to ensure the experience went well. I’d work on also creating art and code for the various projects I worked on using Enklu’s amazing platform and Unity.
BTW that wasn’t the owner in the video just a manager š
There were a lot of fans like the above who created videos on some of the shows we ran.
We spent most of our energy working with Hololens and Oculus.
Yeah, this is a quick demo of a demo I was building š This is an unofficial recording.
I worked on various things in the Unity-like platform. I would set up a lot of assets in Unity and then move them into Enklu for various scenes. Things like animation state machines you’d have to set up in Unity then you’d reference them by script. Enklu had a custom scripting language that was javascript-like with C# and HTML aspects depending on how you used it. Most text and UI aspects could use their special HTML-like code.
You can see how things slowly improved over time with the Unreal Garden below.
Above are various videos of the unreal garden in development (hence debug menus in the back), sometimes the mouse didn’t work quite as well as a hand movement would with HoloLens 2.
Sakeworld is a retro sidescrolling beat ’em up game made for mobile devices with some consoles. You can check it out here.
I worked as a designer so I helped set up designs for enemies, and worked on game balance. I also did a lot of art mock-ups, helped with minor art setup, and fixed some things like adding characters to the font that didn’t exist (I just created them by hand what I thought would fit best with the font).
I mainly just worked in spreadsheets and Google Docs but I did help with some minor art things.
Attack from AboveScythe Attack Popping BalloonsCherry Blossoms
For things like the different balloon effects, I decided I should also create a 4 piece animation for this as well (popping animation), though, it may have been a little smoother with a 6-8 frame animation, the small screen size makes it not very noticeable, so this works fine for the size I’m working with (this was before they moved to consoles).
Here are some example documents and templates I created to help the game stay more organized (this changed more later on but it shows some of the thinking involved with the game…
I also would create a lot of quick mock-up art to show what direction to move things in.
I did not stay with the team as I eventually moved on to other work that paid better but It’s nice to see the final output is available now.
Organize It was a tool to make it faster to organize your workflow in Unity. I built out different features like playing animation at different speeds, testing sounds together, a quick note tool, a unity scene helper, etc… It was mostly directed towards level designers but could be used for anyone. I lost my work from someone stealing my laptop among other things from a break in. But I still learned a lot and thankfully recorded some of my work during that time. I just wish I was better at version control back then… Since I didn’t have a laptop for a while after that I ended up borrowing a Linux laptop – later learning Krita so that helped in other future projects.
I really liked creating tools and I hope to make a better version of this one day.
Video showing different featuresSound features like microphone recording
Sound features like microphone recording
Sound features like microphone recording
Time controls to speed, slow down, stop or move frame by frame
Time controls to speed, slow down, stop or move frame by frame
Time controls to speed, slow down, stop or move frame by frame
Stopwatch controls
Stopwatch controls
Stopwatch controls
Scene merging, copying, starting empty
Scene merging, copying, starting empty
Scene merging, copying, starting empty
Camera targeting and target object rendereing
Camera targeting and target object rendereing
Camera targeting and target object rendereing
I have more features than just this, you can look at the video to see everything else
A multiplayer first-person shooter practice project. I focused on improving my rigging/modeling and doing some game UI work. We sat down, went over the design, and I got to work.
Problem Statement
How can I design a UI that fits a cowboy theme but is simple enough to be understood at a glance? How can I go about creating and modeling a bird character as a player?
Solution
The end result for my UI is below. While it could use further UX testing it worked well enough for a starting screen.
Menu screen
Process
Fonts
To get started the first thing I did was work with the programmer to find a font we agreed on. We looked at many free fonts on Google Fonts and settled on Rye and later Smokum. The programmer then set up some placeholder stuff for now.
It functioned but didn’t look that great.I would play around with ideas on how to make it feel more punchy
Assets
3D model and rig
From here I started to work out some basic models that could be used for characters. I created a very simple bird in Blender.
The original bird model
I would go back and update it further and you can see a video below of me trying out a later version.
My bird in progress
With a working model, I handed that off for my programmer to use as I got back to the art assets for the menu.
Spritesheet
I created my first mock-up
And yeah, went through a variety of versions until I settled on a style I liked.
I made a lot of this in Affinity Design and Photoshop and was still figuring out the best way to display things
Originally I quickly painted some wood but it didn’t have the effect I wanted… So I just made a simpler version.
I would work on various art elements.
Not all my ideas were that great but I thought the different hats could be used for teams or player identifers…
I thought about different ways to display the score…And yeah they were too complicated but it was fun to think about nonetheless.
I thought about other more complicated cases…
I don’t think we even ended up using a scoreboard in the end lol. It was still some decent practice on game UI and rigging and would later help me feel more comfortable setting up rigging for other more complicated models.
My client was an immersive murder mystery experience company. Players look for clues and take notes as they play as different characters in a set role. Currently, the game is all paper-based but there is a desire to turn it into a digital format. These games are similar to popular Chinese Detective shows and Korean Detective shows etc.
Problem Statement
The notebook for characters to scan through is lackluster and not as immersive as an app could be. The key goals of the app were to make it easy for users to take notes, look for clues and give more involved in the space.
The long-term goal of the app was to be used to create games, host games, and allow easy game editing for the game master. These games could interact with other Bluetooth devices such as speakers or projectors and the game master could manipulate the environment for his purposes. To keep it simple for now we would build a simple AR demo on the iPad. An iPad would be something the client would use as a game master.
Solution
The solution was a short prototype.
Process
Part of the process was play-testing a version of the paper game. While it was meant to be done in person I played it remotely. Based on the playtest it made it a little easier to understand the game and look for pain points the user would run into.
I identified 3 big pain points I wanted to address and the client agreed it was a good idea to look into it.
It was hard to keep track of clues, one game had what seemed like 50 clues, and tracking all of them was complicated.
Characters, it was hard to remember the large cast of characters and the differences between them. Group games were often 5-10 groups of people.
Paper… A notebook with dialogue was basically a game with a host leading it. It could sometimes be hard to focus with not much to do.
Research
To get a better understanding of how other companies approached this Asian genre not common in the West, I did research on similar types of apps. Unfortunately, I did run across language barriers and had to ask for a fair amount of translation help.
Competition client recommended
A sorta similar idea
Another game but this featured templates too
Sample of some competition studied, and important screens added to a Miro board for reference
More Notes
The goals were very large for such a small budget, with some back-and-forth big ideas for user flows written down that would be simplified even further to focus on something very basic for a demo. Again this was being translated back and forth so I choose to continue to simplify the idea more and more.
The main thought was that long term, this would be 3 different products in one. One for the game masters (control environment sounds, screens, game text), one for the users (play the game through the app), and a game creation option to allow game masters to create and set up their own game.
Sketches
I did some quick sketches based on some initial ideas of what we might do. These are called crazy 8’s if you know the term, it’s a good way to start thinking about the design process.
Wireframes
So this was a 2 part process. Originally I thought we would be working in 2D as we worked with paper but it was decided to go and transition into 3D. I still have some of the original concept art for some of the 2D flow.
V1 Flow
It was bare bones and very basic.
V2 Flow
Yes more Figma wireframes
The next version of some of the flow allowed the user to place 3D models and search them for clues.
I also did some quick mock-ups for an editor but lol once you actually start coding and testing the product you realize how dumb some of your design ideas were…. I’d need to redo a lot of how I envisioned the editor after I made the prototype… I mostly just focus on figuring out the flow, the visuals above often will change significantly during production so I don’t spend as much time perfecting it as I could. I know that paper/digital prototypes are possible to create before I attempt to start production but I was itching to see my limitations on the software side of things and understand what technical issues I would run into.
Building the Product
So I went ahead and built out the product in Unity. I used PlasticSCM as it is just faster than GitHub. I have to be honest I’m no amazing programmer and with my past experience working in small studios, I understand that something buying and modding packs is a good solution. So I did put some of the budget towards assets and packages such as a rope package as creating a setup with the rope twisting correctly around a character is complicated etc. I spent some time here just trying to understand how to use the packs and mod and extend them further for my needs and the rest of my time went towards that. We went through 2 UI changes the client decided that a Sci-Fi fit his idea better and I modded some UI to work correctly when a camera was displayed when in AR etc.
3 Headaches I faced
1) Trying to map a story space to the client’s real-life game room in San Francisco. (That was a headache, but we got there!) So this scene is particularly set up for the room where he does demos in.
2) Rope asset issues, so because this rope was procedurally generated changing the local scale and position would cause a lot of issues with the rope. I had to make up a solution of setting up the asset far out of sight and just pop it into place to overcome this problem I ran into with the rope. I was really puzzled for a long time by that… Maybe not a good long-term solution but it’s a prototype… š
3) Converting between different anchors when it comes to saving, loading, and altering spaces was something I got a little confused about but I got there. You cannot directly save a prefab to where you placed it so you have to manage that separately by code.
Anyway, the demo was completed, tested a few times, and was good enough for now. The client was investing a lot in his physical space and didn’t have as much budget for the next round of prototyping but that’s okay for now.
Here are 10 random tips you might not know about, some I found on the internet and some I discovered myself.
1. Change the default prefab numbering system
When dealing with spawning objects, sometimes you may prefer a different numbering system (personally I prefer object_number), and from Unity 2020.0+ there is a fast way to adjust this in Unity.
Edit > Project Settings > Editor > Scroll down to ‘Game Object Naming’
2. ParallelSync for testing different platforms in Multiplayer
Parrel Sync is a cool way to make a copy of your current editor and have it sync between editors. One thing it currently does not sync though is set platforms! So maybe you decide you want a multiplayer game with web and PC versions. (This is not the most recommended way of doing this but.. for quick testing…) You can set each synced editor to a different platform type and build them out. (Can also do this to build multi-platform builds all at the same time in a crunch! š Of course, you would not do that, right? You should optimize per platform.)
And Yes, Unity does warn you not to follow my advice here but hey it works. This is how I can duel buildfor different platforms (PC & Web in my case) and work on something else. Builds worked great with no problem š This might be handy for a game jam later.
3. Change asset/package storage location
If you are anything like me, you find downloading a bunch of assets and packages takes up a lot of space. Perhaps also like me you prefer it on a separate SSD. Well here is a quick way to set this from the C drive to whatever drive you choose!
Edit > Preferences > Package Manager
4. Test WebGL in the browser without rebuilding (Hacky)
Did you create a web build, close it, then find you need to open it again? You will notice most likely a big red banner showing security risks doing so. What a pain! You can temporarily turn off browser security to reopen the build for more testing by using these steps. Check out the original content -> here.
Common errors in FirefoxIdeal loginFirefox is so easy to change for quick testingChrome is slightly more work.
How to test without rebuilding
Firefox (recommended browser for running WebGL)
Type about:config in the navigation bar
Search for the security.fileuri.strict_origin_policy parameter
Click that parameter to change it to false
Chrome
Add a shortcut to Chrome on your desktop if you don’t have one
Right-click the shortcut and select Properties
Select the Target text box, go to the end, add a space, and add –allow-file-access-from-files
Don’t forget to turn back on your security features!
5. Make objects not selectable in the editor with layers
Do you find yourself clicking on stuff you don’t mean to in the editor? Do you often find some asset in the way? Well here is a quick fix for that!
Create or select a layer you want to make not selectable.
2. Change the layer to not be selectable.
This can be really handy when dealing with environmental assets you don’t want to move etc.
6. Test your device with Device Simulator (Mobile)
Unity has a handy tool now that allows you to test different screen sizes, taps, and other things quickly with their device simulator tool. It’s really handy when you want to see how things look on different screen sizes.
You can use the new Unity Device Simulator to test if your UI is correctly inside the Safe Area for that device.
7. Remove objects automatically in your build with tags
Don’t want something in your build? There is a tag for that, EditorOnly which will remove the object from your build. (Though if you spawn in this tagged object it will fail so use this with caution.)
8. Quick functions to return a random point in a sphere or circle
Dealing with math can be annoying so finding a few quick lines to solve a problem is nice.
#UnityTips Today two functions to return random points on a circle & a sphere, given a radius.
Set up your view in the editor, Select your camera, and hit the magic key combo.
Want to know more shortcuts? Check them out with Edit > Shortcuts
Bonus #1 – Adjust code compiling order
This default depends on what version of Unity you use, you can further adjust it to fit your needs.
Preferences> General > Script Changes While Playing
Bonus #2 – Crashed? Look at backups
Every time you hit save, Unity creates a backup in your Unity temp folder (Yes this folder is found next to the Assets, Library, Project Settings folders, etc).
If you lost a lot of work, stop before you open Unity, look for this temp file.
Temp > _Backupscenes
If this file exists after the crash yay!
Rename this file to someName.Unity and put it in your Assets folder to use it again. It’s not a perfect solution but might be helpful in some cases.
Bonus #3 – Use V to snap and rotate
Newer versions of Unity make snapping easy, add the V tool and watch it work it’s magic.
Hold V and select the edge to either snap or rotate based on the edge of the model.
Just a quick example of the tool
Bonus #4 – Set default position for objects to enter the scene at the origin
Now you can easily have new objects always start at 0,0,0.
Edit > Preferences > Scene View
Bonus #5 – UnityTips Website
Do you want more tips? Don’t browse Twitter much? Well, there is a website built just for tips check it out.
Chapter 1 is a classic adventure game where you solve riddles and complete mini-games to try and save a princess. There are many ways to fail but few ways to succeed. This is one of the most ambitious team projects I have personally tried to run. I created all the gameplay, cutscenes, and animation and had my team help where they could.
Chapter 1 by softsound, chris ronin, Thorny, GeraltStark, nsbumblebee
Available for Windows, macOS, Linux
During this game jam, I created a game called The Adventures of Sir Kanon Chapter 1 with a small team. Itās an adventure game you can find here:
It features:
Voice acting by a lot of folks around the world
8 3D levels
Riddles
Puzzles where you may get lost š Iām not telling you the answer!
New gameplay toward the end if you can get there
It was a project to help me work on improving my management skills and leadership skills. I learned a lot from it. This project was created in roughly 2 weeks’ time with folks from around the world I knew. Almost all of the game was built in one week. One week was just for prep and understanding the tools. The training I offered was before the game jam started.
And yes, yes if you look at the details we do have 2 versions of it. Pick which one you prefer. The less silly version has fewer bugs and is easier to play through.
The Backstory
I’ve worked on numerous game jams and thought I’d work on leading a game jam with a team of people with no game dev experience. I thought I could at least improve their lives by giving them an opportunity to grow and learn.
Teaching a Team
So from the very beginning, I expected to do this entire project by myself if I had to. I would make sure no matter what happened we would have something to deliver.
But I also hoped… Maybe I could teach my team how to do stuff and they would go out of their way to learn more in their free time and magically get good. Well, ⦠Yeah no that didnāt happen. I spent a lot of time building tutorials and learning about this and that, I spent so much time just working on what I would teach that I didnāt end up teaching very much. I tried to create a short one-hour training every week by streaming on Discord. A short intro to scripting, a little about UI, some general stuff on animation⦠A variety of tutorials. I thought well, itās much faster if I just make a video instead right?! Video editing wonāt take that longā¦
Well⦠After making an hour-long video that took me at least a week to set up, film, edit, cut, and then realize it still needed a lot of work I was disappointed. I realized my goal of teaching my team everything before the jam would not happen. But it was a nice idea and I actually like doing this sort of stuff even though I would need more time to do it right.
Here is the video I ended up spending so much time on :/
Tools to Save Time
Okay so. I knew a lot of this project would fall on me. What do you do if you worry about time? Yeah, use tools, obvious answer. A master is only as good as their tools and I figured it was the perfect time to learn new ones to master! So last year I bought piles of assets, tools, mini engines, and things of that sort. I had something perfect for an adventure game jam though:
A new fancy tool. Itās basically a visual scripting tool with nice built-in adventure features so you can very quickly build out a game. I spent a lot of time reviewing videos and going through the documentation. More than I really planned but it worked out enough in the end. It is set up really well for a game jam! It would have been helpful if I knew this tool better before the game jam but you can learn a lot when forced to lol.
I can talk about the plus and minus of why coding should not be your go-to when designing a product and it even became an issue later when a newbie Unity programmer did use some code⦠To future-proof their work. Well, the code had to be dropped at some point which I expected, but he was able to address the issue and fix the problem later on. One reason straight-up code should not be introduced as an all-in-one solution is you might think you may fix one problem but you may just introduce a new problem by doing so and that was what happened later. So, you might have solved a problem but other users might not use your code how you expect⦠Also, visual scripting is good for folks just getting started with Unity. While I can script just fine in C# it can be much slower to reinvent the wheel. I needed to focus on speed so I used pre-built tools and options as much as possible.
Granted no one likes visual scripting going everywhere XD
I was pretty proud of how I was able to use the design and make work it both animation-wise and script-wise (granted the animations I did were a little hacky)
My favorite scenes in the game because of how complicated they were.
An example of meeting the snakeBehind the scenes of the snake scene
One of the complications was simply handling the lighting. I did a few tricks here to make it appear the lighting was changing and had to make some things time correctly… There are better ways to handle this but I had to take some shortcuts.
This puzzle was very hard for most players, it had 2 solutions but still many got lost in it
I was scratching my head on how to build out the design on this cutscene for a while. I was able to make it work, but I was unsure of how to make it appear something was coming up from below you for quite a while.
Version Control
I’ve worked with and without version control before and I knew what I did not want to use. My go-to GitHub Desktop proved to be too slow so I ended up using:
Originally I was going to use some *free* type of version control. I was going to use GitHub with GitHub Desktop and well it sucked even with LFS (Large File Support) setup. It was painfully slow, I literally spent 3 days just trying to upload some basic files and I got mad and was like this isnāt going to work (stuff kept timing out, breaking, etc, etc). Yes, I did have some help from someone who uses Git and he didnāt have any luck either.
I need something that lets me batch-upload hundreds of large files at a time that are likely a few gigabytes. So I really compared my options and decided to try Plastic SCM and man! This was smooth as butter!
In past experience I knew a lot of places where projects fail, get corrupted, and lose data, Iām used to using frustrating tools! Unity Collab was awful, it was so slow in the past that I shutter to consider all its limitations. I have used Sourcetree, TortoiseSVN, personal servers, and more.
I know the pain of merging, uploading, and everything else that comes up. I guess when working I take extra care to avoid merging whenever possible. First mainly because I have more experience failing than succeeding with version control and second because it feels like better work quality in a way. But I ended up merging things well, and fixing merge issues that came up (cough newbies were still learning how things worked)
XD Merging and zigzagging everywhere when learning to use the tool, it got smoother later. But you see my teammate sure tried hard to learn to use the tool.
Finally donāt worry about mistakes! š I actually, even liked merging and working with different branches, it made me a lot more fearless and more confident working with this tool and it says a lot about the tool. I actually started to feel like more of a leader sorta being in control of this section XD
PlasicSCM compressed the 30GB down to 14GB which is awesome š
I was willing to pay $10 though if I had to. GitHub cloud storage charges by the download (and a few other things) and I had⦠quite a lot of team members redownloading the project so Iām glad I didnāt go with that. Not everyone really understood how to use the tool leading to a lot of downloading…
Tools I Ended Up Not Using
Well⦠I had a nice animation tool I found for free and I recommend it⦠But due to time I just manually handled adding talking animations to some characters takes about 5-10 mins easy peasy and I didnāt want to download another toolā¦Though I spent time learning it before the jam just in case.
An example of creating talking animation
Donāt overthink animation when you are on a deadline, almost all decent animation is just a few keyframes anyway.
Now if I needed to move a lot of his body and add in the more subtle gestures I would highly recommend UMotion Community since itās free and gives you bones to animate with. The paid version includes IK which is really nice for advanced animation controls.
Besides that, I had a ton of asset packs. So I guess in the end I used 2 tools but you donāt need much to make something cool.
Voice acting
So this was interesting and all over the place. I spent a little time helping to coach some members on voice acting and I recorded a few lines myself. I donāt think Iām the best voice actor but I can put some stuff together. I tried to sorta go for Zelda’s voice from Botw for the princess. It was good enough. I originally was going to play other characters but like 2 days before it ended I met a kid who wanted to do voice acting and he did an amazing job.
Now you might ask about music and sound effects. Did I prepare for that? Yep. Did I forget all about that yep… š I’m only one person, but if I planned better I would have been able to get that in.
Design + Scope
Everyone knows design determines the scope, so keep your design small. Anticipate for expansion sure, but keep your design small to reduce scope. You can always add more or work on polish when you finish your original scope. But itās always sad to cut projects that get too big. Less scope is better time management etc⦠And well. The project started off that way⦠But I made a lot of very very bad assumptions.
Themes
Yeah, I just was dumb and assumed this would be like all other game jams, that a theme would be announced and we would work out some design after the theme. Boy was I wrong and that set off the whole project on the wrong foot. The great leader there not reading the directions. For this game jam, they wanted you to plan in advance and work out your design BEFORE the jam. So yes, despite a teammate asking me what my plans were and assuming they just misread I was completely wrong in this regard. Sometimes doing something so often can make you blind because assume you are right. š
So I scrambled to ask some folks about some design ideas and we wrote up a short idea, I expanded it slightly. It didnāt make much sense but was sort of funny. I was trying very hard to include a lot of people in this game jam, for better or worse. It would make it harder for me to add so many random folks without much game dev experience. But I always want to give people the opportunity to prove themselves and help them build confidence in themselves even if it may cause me some headaches. So there was this silly design, not well fleshed out but something I could work with.
Learning Tools & Scope
I was also trying to learn Adventure Creator during this time too. And then a family holiday came up and I ended up losing 3 days of work because I had forgotten about it eariler. I let someone work out the design of the script and flesh out the gameplay ideas further and would review some of it now and then. I didn’t have time to review it thoroughly but figured that I figured, like everything else we can always cut. I figured we would likely not get halfway through this new design. It was a huge and ambitious 10 levels with a variety of gameplay, cutscenes, and animation. I knew it was far more than we could achieve but for some reason, I was like A-okay we will do as much as we can. I wanted to see how far we would get. I also knew it would fall on me to make it happen so I thought, yeah sure I’ll tell cut later once I have a good idea of my pace.
And yes. I ended up cutting. The last two levels not only had me do a lot of voice acting which I was running out of time for but it required new gameplay elements and I hadnāt finished the new QTE (QuickTime events) yet and more left to do in another level. So I cut them. I just didnāt have time to do every role. (I did finish those QTE BTW.)
Also, that code bug did cause a last-minute headache and we were scrambling to work around it and I lost time from that as I quickly taught my teammate how to visually script that section instead. So Iām glad I cut early enough to leave room for this because I needed that buffer to address unexpected issues. I should have cut even earlier for a better product though.
Now lucky for me I also set up the website page earlier because I had no time towards the end. I knew time would be an issue. I was biting my nails metaphorically because it took like 15 mins to upload the thing and then I realized there was a bug and it was very much down to the line. I literally got everything set up 2 mins before submission time was over!
Retrospective
So what would I do differently?
Plan earlier + cut earlier
Maybe work with people who know what they are doing so I don’t have to review as much. (also avoids some drama, as newer folks can’t understand why their ideas are not feasible in the timeframe) Reviewing work and assigning work is a job all on its own. I’m lucky I was able to assign someone to do part of that and delegate what I could. Then I had someone review their review before it got back to me to give me a little more buffer.
Realistically though I’d probably be even more ambitious though… I almost created 10 levels in 1 week… Just imagine if I had the proper time and training to do this right…
The Hand Of Death (HOD) is a grim reaper trying to get to a poker game. It’s a 2.5D point-and-click adventure game about trading lives for a game of poker. I created the 2D and 3D art in a 3-day time span, you can play it here. I didn’t create all the art but I created the majority. Not all of it is shown below. I really think the hand was required on that death-dealing tool there.
I created a simple logo pretty quickly in 10 mins and you can see where I cut corners but we were debating who should do the logo for a while so I was running out of time towards the end.