Category: Ramblings

glTF is Cool!

What is glTF you ask? It’s a file format for 3D models — and it is cool! It was created by the Khronos Group, who are the same folks responsible for OpenGL, and it is glorious. First, it contains all the data you need: scenes, lights, cameras, geometry, materials, animations, & morph targets. Second, it’s open, well-documented, and straight-forward. Third, it has both binary & text formats, and the text-format is JSON. Fourth, did I mention the text format is JSON? Oh, how I love JSON!

I suppose you may have to implement other 3D format readers to truly appreciate it (DXF anyone?), but it is slick. For any programmer implementing a 3D model reader who is trying to decide between OBJ, DXF, Collada, et al., the answer is glTF! Trust me on this one.

My Twitter Obsession

My Twitter account was made back in 2014. Like this site, it also sat pretty much idle for 3 years. I only picked it up a few months ago, so it is fair to say I’m a Twitter noob. I started following a couple artists who had tweeted with #3dmodeling, but it didn’t take long for me to notice that some of these people had tens-of-thousands of followers!

At the time I had 9 followers (8 of which were from 2014 and inactive). Having a numerical value assigned to your insignificance is pretty humbling. “What would I have to do to get that many followers?”, I wondered. And, I’m still wondering! Without being a celebrity, attracting that size of an audience just from posting images of your work is very impressive.

I have 45 followers at the time of this post. They are unreasonably important to me. ūüôā I had 49 a few days ago, and I’m still in mourning over the loss. After each tweet I anxiously wait to see if I pick up any new followers. If even one new person follows me, I celebrate.

This is probably not normal, and I may have a problem. But, surely the obsessing over followers wears off? After 100 followers? Or 1,000? I may need an intervention, or maybe I just need to figure out how to make better tweets!

Back to Programming: JavaScript, WebGL, & BabylonJS

Time to switch things up and do some programming — on a simple game. For most game developers, using Unity or UE4 is a no-brainer. Those engines are powerful, cross-platform, and affordable. So, of course that isn’t the route I’m taking.

I want to make a web game! A game that is as easy to access as keeping up on your favorite blog. A game you can play anywhere, on any device that has a web browser. While Unity & UE4 support HTML5/WebGL, they aren’t quite there yet. And, there is some question how effectively the resulting game could interact with other HTML5 elements of the page.

Enter BabylonJS. It’s an engine built on top of WebGL and is amazingly robust. It is primarily a graphics library. It is lower-level than working with Unity, but it has a similar feel in that most things “just work”. WebGL games are limited, both in performance and features, compared with their native counterparts. But, having someone able to play your game by simply typing in the URL calls to me.

The game is an experiment and will be simple, but hopefully fun. Here’s a screenshot of the beginnings of “Sheldon“. You can’t do anything except walk around¬†(fun game, right?) — yet. The game will be updated as I work on it, so if you are interested in seeing a raw, non-curated, game-in-development, feel free to keep checking back. Here’s the link:

Learning a New Skill

After spending years developing a skill, you take for granted the ease with which tasks using that skill are accomplished. Even the very toughest tasks cease to be a question of “if?” or “how?”. After you have become really good at something, the only significant question left is, “how much time will it take me¬†to complete it?”.

I have spent many years programming, and I would like to think I have gotten pretty good at it. I have practically forgotten what it is like to look at a compiler or linker error and have no idea what it means, or how to fix it. Breaking complicated problems down in to smaller, solvable chunks is now routine.

Let me contrast that with the immense amount of effort and pain involved when I am trying to move a single point in 3D space to an aesthetically pleasing position. Or, if I am being honest, to move that 3D point at all! “Why is it moving that way?” “I didn’t select that!” “Woah, now where did it go??”

I don’t think it is much of an exaggeration to say that it might¬†take me less time to build some of these models for real than it takes for me to model them. However, I am seeing slow and steady improvement. And, with that improvement, I now present to you this anatomically-correct milk jug.

A New Direction

Originally, my focus was going to be on video game development. Things have changed! The vision has broadened to include a wider array of digital media: animation, music, and storytelling. The format(s) of the project(s) are currently being explored, as are the different possible combinations.

All of this does sound a bit scattered and unfocused, but sometimes you just don’t know where you want to be until you find yourself there. Hopefully,¬†J.R.R. Tolkien’s old adage “not all who wander are lost” will hold true.

Feel free to check out the About page for more info.

Distracted by Unreal Engine 4

Over two weeks ago, Epic announced that UE4 was available for $19/month. This completely derailed things here for me. I¬†was in the middle of working on a minimalist 2D side-scroller using the Unity engine, but could not resist taking time-out to evaluate the industry’s premier game engine — and I’m¬†still completely distracted with it.

UE4 is not Unity. It has a much steeper learning curve and for the novice UE4 developer things rarely “just work”. UE4 has a component-based workflow similar to Unity with a gorgeous user interface, but the systems are complex and understanding how everything fits together is non-obvious. Even after experimenting with UE4 since it’s first day of availability, it can still take several hours to build a simple controllable, animated character from scratch compared with the 15-30 minutes it would take in Unity.¬†I suspect many, at this point, have returned to Unity where simply writing a script and attaching it to a game object can make that object do nearly anything and in almost no time.

Yet, after many nights of frustration, I¬†cannot seem to put UE4 down. It’s powerful, it’s beautiful, it’s prestigious and most importantly it’s available in it’s entirety for only $19/mo — which, by contrast, makes Unity look expensive, if not downright unaffordable for a small Indie developer hoping to ship on more than a single platform.

Would I like to make a game with UE4? Definitely. Would that game be a 2D side-scrolling brawler? Probably not. Will UE4 become a permanent distraction? I will just have to wait and see.

I’m a Game Dev, not a Web Dev!

I have a confession. ¬†I have absolutely no clue what I’m doing. ¬†Yet, I’m having a blast trying to figure it all out. ¬†I typically spend my time thinking about how many milliseconds a frame takes or whether the character’s animation states blend properly. ¬†I’m not accustomed to all this new-fangled web technology!