Hacker Newsnew | past | comments | ask | show | jobs | submit | probablyfine's commentslogin

You play as a fire lookout in the "walking simulator" Firewatch (https://www.firewatchgame.com/)


It's pretty amazing how well Firewatch captures the feel of that point in time. Your character's backstory was pretty well designed to give you an emotional connection to the game. Back when people first started discussing games creating interactive movies, what we ended up with were mostly electronic versions of Choose-Your-Own-Adventure books. Firewatch is a nice evolution of interactive fiction into something an order of magnitude better.


Author here - the project did originally just have fault and latency modes, and the last one came out of discussions with a colleague about other failures that might be interesting.

I'm looking for more failure modes to add, so if you can think of any more send them my way!


Unclean network disconnects. We had to dynamically change iptables to simulate that particular failure case. It's hard to repro but something that does happen in prod and something that can cause mem leaks


Bytanzine - perturb return values.

Perhaps looking at the kinds of transformations that mutation testing frameworks perform would be informative?


- Extend the time code spends in a synchronized block

- Throw OutOfMemoryException randomly


Pausing within a synchronized block to exaggerate slowdown sounds really interesting - and would provide a great opportunity to learn about how locking works "under the hood" :)


No, that's likely a leftover from refactoring. Good spot.


Haha, no worries! I've been checked out of Java for a while and I was a little bit worried that this was semantically meaningful, which would be a pretty confusing addition to the language :)


I've used it as the backing for a time-series database and to store deltas for a state-machine - in both situations I wanted something that understood "POJOs" and didn't require a lot of setup.

Even in the case of multiple non-unique entries, if the stored objects are not meant to be mutable, the API exposes .reverse() to find the most recent.


Hi, glad you like it.

1. Under the hood it partitions the log into sections to avoid Java's MappedByteBuffer size-limit. I've not tried to deliberately push the file-size limit yet, but it's something to add to the benchmarks when I publish them (soon!)

2. It doesn't support primitive arrays as of 1.4, but this is something that I have considered in future versions. Pull requests are definitely welcome.

3. I've not tested these failure cases yet.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: