Live data from Hacker News

Cramming 'Papers, Please' onto Phones

dukope.com

91–100 of 187 posts

Re: Cramming 'Papers, Please' onto Phones

#91

Earlier quoted context omitted.

I have the exact same feelings. Is immediate mode GUI's just that much better? Instead of a complex React/Redux style setup, how much easier would state management be if we had a render loop like game dev? Does that even make sense? I am very envious at the pure programming skills of so many game developers. UI's in indie games are just a side thing in the deep complexity of a game and they end up looking incredible…

I use Zui with Kha/Haxe - an immediate mode GUI library. I cannot overstate how immediate mode GUI greatly simplifies ui development. React is massive step up from OOP/scenegraph/display list style gui, but it is still so complex and cumbersome compared to immediate mode. I can’t fathom why there is such little exploration in this space and it seems mostly limited to gamedev. https://github.com/armory3d/zui

Immediate mode GUI makes perfect sense for applications that repaint themselves all the time 60 (or more) times per second, as they're already doing the work and there's little overhead added by handling such GUI. I can deal with 3D editor working this way, but I don't think I would be very happy if my e-mail client did.

Re: Cramming 'Papers, Please' onto Phones

#92
post #8

The blog post is really top tier. Consider how much time some engineers spend considering details when they're just being contracted to do a job (I've work with lots) and how this indie game project is being explained, nitpicked, loved and cherished. The blog post alone makes you want to purchase whatever this person has been working on based on how much passion is oozing off the explanation of how it's made. Side no…

This blog post is good, but is pretty average stuff for a real professional. You are just used to reading webdev tip&trick postlets from third-rate hacks

No, this is definitely high-quality. Like the person you're responding to, far higher quality than a lot of professional work I've seen. This is very clearly someone who cares about the end result, not just about getting it done, and a lot of work I've seen in my career, the person cares more about just getting it done, than they do about getting it done right.

I'd also say it's about having the skill to do this: as other posters note, there are multiple competencies on display in that post; graphics, coding, testing, etc. Each of those takes time to hone. I've worked with any number of people that are not honing their skills, because when they get stuck or hit problems, will not take the time to dig into them and really understand exactly what problem they hit, why they hit it, and how whatever language/tool/system they're working with works. They'll guess until something appears to work, and then move on.

I'd put the detail in this blog post up there with Friday Factorio Facts, and that is also another top-notch game.

If your professional environment is just full of people working at or even above the level here, you should know you have it good. And I think they do exist: I've definitely joined places where there are just lots of incredible people; in hindsight I wish I'd done a better job of learning and listening, when I had that…

Re: Cramming 'Papers, Please' onto Phones

#93

The productivity of solo indie game devs is just really impressive. While I’m aware of the “go fast alone, go far together” quote, I’m depressed by how inefficient app/ui development is at big tech companies compared to game studios, especially short staffed indies. Really makes me wonder about the “engineering excellence” that tech leads and “architects” pride themselves in when games are developed much more quickly…

Yea the self wankery you see when these people place on insubstantial things like correctness against all possible situations in their PRs is amusing.

Elon once wanted to move his programmers to windows upon seeing how fast world of warcraft was developed. Goes to show how fast people can be if they care about the things that matter.

Re: Cramming 'Papers, Please' onto Phones

#94
post #30

I played through Papers, Please back when it came out on desktop, and at the time I remember wondering: "why is this fun?" I enjoyed it tremendously, but on the surface that didn't make any sense. Who wants to play an immigration officer sim? Getting this peek behind the curtain helped me understand all the little decisions that add up to an unexpectedly fun experience. The level of thought given to tiny UI interacti…

> Any other dev would just make it a static image and call it a day. You think so? Games are often full of little things like that. That's a good thing to point out, but it certainly doesn't seem as unusual as you paint it. Letting the user be playful is generally what games are good at ;)

I agree that good games give you things to play with, but this is literally the toggle to slide out a UI element, and only exists because a phone screen was too small for the original design to fit. If it had been a little triangle that you tapped, no one would have said anything. Instead it’s got realistic chain physics and jingles around as you move the card.

I’m trying to think of another instance of “sliding out a control” being given this level of attention, and I’m drawing a blank. It feels like an unusually high level of effort to put into a UI concession for a port that was going to sell well anyway.

Granted, this game is mostly about sliding UI elements around, so maybe it is more integral to the experience than in other games.

Re: Cramming 'Papers, Please' onto Phones

#95

Earlier quoted context omitted.

I use Zui with Kha/Haxe - an immediate mode GUI library. I cannot overstate how immediate mode GUI greatly simplifies ui development. React is massive step up from OOP/scenegraph/display list style gui, but it is still so complex and cumbersome compared to immediate mode. I can’t fathom why there is such little exploration in this space and it seems mostly limited to gamedev. https://github.com/armory3d/zui

Immediate mode GUI makes perfect sense for applications that repaint themselves all the time 60 (or more) times per second, as they're already doing the work and there's little overhead added by handling such GUI. I can deal with 3D editor working this way, but I don't think I would be very happy if my e-mail client did.

I don’t have much understanding of the internals of the immediate mode renderers, but I think there are optimisations to only redraw regions where component inputs have changed.

Re: Cramming 'Papers, Please' onto Phones

#97

Earlier quoted context omitted.

Phones could be fine if 95% of the screen wasn't covered in popups, adverts, mailing list & cookie prompts.

I make comics. I grew up reading stuff that used the space of a magazine spread in all kinds of clever ways, I fell in love with the way I can play with layout across a page. I made an entire graphic novel with multiple storylines running in parallel across every page. A phone can show one or two panels at a time, at best. There’s a lot of stuff you just can’t do. It’s a tiny, limited canvas, even before it gets shit…

I’ve recently started following a few webcomics that are phone first. I’m sure they’ve been around a while, but it was novel to me to have a story set up as a continuous downward scroll. There isn’t as much flexibility as you get with a comic spread, but there are still interesting tricks that contribute significantly to the overall feel and pacing of the story.

Re: Cramming 'Papers, Please' onto Phones

#98

Man it is gonna be so nice when the average young adult has a device in their pocket that folds out to the size of a paperback, or even a magazine, and we can start making popular culture that fits that size again instead of everything having to make sense through the tiny window of a phone.

Phones could be fine if 95% of the screen wasn't covered in popups, adverts, mailing list & cookie prompts.

You have severely painted this as something that's easily done while clearly not reading what he posted...

Re: Cramming 'Papers, Please' onto Phones

#99
Haxe is really unusual and interesting, and I don't think it gets talked about enough.

> Haxe can build cross-platform applications targeting JavaScript, C++, C#, Java, JVM, Python, Lua, PHP, Flash, and allows access to each platform's native capabilities. Haxe has its own VMs (HashLink and NekoVM) but can also run in interpreted mode.

Compiling from one language to another isnt particularly unusual, but compiling from one language to so many is very unusual. On first impression it sounds unserious—real compilers output machine code—it's tempting to denigrate it by calling it a transpiler. But there are a lot of advantages that come with this approach. You always have access to the full capabilities of your target platforms. From a single language you can write code that is massively portable while also targeting specific platforms with just an if statement.

The "real" compiler authors spend months working on linkage, calling conventions, runtimes, symbol mangling, allocators, and debuginfo trying to get their native code to link properly to the objective-c frameworks on iOS—and it never feels quite right. If you instead compile to objective-c, a lot of things get easier. It's a very pragmatic approach.

Post reply on HN