Friday, April 9, 2021

Getting started with HaxeFlixel in 2021

Warning: this is a fairly technical game developer-y post. If you came here for gay sex, I'm sorry.

For an upcoming project commission, I'm making a 2D game with crowd simulation and simple controls that works well on mobile browsers. (Reminder: for iOS, that means WebGL 1.0 and no WASM.) The engine should be able to render and simulate 200+ lightweight game objects -- frame-animated sprites with simple collision, no fancy physics or shaders.

Which game engine should I use to maximize ease of learning and compatibility, and manage hundreds of simple objects on-screen? Here was my thought process:

  • Unity WebGL: way too heavy and slow for mobile browsers, and maybe overkill for a no-physics 2D game anyway. (Although the Lil Nas X 3D twerking game runs surprisingly well on iOS's WebGL 1.0, I wonder how much they had to optimize?)
  • Unity Project Tiny: as far as I can tell, Project Tiny and its DOTS dependency is still in early development. The random caveats and various in-dev inconsistencies with regular Unity would also be frustrating. And as with many other Unity side projects, its long term future feels really hazy.
  • Construct: seems ok, and I think I could've gotten used to the visual block scripting, but overall the pricing and licensing feels weirdly restrictive. I have to pay to use more than 2 JS files? I have to pay to use more than 1 font, or make an animation more than 5 seconds long? These are some really bizarre artificial resource limits.
  • Phaser: seems popular enough with decent TypeScript support, but I want the option of building out to a native executable without a weird Electron wrapper or something. Their monetization model (free open source base but you pay for "premium plugins" and tools) is one of the more generous ways to go about this, I get it, but it still feels weird to me and reminds me of Construct.
  • Godot: I've wanted to try Godot for ages, but in the end I felt like I didn't have a good sense of what its HTML5 Web export could do + learning enough of the "Godot way" and GDScript would've taken a while. It's also in the middle of a big break between v3.0 and v4.0, and ideally I'd like to wait until like v4.2 to commit to learning it.
  • Heaps: promising and some people get great results with it, but maybe still too early in public lifecycle for a total newbie like me, with not enough samples / docs / robust official tutorials to learn from yet. If or when I do try out Heaps, I'll probably try using Deepnight's gameBase project template.

In the end, I chose to build this particular project with HaxeFlixel. This post details my early impressions, thoughts, confusion, advice, etc. with learning it.

Saturday, February 27, 2021

Updates from antipodes, year 2021

Hey all, it's been a while. Here's a brief update on my life --

I've successfully moved to New Zealand and I currently reside in Auckland. I'm currently working as a remote contractor on a secret project under NDA, but I imagine we'll probably announce sometime this year if everything goes well. 

I'm still working on some personal projects:

  • I have two gay games that are 95% done, they just need some playtesting and polish, but finding an in-person playtesting group in Auckland has been a bit challenging. Regardless I'll probably be releasing these games this March and April. 
  • This will be the year I attempt to finish my bigger long term project -- a sex work deckbuilder game called Macho Cam. That's about 60% done. I need to redo the card system for the 5th time.
  • For the long-awaited Radiator 3 release, my plan was to wait for Unity HDRP to get finalized before attempting to port the entire Radiator codebase from Unity 5.6 (I know, I know) to Unity 202x. But maybe I should just stick to the built-in 3D pipeline anyway.
  • I've also been contributing a lot to everyone's favorite Unity dialogue system Yarn Spinner and I've been trying to clean up my dialogue tool Merino, all of which might see its official v2.0 public release this year.
  • Most of my Quake mapping is on hold, as I dedicate my level design energies to a different engine-agnostic project. More to announce there when it's ready, which will, again, hopefully be this year.

For those who happen to be in New Zealand, I'll be giving a short in-person talk about sex games at Play By Play, which I'm told is a bit like the kiwi equivalent of the Indiecade conference track -- and it's all part of the larger in-person New Zealand Games Festival in Wellington, April 19-25, 2021. I'll be around for most of Play By Play, so feel free to say hello if you see me... Unless the country suddenly plunges into lockdown that week?

Hope everyone is having a tolerable 2021 so far. Good luck out there.

Monday, October 19, 2020

The year of changes - kia ora Aotearoa

Earlier this year I submitted my letter of resignation as assistant arts professor at New York University, so Fall 2020 will be my last semester as full-time faculty at NYU Game Center.

Working at NYU Game Center has been an immense privilege and honestly it's a dream job for any game developer. I will miss my students, colleagues, friends, and mentors. But unfortunately it was impossible to meld a job about constant meetings with a major life change:

I'm leaving New York City and moving to New Zealand.

I realize I have the rare privilege of leaving the US, at a time when most of the world has shut its borders to US citizens. But I don't think of it as an escape -- NYC will recover and stay NYC, probably, and NZ has plenty of its own problems, so let's just put aside the COVID factor and think of it more as a hiatus... I'm taking a hiatus from residing in the US, and seeing what else life has to offer.

This move also means a short (or perhaps longer) hiatus from being a full-time academic. I'll still try to make myself available to students sometimes and maybe I'll even have the pleasure of teaching some classes at a NZ university, but for now, academia likely won't be the main focus of my life. And while I must stress again that I will miss my colleagues and students dearly, I must admit, I'm also looking forward to new possibilities for my professional and creative life:

First, I have a few commercial-oriented games in the works. Look for the releases next year.

Second, starting in January 2021, I'll be available for hire for work around New Zealand (I have a NZ work visa) or remote work from anywhere. 

I'm a generalist 3D designer / developer who's very experienced with Unity, and I'm familiar enough with Unreal to prototype in BP, build levels, and get myself up to speed with minimal supervision. I'm also available as a level designer + scripter + tolerable environment artist / asset mangler for 3D projects of all types. 

My portfolio is here, email me at yang.robert.w(at)gmail(dot)com if you want to talk. Paid gigs / positions only. CV available on request.

In the meantime, kia ora Aotearoa.

Tuesday, September 1, 2020

new Quake map: "It Will Be Summer Eventually"

My third Quake map is another multi-level arena, a bit similar to my previous map Smell It In The Street. I made it for Speedmap #210 (SM210), a weekend map jam on the Quake Mapping Discord with a theme of "overgrown" by jam runner Naitelveni.

For this map, I think I did a bit better with combat design. The arenas are a bit more open and free than before, and the encounters have a bit more purpose and push. I also make heavy use of Copper v1.11's improved ogre aiming, fiend jumping, and trigger_monsterjump spawnflags.

Sunday, August 9, 2020

new Quake map: "Smell It In The Street"

I made another Quake map! This one is called "Smell It In The Street" and it was made for the Doom Tintin map jam, a level design jam centered around using Quake mapping community member Tintin's texture pack that samples from Doom 3 textures.

Some brief level design thoughts follow:

Sunday, June 21, 2020

Hard Lads as an important failure



This post “spoils” what happens in my new game Hard Lads. If you care about spoilers, you should play it before reading. It takes about 5 minutes to play once, and maybe 20 minutes to play it to 100%.

In 2015, a phone video of young muscular White British men hitting each other with a chair went viral. Why make a game about this meme now? Some might characterize all my output derisively as "meme games", which is fine, but personally I’ve tried to avoid doing it on purpose. First, my games themselves should strive to be the original meme, and not merely a fan reproduction. Second, many memes are steeped in internet gamer culture, the only circle jerk I want to avoid.

However. I think British Lads Hit Each Other With Chair is one of those classic internet videos that merits special attention. It does so much in a single minute, and it's not about video games at all. So that’s why I made Hard Lads.

Friday, May 29, 2020

The powerful presence of non-presence in "Out For Delivery" by Yuxin Gao, Lillyan Ling, Gus Boehling


"Out For Delivery is a 42 minute playable documentary shot with a 360-degree camera. The slice-of-life experience follows a food delivery courier in Beijing on January 23, 2020, the day before Lunar New Year, and the day Wuhan shut down due to COVID-19."
This is one of the few 360-movie experiences that really works.

In the past, I've criticized the VR empathy machine complex and its cynical use of Syrian refugees to sell VR kits, but Out For Delivery wisely sidesteps the VR ecosystem. Without the restrictions imposed by the head-mounted format, such as a stationary camera (a bumpy moving camera makes VR viewers sick) or impatience (VR demos demand constant engagement), the designer and filmmaker Yuxin Gao is free to focus on the actual subject at hand. The camera moves freely, cuts freely, lingers freely. The result is the most difficult aesthetic to achieve in art: honesty.

Sunday, May 17, 2020

Tactics games in 2020: game design notes about Horizon's Gate and Gears Tactics

I finished playing two 2020 RPG tactics games recently: Horizon's Gate and Gears Tactics. I've also written at length about Invisible Inc before. I clearly want to make a tactics game someday? Anyway here's my design analysis and thoughts.

NOTE: This post has a lot of mechanics / game design spoilers, but no story spoilers.

NOTE 2: This isn't me trying to prescribe what "good tactics design" is for everyone. I'm just trying to articulate my own personal tastes and rationales.



Horizon's Gate

Horizon's Gate is a retro pixel art open world sailing game about exploring towns and dungeons, buying low and selling high, and getting into battles where you push and pull and surround. It's very good and you should play it. If you don't have much time, you can probably stop after like 5 hours.