All posts by Administrator

A former New Yorker, now in the Midwest - raising 2 boys and trying to break into game / VR development before I get too old and curmudgeonly to care about anything other than where my cane is...

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.


 

That &@#% Fish…

So, you’d think by giving up drinking for Lent, I’d be better rested, mind sharper, body less prone to aches and generally feeling better and thinner, right?

You’d be wrong.

Felt this way after quitting smoking – there wasn’t any energy boost, no taste buds came snapping back and I still felt as crappy as always, exercise or no exercise. When I stopped imbibing the night before Ash Wednesday, wifey dear commented that the pounds would melt away and I’d stop bitching about the ‘dad bod’ Well, after the 1st week and I dropped 2 pounds, its already started to creep back up – so much for that.

See that little  &@#% fish?

You’d think that was an easy, quick, and painless thing to setup, eh? A 5 minute piece of fluff to add to my level and give it a little ‘juice’. (as an aside, I’m reading a ton of dev blogs and a lot of them seem to focus on adding this mythical ‘juice’ that will guarantee instant sales, clear up bad breath and acne and magically make you more appealing to every gender)

I quick took the scanned image, did my usual Inkscape vector drawing> to .svg. > to Blender> extrude / texture > export to Unity.

This is where the fun begins.

I slapped a quick FSM on it – wait a random time and apply force to launch him in the air, wait for him to come back down – repeat. Simple right? No matter what I did, he kept launching into the stratosphere. NASA wishes they could launch things so easily. Making sure gravity was turned on, played with the force variables, lowering the amount of force until it just flopped to the ground like a drunk frat boy.

OK – time for a different approach. ANIMATE the ^&%$#%er. Slapped a animator controller on it and decided, hey – Unity has a panel for creating animations, let’s use that! Quick added a upward motion, quick added a little rotation so it looks like he’s popping out of the water and diving back in. Slap on the ol’ Vive and BAM! Fish outta water! Jumps and returns to the same spot! GREAT!

Except when I decided, ‘put him in the water and let’s see him majestically leap out like a noble salmon swimming upstream!’ Except every time I moved him and hit ‘play’ – he’d go right back to his original start point. And no matter what I did – parent him to an empty, check (or uncheck) root motion, apply transforms to prefabs – nothing worked.

And it bothered me for days. WHY? WHY? WHY? Why should such a simple thing be so difficult to achieve? Why does game logic always seem so contrary to my way of thinking? I took a little time off from dev work to plod forward on the triptych for my in-laws (which is coming along nicely, thank you) and ponder this problem, occasionally taking time to  try and re-try ideas to get ol’ Fishy McFishface acting like a proper %@#% cartoon fish.

I dunno what got me to the tenuous leap of logic, but it wasn’t until days later and I was putting Number One Son to bed and it hit me: I keyframed his rotation AND position – he literally was told to animate in THE SAME SPOT HE KEPT GOING BACK TO. I told sonny boy that daddy was dense as a brick and deserved to be slapped upside the head (he declined) and after night-nights I rushed to the ol’ Render Machine 2000 to remove the offending keyframes and prove my hypothesis correct.

Well, it sorta worked. Ol’ Fishface was no longer next to the player when I hit play, but he moved to what looked like an arbitrary part of my level. It wasn’t until I was looking at his transforms that I realized it was moving to 0,0,0. Annnd looking at the animator tells me that it only accepts X, Y, AND Z – so it defaults if keyframes are missing.

OK- if THAT’S how you want to play – then fine. I drag the fish over to where I want him to be – add keyframes to his X & Z and finally, at long last he was where I wanted him, and I don’t care if he is a single-use asset- it works and I ain’t screwin’ with it.

Next time I’ll just animate him in Blender.

Adding Thickener to the Plot

So – the video of the interview went live:

Sadly, the video cuts out at 18 minutes and the audio quality dips, but I think the general concept of the game gets out and it makes me excited to do another one. In the meantime – I’ve been struggling with the twin issues of audio + PlayMaker and kids birthday parties…

