Showing posts with label resolution. Show all posts
Showing posts with label resolution. Show all posts

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.

Tuesday, June 5, 2018

Remastering Rinse and Repeat

Rinse and Repeat remastered, for Radiator 3 (2018)
Rinse and Repeat (2015)
I'm nearing the end of the remaster process for my shower game Rinse and Repeat, as part of a future re-release planned for late 2018. As I've said before: if you have the time and energy, I highly recommend remastering your games -- you get to revisit all the compromises and sacrifices you inflicted on yourself, and now you're not desperate to get the game out the door -- you can finally do things calmly and properly.

The time difference helps you see the project with new eyes. In my case, it's been about two and a half years since the original Rinse and Repeat release in October 2015. Game engine technology has changed, my skills and tastes have changed, and it's surprisingly therapeutic to revisit my past decisions. Like, why did I give everything a weird green tinge? I don't remember. Maybe I had good reasons that I've now forgotten.

Here's some of the specific changes I made to the shower scene, and some of my reasoning:

Monday, January 8, 2018

Resolutions, 2018

In keeping with tradition, here's some resolutions that I resolve to uphold for this new year...
  • Keep blogging for 2018, at about the same rate as 2017?
  • Don't die from all the travelling I'll be doing in 2018.
  • Finish and release three projects: Radiator 3, MachoCam, and Medusa.
  • Update some of my technical dev skills: get proficient with Unreal Engine 4, learn about compute shaders
  • Update some of my game art skills: do some more sculpting, get better with Substance Painter and Substance Designer
Sure, the new year is an arbitrary passage of time that has no real significance -- but that doesn't mean it's not fun to re-assess and wonder about where you're at.

Thursday, August 24, 2017

Road trip sketches; notes on extracting and visualizing Half-Life 2 levels in Maya


So I'm working on (another) article about level design in Half-Life 2. I chose the d2_coast03 map of the Highway 17 chapter, which is the first real "coastline" road trip section of the game, and is probably the most successful. Look at how big and open it is. Would you believe this is a map in a game celebrated as a meticulous roller-coaster? In my mind, it's contemporary with a lot of vehicle-based first-person open world game design trends that started around the same time in 2004, and they even pulled it off in an engine architecture that's still kinda based on Quake 1.

Friday, July 28, 2017

Toward an honesty of pixels: on Final Fantasy 12 HD and Quake 3 Arena

combined screenshots from Final Fantasy 12 (PS2, 2006) and Final Fantasy 12 HD (PS4 Pro, 2017)
You either love or you hate Final Fantasy 12, and you either love or you hate the somewhat recent trend of remastering old games to squeeze a few more drops of profit out of them.

I'm currently playing the remastered PS4 version of Final Fantasy 12 ("The Zodiac Age") and it's still the same old nonsense story about fantasy imperialists and magic crystal macguffins. One thing that surprises me, though, is how this remastered version actually looks worse -- it went from the apex of PS2-era 3D art to looking like a mediocre PS3 game running on a PS4.

When it first came out 17 years ago (!), the Playstation 2 famously had very little texture memory (4 MB!) and no texture compression (!) which meant developers had to get creative. Loyal readers of this blog know of my love of lightmap atlases and UV layouts, and so I'd like to talk about how the textures for the original Final Fantasy 12 on PS2 were utter masterpieces produced under severe constraints -- cramming so much detail into these small texture sheets, down to the pixels...