Novantica is set in an open world environment with various interior scenes that asynchronously load in when the player is nearby.When I started developing the game, I was originally planning to use a top-down third-person perspective, like many of my favorite old adventure games.Because it was set in an urban environment, I also wanted the player to be able to look up towards the sky and get a sense of the urban architecture.I tried a few different approaches to shifting the camera based on how the player was moving, but never quite achieved what I'd hoped to.Eventually I decide to make the camera work like many third-person perspective games and allow the user to move the camera using the right stick on a controller.
This approach worked really well for the open outdoor areas, but made the interior scenes feel cramped and awkward.Many other games just leave things to the player to figure out, but I've never really liked how games did that.I can't tell you how many times I would stop in the middle of a cave inTears of the Kingdom just to look around and try to understand where, exactly, Link was in relation to the cave.This free camera movement also made some of the puzzle mechanics in the Novantica awkward – e.g. making it difficult to see where a box needed to be pushed.
Then, I had an idea I wanted to test out...
SinceNovantica is set in a futuristic city, I always wanted to make sure the game had a certain level of city life – people walking around, bots zooming by, drones buzzing, trams gliding, and bikes rolling along.I hadn't done much 3D modeling before learning Unity, and, while modeling props, buildings, and other blockish things didn't seem to difficult, I struggled with creating humanoid characters.I knew that I wanted something low-poly, simple, and a bit cartoonish for the game's characters, but I'll admit that character design is probably not my strong suit.
One of the more perplexing bugs I encountered working onNovantica so far was when all the NPC extras in the game suddenly turned a greenish-yellow color.I had just swapped out URP materials for ones using a new shader, so I suspected that change made this happen,but I didn't want to revert back to the old materials.To add icing to the cake, this issue was only happening in builds, not in the editor.I started to dig in, but didn't realize it would take so long to track down.
In March 2020, I remember the former mayor one day telling people to go out for dinner and see a show – and the next day hearing that it wasn't safe to get within six feet of another person. If you haven't been to New York before, it's not easy to walk around outside and not get within six feet of another person. In hindsight, it was relatively safe to be outdoors, but at the time, we were afraid to step outside the door for a few weeks.
I also remember a lot of people thinking that the whole thing would blow over in a month or two, but everything that I had been reading made me suspect that was far too optimistic.As someone who walks to get to 99% of the places I'm going and thoroughly enjoys it, I realized that I would have to pick up a few new hobbies to keep my sanity.
Since 2020, I've been teaching myself game development with Unity and have been working onNovantica,a sci-fi adventure game, set in a futuristic urban open world where time travel is common,god-like AI govern the world, and a mysterious event has disrupted the city.You canwishlist Novantica on Steam.
Over the years, I've worked on several open source projects that helped defined modern approaches to styling front end applications.Starting in 2013, I worked with Adam Morse and John Otander onCSS Stats, a web application to statically analyze a site's CSS.In 2015, I createdBasscss, the first atomic/utility-based CSS framework that helped popularize using multiple classnameson a single element to style HTML.Basscss used a small set of theme values for font-size, color palettes, margin and padding scales, and more,which is now common practice in front end design systems.If you've seen (or cursed at) code that looks like `class="block mb2 blue"`, then you've seen my work.In 2017, I released v1 ofRebass (also my first time onHacker News),a library of stateless functional React components with styling,which helped introduce the concept of styled UI components in React.Extracting the utility style props from Rebass, I createdStyled System in 2017.In 2019, I releasedTheme UI, an extension of these ideas that provided utilities for dark mode, styling content in MDX,and a universal `sx` prop to style elements inline with theme-based values.
I've also worked on various other open source projects.I createdMDX Deck as a simple way to make slide presentations with MDX.Helped John Otander with the conceptual design and syntax ofMDX, a combination of markdown and JSX.Created several color tools, includingColorable for testing color contrast, Palx,Spectral, andHello Color.SVG-related tools, includingLoading,Geomicons, Microicon,Paths, andReline.
As a retired DJ, I also produce electronic music, previously running a project calledMicrobeats,in which each track was created in one hour or less.I am one-half ofMrsJxn, a collaboration with Adam Morse.I also dabble with interactive music apps likeSkullcat.Checkout mySoundCloud.
I am currently working as a design engineer atVal Town.Previously, I worked at Gatsby JS, Priceline, The Grid, Etsy, Kickstarter, Stitch Fix, Living Social, and Opower.I studied sociology, Japanese language, and graphic design at Marshall University.