It seems odd that trying to use different actions to do the exact same thing has different effects – using PlayMaker, specifically the actions of ‘Play Sound’ and ‘Audio Play’ would cause me serious tension headaches. I was trying to create a ‘music manager’ where I’d play random songs in the game level. (as a side note – if I do get funding, the 1st thing I’m adding is a license to the album “Dorica” from the Free Music Archive; it simply fits the game – perfectly)

When I tried to use the action, ‘play random sound’ my music was extremely quiet, and the further the player got from the audio source, the quieter it got… No matter what I did, I could not get the sound to behave – despite the interwebs insistence that changing my audio source to 2D would magically make my problems disappear. It wasn’t until I changed it to ‘audio play’ did my songs suddenly ring out – almost a little too loudly. I quickly rolled a random # generator and assigned the numbers to songs and BAM – music manager – done.

It was nice to get that off my plate because the weekend is going to be a non-stop blur of kiddy-mayhem-at-the-house-of-inflatables and cheap pancakes at the local maple syrup VFW slice of Americana. (not to mention: Daylight Savings Time) Its also going to be difficult to put game dev on mental hold, because the wife just upped the game, more specifically – the plot, substantially.

Just as we were packing off to bed, we got to chatting about little elements, like my brother – who recorded a couple of lines akin to a narrator, very much in the tone of Alec Guiness, and its struck a tone – how we can turn this demo into a full fledged game. We don’t want it to be ‘scary’, even though it deals with a child being lost and separated from parents. And out of the blue she dropped it on me like a ton of bricks:

The kid is on the way to the park and wanders off, and each ‘level’ is a different part of the park, just exaggerated by imagination – and when kiddo is reunited with parent, its simply this epic adventure that was in the kid’s mind…

The desert level could be the sandbox, the hilly grasslands could be the garden surrounding the park, the water levels are the sprinkler play areas… We discussed different playground elements and how to make them levels: teeter-totters, roundabouts, slides – all of them could incorporate different mechanics to keep the game interesting and fun.

I just gotta make it.

Brace yourselves, Lent is Coming…

I had the good fortune to be interviewed about the game. I was cruising the Cleveland Game Dev posts on Facebook, and someone mentioned that the InfiniteGamer Podcast was a great way to get exposure. And Chris, from IG agreed. So I asked if he was interested in a game based on a 6 year old’s drawings.

He was.

So after a few emails, we agreed to interview in the office (after the wife & I furiously scrubbed the cobwebs and kid debris out of the corners!) and eagerly set up a build for him to demo.

http://www.angrycook.net/igpod/

(scroll down to Episode 30)

Chris wearing the Vive and being quite impressed with The Blu.

He was impressed with the Vive and loved the demo. Chris instantly got the idea of it and how kiddo’s drawings ultimately ‘make’ the game. Obviously a seasoned gamer, we launched into a discussion about the influences, how my son (who was sitting on my lap – playing ‘his’ game as we talked) is influenced by classics like Super Mario and Zelda and in turn how it shaped the drawings I was using for the demo.

We wrapped after a while and I got back to my routine. As I was making dinner, the wife reminded me that Lent was around the corner – and I decided alcohol had to go. I need to start losing the spare tire and the beer isn’t helping. That, and when I have booze and then go to bed – I snore more, and that keeps the wife up.

Plus I have more energy, which is good – the sis-in-law is having a Easter brunch – and I need to bear down and get her paintings done. I can’t focus on game dev without thinking about the paintings, and I can’t paint and not think about the game. So I have a month to finish them and then I can focus on more important things.

Like finishing the demo. Like getting my Steam page up and running. Like dealing with the kiddos, and the spate of ‘potty accidents’ we have been experiencing. Like getting the attic done.

Like whittling down my damn to-do list.

Demo nearing completion!

So, between furiously trying to finish the triptych for my Bro / Sis-in-laws, I’ve been furiously trying to get my demo level completed. Hearing that Steam is ending Greenlight,  I’ve got even greater incentive to get my Steam page up and running.

