![]() ![]() ![]() Instead of organizing documents on a 2D surface, you’re just swiping around and viewing each document in near-isolation. My first worry when considering this interface was that it changed the gameplay too much. ![]() This minimalism meant it was manageable for me to create two hosts: one in Heaps and one in Unity. The end result requires a minimal host shell to send input to the black box and render the quads and audio commands that it outputs every frame. The requirements for the game are earth-core low though, and Haxe is pretty performant anyways so I only had to be a little bit careful to get good framerates. I was slightly worried about performance here, since much of the OpenFL API is written in C++ and I was replacing it all with higher-level Haxe code. The full Flash API was overkill for Papers Please anyways, and building a fresh engine specifically for what I needed was cathartic. This was probably the most fun part of the project. Then I rebuilt it all with custom code, the goal being to create a sort of PAPERS-PLEASE black box that could take user input and spit out a list of quads to draw and audio commands to execute every frame. The display tree, input events, bitmap manipulation, resource management, sound playback – basically everything that wasn’t core game logic. Which is how I decided to roll this.įirst, I stripped all usage of the Flash-like API that OpenFL was providing. So it’s possible to write code in Haxe and have it transpiled to C# that can be loaded and compiled in Unity. Still it’s hard to overstate how appropriate Unity is for someone in my position: a solo developer targeting multiple platforms and desperate for a popular, proven, and well-supported engine and build system.įortunately, Haxe is a transpiled language, meaning that you write in one language (Haxe) and it gets converted to another language (Javascript, PHP, Python, C++, C#, Lua, etc) before being compiled/interpreted for whatever target you’ve got. Dead Cells, Northgard, and a few other games are built with Haxe/Heaps so it’s a perfectly capable system. One option would’ve been to keep the Haxe part but switch from OpenFL to Heaps, another Haxe-based engine and build system. ![]() In making the game I’d leveraged a bunch of core Haxe features like super enums and implicit typing and it was all getting trickier and trickier to implement by hand in C#. I made it a few days into rewriting before finding that although I like C#, I like Haxe more. After Obra Dinn I’m a solid fan of Unity – the editor, the entity/component design, the build system, the ubiquity, just about everything. When I finally committed to this port my first decision was to rewrite the game in C#/Unity. This was a great environment for getting the game together quickly in 2013 but over the years Haxe has moved away from its Flash-targeting roots, and keeping up with OpenFL changes to make game updates has required outsized effort. Papers, Please was originally written in Haxe/ OpenFL, a combo of modern ECMA-ish language, Flash-alike API, and multi-platform build system. No wild story twists, no new characters, no voiced dialog, no stereoscopic ray-traced graphics, and most disappointingly, no cosmetic unlockables. In 9 years, I’ll port this post to VR.īeyond the minimal amount necessary to make the interface work, there are no content changes or additions for this port. As a winking throwback to days past, this is a big dump of text and inline img tags instead of exciting splashes of quick-cut video. These thousands of words and megabytes of images will cover some bits of porting the game from big desktop to little phone. Now, here, in 2022, desktop computers no longer exist and all computing is done via handheld mobile telephone. I created Papers, Please in 2013 specifically for desktop computers with mouse control. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |