Tuesday, September 23, 2014

Introducing: Mural (v0.2) a simple 3D scribbling tool

EDIT: v0.21 adds .OBJ export from the webplayer; you can now actually use this to make models and import it into whatever you want. (If you want to use this in Unity, you will need to apply a material / shader that uses vertex colors and doesn't cull backfaces, so pretty much any of the "Particle" shaders)

There are 2 common modes in 3D polygonal modeling: vertex manipulation and sculpting. But for many of these workflows, a 3D mass exists mostly as a surface to be unwrapped and painted. If all we need is a 3D canvas to paint upon, why can't we just go straight to the painting part?

"Mural" is an experimental freehand 3D modeling tool similar to SketchUp's "Freehand" tool or the impressive Tilt Brush, except SketchUp imagines it more as a tracing aid and Tilt Brush relies on VR hardware and doesn't readily export geometry.

I want to make Mural as an accessible 3D tool that borrows game UI metaphors (specifically, first person mouselook) and directly exports the resulting 3D models for use in games, or anything, really. Many of the models made in Mural will not look like "traditionally" modelled 3D objects, and intentionally embrace glitchy non-representational aesthetics, twisted normals, vertex colors, and z-sorting artifacts. If it hasn't already occurred, I imagine the "politics of 3D" will shift to embrace these phenomena as artistic features rather than aesthetic flaws.

(I am also indebted to Rich Edwards' early research with "3d concepts" using semi-transparent planes.)

  • decoupled canvas movement from painting (thanks for suggestion @Dewb) so you can now move the painting surface WHILE painting
  • added simple .OBJ export for webplayer; press F12 to save a .OBJ to your computer
  • fixed stroke shader, colors now render properly
  • added a color picker hue / saturation circle, adapted from code in UnityPaint
  • replaced line renderers with generated meshes from Vectorosity
  • added .OBJ export
  • added very basic undo support (press [Z] to delete most recent stroke(s) )

FUTURE DIRECTIONS FOR MURAL: make it into a complete 3D world maker / game maker; add cooperative modelling / network multiplayer session support; better painting tools and interface; add file-writing and OBJ export in webplayer via JS hooks

Monday, September 15, 2014

Porting simple Half-Life 2-based singleplayer mods to Source SDK Base 2013 in 3 steps

If you have a lot of custom code, there are probably some compelling reasons NOT to try to upgrade your existing code to Source 2013 unless you have a lot of free time to hand-merge everything... but if you just have a mod consisting of maps running on Half-Life 2 or the episodes, the relatively easy update to Source SDK Base 2013 gives you better performance (the Steampipe VPK-based loading is much faster than the old GCF system), integrated VR support, and maybe most importantly, it is a freely available "standalone" release to anyone with a Steam account.

The process is basically 2 steps, but I added a 3rd pretty crucial "step" that came up in my own mod...

Friday, September 12, 2014

Liner notes: Intimate, Infinite (part 2), on protagonists / race / gardening / chess.

These are some notes about my process / intent in making my game Intimate, Infinite. Spoiler warning is in effect for this game as well as the 1941 Borges short story that inspired it. Part 1 is on my general reading / plotting / interest in the frame narrative.

Borges' protagonist Tsun, or my Wang Peng (a name taken from a fictional college student in a Mandarin language textbook) has mixed motives for killing the sinologist.

He's a Chinese man more or less assimilated into Western ways, with a healthy dose of self-loathing for his own heritage. That makes this story one of the few "Western literary canon" texts that directly engages with how Asian people might react to Westerners being fascinated with Asian stuff (side note: in this vein, Irma Vep is one of my favorite movies / I really want to make an Irma Vep game someday)

Wednesday, September 3, 2014

Much Madness is Divinest Sense.

A couple things got me thinking:
  • Source SDK Base 2013 does not require any purchases whatsoever, and is freely available to all Steam users.
  • DOTA2 is using Source Engine 2, or at least some substantial derivative of it.
To me, that means Source 1 is definitely nearing the end of its life, and Source 2013 will stand as (perhaps) the last definitive engine fork for Source 1. There's a good chance I won't have to fix up my release ever again because of Valve updating Episode Two and breaking all mod compatiblity: furthermore, anyone will be able to download Source 2013 and play my mod.

Preliminary tests look promising: both chapters of Radiator 1 worked in Source 2013 with just a little massaging. So, contrary to all expectations (I'm as surprised as anyone), I'm dusting off the rest of Radiator 1 and the whole thing might actually get completed now, several years later. I'm cutting a lot of the stuff I planned before (mostly boring puzzle gameplay stuff that I was trying to hack-together using map scripting) and the end is already in sight, it's just going to be a lot of narrative scripting and re-learning the rhythms of working in Hammer.

... And hopefully this'll be the last time I have to edit and update this thing.

(Oh, and I've also updated my portfolio with all the latest trends. HTML5! Bootstrap-whatever! Responsive-whatsits!)

Monday, September 1, 2014

September pageant at Makega.me: "MAGIC IS REAL"

Merritt Kopas is the makega.me pageant runner for September, and she has come up with a doozy:
"We're all born a Witch. We're all born into magic. It's taken from us as we grow up." - Madeline L'Engle

magic has been incorporated into games for decades. but it's most often in a way that borrows from the tabletop games like dungeons & dragons -- as just another means of inflicting damage. magic in videogames is both spectacular and mundane. fireballs are boring.

magic is the power to change our circumstances, to invoke the world we want to inhabit. magic is a little evening ritual, the charms we carry to protect us, the spaces and times we invest with meaning. magic is a response to the destructive, crushing weight of oppression. magic is spectacular and mundane, but not in the way it's depicted in games.

make a game about magic that veers away from the usual treatments of magic in games.
The full pageant brief is here. I'm looking forward to seeing all the new games people will be making!