After showing off my level during a birthday party for my youngest (all the kids, and most of the adults know about my Vive and want to play in between cake and presents) and got tons of feedback. Its amazing how quickly a 9 year old can be a developers harshest critic. It also helps when people just ‘get’ the game – the mechanics, the milieu, the theme. One of the toughest aspects to grapple with is allowing the player to turn. Is it static and no turning; use a control to turn – like Google Earth VR where you can use the grip controls to spin the earth around? Or as another player suggested – only turn around when whatever ‘quest’ requires a different point of view?

tentative way I’m handling dialogue

Which leads into more questions: how do I guide my player? My son hasn’t been exactly forthcoming with sketch requests. On my demo, I’d love a simple sign at the start that directs the player to go and find the king… except my kids are just like me: stubborn as all get out.

I am taking the various photos of artwork and teasing out all the letters to upload to MyScriptFont, a site where you can generate a TTF font of your handwriting – I’m using it for a GUI during the ‘sock hunting quest’.

Many questions – little time for dev work.

Reality Sets In

So, out of the blue, I get a text from an old friend back in NYC. He had seen the post I put on FaceBook and wanted to chat. I was busy packing up kiddo #2 for a playdate at the library (a long overdue one, to boot!) and said I could chat – but quietly.

We got to our playdate, and #2 son was greeted with smiles and a card made just for him (it amazes me just how insanely cute and adorable kids can be right before they spill oil based enamel paint all over your vintage 1986 IBM ‘M’ keyboard…) and I explained that I needed to take an important call… like the one coming right this second.

My buddy and I exchanged several foul mouthed greetings (ye gods I miss some aspects of living in the city – cussing is elevated to an artform there…) and he quickly got down to business: he loved the video and has some people he wants to show it to. Moreover, needs documentation and whatever else I can put together to see if we can possibly get funding and wants to get a broader idea of what I’m trying to accomplish. He likes the idea that its for VR and we talk about full on VR rigs and mobile headsets.

dude, I TOLD you…

Jeez, I’m trying to figure out how to make this into a game- that’s what I’m trying to accomplish.

But – we talk, brainstorm, catch up, cuss some more and now I’m committed to creating a prospectus and perhaps more to see if this idea has legs. In the process, we inadvertently come up with a whole slew of ideas, many of which are waaaay beyond my paltry skills (I love the idea that we can use the controllers to ‘draw’ in the world to help solve problems, like drawing a bridge to get across a canyon…) and I relegate them to expansion pack ideas – or sequels.

Its also putting pressure to get a demo level DONE. While looking at what I had in the level already, plus looking at the drawings floating in the file (plus some ideas from the wifey) I took the castle already in my scene, took a drawing of a character with a crown and tossed him in Spriter and took other elements to make a ‘quest’ of sorts: collect 5 stinky socks, and the king will let you pass through the castle:

I’m leaning away from trying to take drawings that #1 son did and extruding them into game levels, it looks wrong somehow and doesn’t seem to convey the same atmosphere as the open world does (in the video, there is a section of white blocky areas bordered in blue that were the old style)

I’ve been finding that the sprites in a 3D world are creating a bit of a headache – a lot of the static background props were slowing down my framerate, so I traced them in Inkscape and exported .svg files into Blender, extruded them and slapped the drawings back on as texture maps – which made it possible to rotate the quest items (socks) as soon as I can figure out why my axis isn’t aligned properly.

I’m hoping to have a level properly in shape and running in a week or two, release it as a beta for playtesting and figuring out problems and within a month, get a demo out on Steam.

Crash

So, last month my large data disk died.

Without warning.

Right before I was going to back it up. I had been remiss due to the holidays (and more holidays, and back to school, etc.) And had not backed up in what turned out to be a really long time.

Lesson learned.

So as I’m desperately trying to remake my project from old backups, demos I posted online, random files from my laptop and anything else floating around. I did OK, getting pretty close to my last working version when I had something of an epiphany / revelation / slap to the head.

It wasn’t very much fun. Well, I told myself – that’s rather the point. Its about how crappy people can treat each other, and what its like to be on the receiving end of peoples disgust and scorn. After replaying it to test if I had missed anything, I came to the ego-bruising realization that it wasn’t very good. Also, it was slowly dawning on me that I broke a cardinal rule of game development: start small.

Not that my ‘game’ was a sprawling 60 hour MMORPG with multiple branching storylines; it was  nothing more than a static environment with a few interactable NPCs and triggered events. Turns out even that was too complicated.

So – as I was agonizing over what to do next, I was organizing some drawings my eldest had done and I came across this one:

and it just struck a chord with me… My son is 6, on the spectrum (non-verbal) but has drawing talent that is better than mine at a similar age. I’ve always envisioned making a 2D platformer with his work but that is a whole different beast from the 3D VR work I’ve been doing and would require more learning, more time away from other projects – time I really don’t have to spare.

So, as I’m sitting at my desk, my 6 year old wanders into the office and plops down on my lap and grabs my Vive, looking into my eyes and silently prompting me that he wants to look inside. I shift him around and open up a test Unity project (thanks VRTK for having simple projects to tinker with!) and throw the image above on a plane and slap a quick character controller on it and hit play.

Number One son positively howls with delight as he sees his drawing moving around on a flat plane, me controlling it with WASD as he looks around clapping his hands and laughing. I grab my Steam Controller and turn it on, a nice surprise when it controls my character as well and thrust it into the kids hands. He’s even more excited now that he is controlling the action and laughs as he repeatedly steers the character off the ‘world’ and plunges into the depths below. My wife walks in and informs him its time for bed and I get teeth brushed and tuck him in, kissing his little head and smiling at his delight.

I throw the character into Spriter Pro (an impulse purchase off of Humble Bundle) and give him (her?) a quick walk cycle and re-import back into Unity – its even better. I put his drawing on Facebook, to see if it resembles anything (particularly, a trademarked character) and people give me answers like, ‘lady bug construction hat’ or ‘African American lady bug superhero’ – so I’m kinda content that he’s not copying a kids book or game he’s played.

I throw in a few more drawings and screen cap the above footage and show it to the gang at the VRTK Slack channel. They LOVE it – I get a ton of ideas thrown at me (including the near impossible one of making it like Scribblenauts and have the player draw solutions to level puzzles) and I need to copy and paste all of them into a word .doc to keep track of them all.

So – I think I’m breaking another game dev rule: don’t get excited about a new project without finishing your current one. Looks like I enjoy breaking rules and I’m getting sucked into a simpler, more attainable goal.

And I couldn’t be happier.

A Day in the Life of Dev Dad

Back off man!

*Night Before* – “OK, gonna get up at 5:45 AM, coffee and dive right in and get some work DONE!”

6:30 AM – The Next Day.

“Crap – slept in again!” Quick, coffee, take my old man pills (BP & cholesterol) quick check emails, headlines, VR Dev Slack group… “WHAT!?! VR Juggler Sim is getting released NEXT WEEK??” *Sigh* – “That guy started dev’ing like 2 months ago…  how the flying @#$% did he get a release out that fast?”

THUD. “Get off of me!” – Oh, yeah, he probably doesn’t have kids. Or a old house that needs more repairs than the Millenium Falcon. Or bills. Probably has his mom bringing him hotpockets and uber caffeinated beverages 6 times a day. Ok, before the AM rush – what did I get done…

Oh about 3 brush dabs on a texture map I’m trying to tweak and 5 minutes watching a YouTube video explaining how to do animation layer masks so my character can ACTUALLY pick something up rather than have objects attach to the BACK of his hand – because, you know: immersion. I had to rewind the same section half a dozen times because the narrators accent is so thick, I can’t tell if he’s from Germany, Bangladesh or Pittsburgh.

Alright – get the kiddos up, fed, dressed, check the Slack channel again; oh look VRGamerChick and JediDev were up all night playing “Virtual Beer Pong” and laughing their asses off over how the physics got screwed up and was launching the ball into the ionosphere… bookmark the screencap to watch later as lactose intolerant child is busy pouring his expensive milk substitute on his brothers head.

Eldest child is off to school – leaving me with the needy 3 year old who wants to go to the library; which is fine – I can ruminate over how to get my grasping animation to work and finally get over this hump that has slowed me down for the past couple of weeks. Contact the dev of the IK plugin and ask for guidance – who promptly tells me that the components I’m combining together to make my game work, shouldn’t be used together.

