Its the Most Wonderful Time of the Year…

Its the 1st day of preschool for my youngest – I will have 3, count them, THREE glorious hours of no-kids. No, “daddy, daddy, daddy”, no spills, no sounds of destruction while I try and use the bathroom as quickly as I can – and I can FOCUS.

First up: getting my project to work with the Rift. Since GDEX is in 2 weeks, I’d like to be able to bring a HMD that I didn’t pay for, and has a built in audio solution, since Keith, the organizer of our shared space, has advised it will be noisy.

I also need to start getting promo materials together and find a way of handling signups – even if it is just a clipboard to take email addresses.

Fast forward a few hours later: just picked up kiddo as he excitedly told me about his morning – circle time, singing songs, making a paper cut out apple; all very fun and interesting. He asks about my day – so I tell him:

A) got Oculus support running – thanks to the ever useful VRTK, and a few of the associated tutorials, I was able to get a version working. Its separate from my Vive project, but after my recent adventures with computer problems, I don’t want a single thing going wrong with my projects. (Side note: as of a few weeks ago I am now a strict back-er upper) but being able to play-in-editor on my Rift gives me hope that I can have my build running before GDEX.

B) Massive amounts of house cleaning – my folks are visiting Sunday and getting both the house AND the office shipshape are of utmost importance. I want to show off my toys, the game and an old project: my childhood home, recreated in VR. I want to see their reactions so bad – if I’m lucky they’ll let me film it.

C) Getting my signage ready – I found a local printer that’ll make me a 20×30 poster on foamcore, plus another that will make some buttons. As I’m designing these, I realize I don’t have a legit website for the game – just this dev blog. So, in addition to everything else, I have to look into subdomains and how to set one up – as well as make a simple webpage.

As I’m telling kiddo all this, he’s starting to yawn and drift off to sleep – too much excitement and, frankly – to him, my day was pretty boring in comparison to his…

Return of The Dev Dad

Since getting back to almost fully operational status, I’ve been playing with an alpha of some mo-cap software, Mindshow. It is a lot of fun, and the ‘Mad-Libs’ aspect of it could be a great party game. I did a short recording of myself explaining how I got my dev PC back on track:

So, yes – having Oculus software installed with my odd combination of hardware & software (plus aRadeon driver update that bluescreened every time I tried to install it) made for a unhappy system. Unity slowed to a crawl – it reminded me of early dial-up internet: click on something, go make coffee, come back, click; go do something else. It made dev work impossible, and since Unity refused to build – impossible to show off a demo.