Library done and time for lunch – I try watching the tutorial video again, getting nowhere because my 3 year old want to discuss each and every family member and which of them has a penis and who doesn’t. Just grateful we’re having this discussion in our kitchen, rather than the Toddler Story Room.

#1 Son is due home from school any minute as I try to accomplish something akin to housework and cleaning, assembling something vaguely called ‘dinner’ – which my kids won’t eat because it contains things like ‘nutrients’ and I have a flash of inspiration to check the order of my components and / or check if my animator has ‘root motion’ enabled – it always seems to go back to that stupid checkbox, which I still don’t understand. Quick sneak upstairs while the kids are playing splitscreen Portal 2 and test my hypothesis. I’m starting to hear yelling as I’m waiting for my base stations and HMD to warm up… Jeez guys, just 2 more minutes…

Crap – that doesn’t work either, quick run downstairs to see one child bludgeoning the other with my Steam Controller. Time Outs issued. Threats over removing games. Promises they will be shipped off to the grandparents if they don’t straighten out.

MAN, am I tired. Stumble thru dinner and showers for the kids, snacks and bedtime routines. Guzzle a beer or 4 as I catch up with the wife and her day, hoping to snag just a few more minutes of dev work before my eyes permanently weld shut until I hear the kids screaming again… Nothing more I can glean from the tutorial video, look at my character and start seeing if there are other options I can tweak so I can either have my character grab things or have him float in the air 2 feet below me. OK, things look good on the main camera / rig / mesh/ let me drill down to see if… wait. Go back.

YOU MEAN TO TELL ME I HAD TWO ANIMATOR CONTROLLERS ON THE SAME OBJECT?!?!

#$%

#$%^

$%^##@*(

Crap. Bedtime. Oh well – I suppose it is progress… one less thing to figure out. Let’s see: gonna get up at 5:45 AM, coffee and dive right in and get some work DONE!

Gamification

Well, despite the kids being sick, Halloween, the election and my hard drive dying on me – work must continue eh?

I got the Final IK (VRIK) solution sorted out and my character now moves fairly close to approximate a human with the upper torso. The twist relaxer  (found on this page, along with a lot of other helpful stuff!) helped get my arms moving naturally with the user. Animations for actually grabbing things will be coming soon – it sounds like my colleagues in the VRTK Slack channel are struggling with the exact same thing, and I’m hoping their experiments point me in the right direction to gallop.

Now comes the overly tricky part. Since I’m lousy at coding and have no patience for it, I’ve been leaning heavily on Playmaker to handle my ‘programming’ and getting cheap Udemy courses to figure out how it works. This particular course helped tons in trying to integrate Unity’s Mecanim system with Playmaker (and from a fellow VRTK’er who actually was homeless) and suddenly propelled my thinking in whole new directions.

Since the Udemy course deals with things like health managers and damage, I’ve adapted some interactable objects to work with my randomly patrolling cop. Throw something at him and it hits, he comes over and commences stomping on the player. This has led to the ideas of  gamifying the experience, byadding a health system, or a sanity system, collecting coins as ‘points’ possible upgrades (better clothes provide more sanity, paying for a public shower increases coin payouts from NPC’s) and the like. Originally I just wanted a simple experience to try and convey what it feels like to be a ‘undesirable’  to get people to feel empathy; but the lure of making it a playable experience that one can ‘win’ is strong.

But, as others wiser than myself have said, Keep It Simple, Stupid. Plenty of indie games have fallen by the wayside because they’re simply too complex in scope to ever complete. Plus seeing that my hard drive failed, I’m trying to piece my files back together from sporadic backups and hard drives that I’ve replaced, but never wiped. In doing so, I’ve come to realize I’ve been working on this (on and off) for 2 years now, and am only just now feeling like I’m on the cusp up being able to show off some work to the dev community.

I’ve also been racing to try and finish the 3 paintings for my sister in law – a wireless solution for the Vive has been announced and I would love to get my hands on one (once I get the $$) – even if its to see it doesn’t work as promised. I LOVED the feeling of raw potential when I strapped on my DK2 and the early promise of an emergent tech – I’m certain not having to worry about a cable would further enhance the immersion. And the fun. And the breaking of things.