Bitching about it on the VRTK Slack channel did yield some steps in the right direction; comments about the new USB 3 card I added got me looking in the direction of the Rift I recently was gifted by Oculus, and after I uninstalled Oculus home, my problems vanished. The downside is, I truly love working with Oculus Medium, the program could easily be the Photoshop of VR sculpting and until I find a viable way of getting everything to play nicely (basically waiting for Oculus / Unity / AMD to update their $#!+) I’m outta luck with the Rift. Shame, cause I also enjoy Lucky’s Tale, too.

So: BACK TO FREAKIN’ WORK.

So, the video show some of the newest work – I got the very cute bee modeled, animated and I had a moving version that used the components and Playmaker scripts copied off my roaming monsters – until the bee started killing the player – oops.

I’m also getting into Timeline, Unity’s new editor, built like non-linear editors like Premiere and Hitfilm. Since I’ve used software like this for decades, taking to it should be fairly easy. After watching a tutorial and downloading DumbGameDev’s awesome Playmaker plugins, I was animating my fish in the pond in under an hour. Curious about how else I can use this new feature.

I’ve also been exploring using Substance Painter 2 as a way of texturing my level – trying to use Blender has gotten too clunky to try and paint in, especially since my level has to be broken up into chunks to avoid Unity’s 65K poly limit. I hate having to dive into learning new software while on a project, but Blender’s limitations are slowing me down – and I feel like I’ve lost a lot of time already and GDEX is coming up sooner than I’d like. Planning my first public display will soon take precedent over dev work.

 

De. Press. Ion.

Part of the problem with being a gameDevDad is the constant pressure from the ‘Dad’ part of this gig. Whatever I’m doing, whether its wrangling a upgrade, working on level design, or baking a nav mesh – as soon as I hear ‘daddy??’ – I’m instantly putting on a different hat. Certainly, I’m not the only stay-at-home dad who has faced the problems of being a man, at home. with k i d s. While the rest of the world trucks merrily along, without us. I’ve gotten more than one “I thought you quit!” comment from the gang at the VR dev Slack channel after I’d been away for a while. It doubles when something I’ve been meaning to work on gets delayed, like if I decide to grit my teeth and update to the latest and greatest version of software because I feel like I need a new feature (in this case, Unity’s new Timeline) – most of the people who can devote several hours a day, each and every day – they’re already on to problems I’m not even aware are coming down the pipeline. And the problems I’m dealing with are met with, “oh, um… let me dig back in the archives – I think we came up with a solution…”

Coupled with the urge to tinker with new ideas, like this itch to try and use Oculus Medium to sculpt game levels – which I feel truly breaks me out of the ‘fla’t feeling I’ve gotten when trying to use Sculptris or Blender to create levels. I feel like they are truly more organic and I can easily do things like put caves and mountains in the same level with zero difficulty.  The biggest challenges are cutting them up into less than 64k polys and cutting up the UVs to get textures on them.

Some days it feels like I’m barely slogging along – and every time I try and sit down at my workstation the entire house is ganging up to sabotage my efforts. Which can lead to thoughts of: “Am I wasting my time trying to make a game?” or: “Am I taking on too much?” or even, “Can I get hi-speed internet on a remote mountaintop cave?”

This is the part I’ve been working on – it has caves, springy platforms, and all kinds of hiding places for neat little interactions. I’m hoping to use it as a demo level for the GDEX expo at the end of Sept. Keep your fingers crossed that I can get it to a workable place before then!

DOUBLE POST: To Die or Not to Die – and – Loving the Medium

Its been a bit of a back and forth struggle: stick to platformer conventions and allow player ‘death’ or allow for other setback mechanics, such as knockback, or having the player be sent back to the beginning.

The missus feels death is out, other testers think its a needed part of gameplay – I’m still on the fence. I do believe that in order to be open to all option, I ought to at least try and add the functionality – in case it will be added in the future. Or if I decide to make it an option to choose at startup. So, here is my 1st iteration: done in Spriter Pro as an animation…

Its crude, in its current state – but it does demonstrate the viability of the concept. I’d like to add headset fade and have the player reset to a previous point. I’m not certain about how feasible it is, but one of the fellas over at the VRTK Slack suggested having him fall apart physics style. Just not sure how to implement it – my one attempt simply added rigidbody to each of the pieces, but it did nothing to affect the character when the ‘death’ trigger was activated.

Oh well – let me decide IF it will be added before getting all into the details…

Another game element I added was attaching a spot light to the Camera Rig for the dark castle interiors. Since its parented to the HMD, its dependent on the player looking around to illuminate the way – will try and make it so dark that the player will have to divide attention from where the player is, to where the player will need to be:

 

Into The Medium

Since I got the Oculus Rift as a developer, I’ve been trying to get it to work – a big issues was my mobo and its USB 3 ports – seems others have had the same issues and I ended up purchasing a Inateck add on card from Amazon that did the trick. I now have 2 HMDs, 4 controllers, 2 lighthouses mounted on the walls and 2 Rift sensors all cluttering my desk. Combined with my ’86 IBM Model M keyboard, it looks very cyberpunkish.

A bonus with the Rift was the freebies, and an even bigger bonus was the free software with the Touch controllers. Medium drew my attention first, since I’ve been struggling with Tilt Brush and adding my creations to Unity. As soon as I fired it up – I fell in love. I have been dreaming of a Sculptris styled sculpting program (I’ve been aching for the update to export .obj for Masterpiece VR) and seeing that Medium can export .fbx or .obj had me drooling at the prospect of sculpting game levels in VR (or even better, having my 6 year old muse create them) so after tinkering around for about 20 minutes, I had something I thought I would try to export to Unity:

I had zero problems exporting or importing and can honestly say it took less than 5 minutes of resizing and rotating to get the level in, put into place and colored and added a mesh collider so I wouldn’t fall through it – and took a walk around my new creation:

(I did also discover that some of my tinkering with the animations now has his face flying off when he jumps)

Truth be told – I’m in love with Oculus Medium – its well polished, handles like a dream and I’m looking to import kiddo drawings and see if I can take them and sculpt them out as more 3D objects.

Work.Flow.

Whew – between getting the Steam Page live and getting notification that Oculus is sending my a Rift to dev on (plus the usual family life stuff happening – my eldest is almost done with kindergarten!) I drifted sideways from the dev blog and one that I’ve been meaning to do for a bit: show a bit of how I’m getting my kids drawings into VR.

First up is a simple image that I decided would be a crystal torch prop for inside the dark and scary castle. Using photoshop I crop and knockout the background and save it as a .png for loading into Inkscape and for texturing my 3D mesh.

In Inkscape, I use the tool to trace out the object and adjust the points as needed – I try to avoid the bezier handles, as they add too many verts (and when extruded, too many faces) in Blender.  Once it looks good, I save it as an .svg to import into Blender.

In Blender, I import the .svg, scale it up a bit so it imports into Unity with minimal resizing. By pressing alt+c, I convert it from a curve to a mesh object. In edit mode, I try to reduce the vertex count as much as possible to avoid adding too many faces when the object is extruded (select all the verts, press ‘E’ the ‘Z’ to extrude on the Z axis) From there, its simple to ctrl+f and fill the verts with faces. By selecting the verts on the other side and doing the same, I get a solid object I can put in my game.

From there its a simple matter of using Smart UV to unwrap the mesh – typically I can take the large sides and line up their UV coordinates to save space on my texture map. From there I make a new image, jump back to default mode and add material and texture slots and add the new image I just made and give it a quick coat of white to see where my UVs are and place the texture on the right spot back in Photoshop:

Using the transform tools, its easy to get the texture into place and use a bit of cloning to fix any bare spots or errors. From there the image’ll be saved and back in Blender you can update what is being worked on by hitting ‘reload image’ in the UV editor. Once everything is looking spiffy, I export it out as a .fbx and load it into Unity and check it out in game.

My Year in the Vive

So, as the one year anniversary of owing my HTC Vive, I’m reminded of my 1st year anniversary of owning my Oculus Rift DK2. I re-read the post and marveled how in all that time I’ve come so far – and how much I still have to go.

Still, when I ordered the  Vive, I felt that despite its rather hefty price tag (and the amount of hustling I needed to do to pay for it) it was the right purchase, as both investment in game development and entertainment. So I jumped on the pre-order hype train and started working out ways to pay for the darn thing (and took a bit of griping from the wife…) Luckily, when the shipping noticed came, it was slated for delivery when we were going to be home, as opposed to the Rift, which was delivered while we were on vacation.

So my Vive was delivered and I hastily set it up – and poked around in my new VR settings…

Ye gods – the thing was slick. I mean, the visuals weren’t as good as I was hoping, but the interactivity and room scale just blew everything out of the water. The controllers reminded me of the old Wii, being able to interact in a way that felt natural and intuitive. The Aperture Science orientation experience was spot on. I then quickly downloaded the bundled software that came with it. And was doubly amazed.

I was a bit hampered with my small office space, so I couldn’t take full advantage of ‘Fantastic Contraption’ but the few levels I could do showed amazing potential for clever party games and problem solving.

Then I loaded up ‘The Lab’

I hadn’t even started porting over my DK2 Unity projects when I was taken over by an irresistible urge to scrap EVERY single thing I had worked on until that moment and throw it all away to being making a ‘Thief: The Dark Project’ homage /remake within 30 seconds of playing ‘Longbow’ – I could easily see how it would work – since Thief used stealth and thinking rather than run & gun, locomotion could be slowed down to not upset the player and make people nauseous. Fast movement could use some style of teleportation with a ‘cool-down’ period so it wouldn’t be overused. The controllers as blackjack / sword – and yes, the Longbow mechanics for those water / fire / rope arrows. My mind lit up with the ideas of raycast lights and multi-resolution hit boxes, so you would have to duck out of the shadows and not just stand in them. Leaning around corners to watch enemy patrols. I was ready to pull out the ol’ game design notebook and start diving into a Sisyphean task when I reminded myself of the sheer difficulty of just getting animations triggered in a simple way – THIS project would suffer defeat in less than a week, due to its complexity. Oh well – I can always hope that someone ports The Dark Mod over to VR, much like the excellent Doom 3 BFG mod.

My next dive into the Vive was Tiltbrush – and while initially impressive, I found myself underwhelmed by a few shortcomings: there was no export and everything was simply flat 2D extrusions. I know some of these issues have been addressed since, but what I truly wanted was a 3D sculpting experience, like Sculptris in VR. I’ve seen a few polygonal editors and a few sculpting programs, hopefully they will improve with time.

So, a year later – I’m still blown away by the Vive – things like wireless, or wider FOV will be nice, but in the meantime, dev’ing for it is one of the most amazing challenges I’ve ever done, and its still the go-to entertainment. When the wife takes the kids to grandmas for an overnight; my neighbors willingly bring beers in exchange for blasting zombies in VR.

What next in the parade of constant interruptions?

After a weekend of weddings, in-law visits, suffering through a cold and sleeping in late, trying to get back into the day to day grind, I found myself frustrated that more work wasn’t getting done, now that the 3 paintings are done and delivered.

Its amazing how ‘regular’ life seeps into creative endeavors. The washing machine is leaking. We need to get the attic finished. Looking at Pre-K schools for #2 son. (as it is, I’m trying this out while searching for my kid’s gloves, its snowing out)

Having missed a few opportunities to rise early and dev work; I decided I need to get ONE thing done a day: make an asset, write down some ideas, scan some kiddo drawings, anything. And right on cue is when the problems start…

I wake at 5:35 – get coffee started while I tear through e-mail, Slack channels and social media. Upstairs to scan in a few drawings. I see one of a tree – which I desperately need more of in my levels. Just get to cutting it out and tracing it in Inkscape when I hear my eldest fussing – he had a mini accident. Get him on the potty, cleaned up, back to bed. Get my cutout into Blender, extrude and start making the texture map. Just about ready to export it when Blender crashes. And doesn’t make its regular backup file. And I hear the cat barfing downstairs. I love having a cat that pukes more than a frat boy on Spring Break. Clean that up. 2nd cup of coffee on the brew. Kid #1 not going back to sleep. And now waking up kid #2. Get them out of bed while searching my whole hard drive for a possible backup file.

Nothing.

Well, at least I can !@#$%^ing blog about it.

 

 

Having a cat who pukes more than a frat boy on spring break

Feedback

Deciding that I needed to start getting input about my work thus far I posted a couple of videos on line and asked the hive mind on Reddit to evaluate and critique my game play. Since I could only really offer video, some of the full VR effect would be lost, as screencapping VR severely limits the FOV and scale of things.

So I posted on Reddit’s GameDevExpo, and got a few repsonses that are steering me in new directions – hints that my fondness for ellipses needs to be pared back, my 3D level is incongruous with my 2D characters (something the wife has pointed out on more than one occasion) and other tidbits like this:

Your kid is more talented than you are.

Well – that caught me by surprise. Of course, with a username with @$$hole in it, what can one really expect, eh? But still – it nagged me. I’m fully aware that the internet exists fully for people to be as sanctimonious and nasty as possible, I’m guilty of it myself – but, dammit, I wasn’t expecting it so quickly out of the gate.

So, I fumed about it for a bit. What to do? Argue back? That’s a waste of time. Ignore it? It would fester and bother me. I felt like this smartmouth was getting the last word. So as I was pondering my response, Son #2 asked about our weekend plans and asked if we were going to see his Granpa’s extensive train set. Which got me thinking about my father-in-law; a very personable, gentle man with a passion for puns and Dr. Demento songs.

I remembered how he told me stories of his youth and how he turned bullies around by ‘agreeing’ with whatever phony criticism the bully would use to intimidate him. If a bully told him he ‘threw a ball like a girl’ he’d agree, and then ask the bully to help teach him how to throw properly. And amazingly, made a new friend in the process. So I decided I’d try the same tactic. I agreed with his premise, even going on to tell them that I had drawings from when I was the same age as my son, and indeed, my kid can draw better than I could at that age.

And that’s what turned it around. I not only got a more pleasant conversation, but got more feedback on how to make the level look better. I even got a slightly conspiratorial confession that my snarky commentator had tried to do something similar once.

It felt like a win. I can’t say I’ll always have time to try and bring people around, but I at least have a plan to try it in the future.