HNHacker News
TopNewBestAskShowJobs

statico

1,915 karma · joined January 24, 2012

Ian Langworth

Home page and text adventure game: https://langworth.com/

GitHub: https://github.com/statico

Blog: https://statico.link/blog

LinkedIn: https://statico.link/linkedin

Pronouns: he/him

submissionscomments
statico··on 0.30000000000000004
We also built and shipped a deterministic multiplayer WebGL game[1], but using CoffeeScript[2] + C++ -> Emscripten/dylib/DLLs to run the game in the browser and on Windows and Mac.

Our game would snapshot the entire game state every few seconds and send that back to server to detect desyncs and cheaters. Floating point math, to our astonishment, was not the source of any non-determinism.

I'm 80% sure that only source of non-determinism we encountered were from trig functions, so we just hard-coded lookup tables.

1: https://guardiansofatlas.com/

2: It was 2012 when we started.

statico··on Microsoft Comic Chat
I reimplemented the comic-drawing algorithm in Ruby almost 15 years ago because I wanted to make my own daily comic based on our IRC chats. It turned out that I wasn’t as funny as I thought.

Source and artwork is available here: https://github.com/statico/spittoon

statico··on Ask HN: Who is hiring? (November 2019)
Wilbur Labs | San Francisco, CA | Full-time | Lead Software Engineer, Full Stack | ONSITE | https://www.wilburlabs.com

We are Wilbur Labs, a startup studio in San Francisco that has created multiple successful businesses.

We’re looking for a full-stack engineer to lead the development of one of our fast-growing new businesses in the careers space which already helps millions of people search for new jobs every month. We’re looking for someone who can own the whole product and infrastructure (TypeScript, React, Next.js, Apollo/GraphQL, PostgreSQL, Google Cloud + App Engine), develop new features, and help to grow our engineering team.

We offer a competitive salary + equity and have excellent benefits and perks.

Full job description with link to apply: https://hire.withgoogle.com/public/jobs/wilburlabscom/view/P...

statico··on Bootstrap 4
I've tried MiniCSS[1] (which styles your default HTML without adding too many classes and has themes) and MUI[2] (Material UI styles). Both are decent, but I keep falling back to Bootstrap v4 because Bootstrap just gets a lot of sizing and padding right.

With other frameworks I'm constantly adding new rules just to add a bit of padding and margin here and there, but Bootstrap 4 gets a lot of it right by default. Plus it now has a lot of useful utility classes for small padding increments (e.g. `.mb-3` for `margin-bottom: 1.5rem` and `.px-2` for horizontal padding of 1rem). With Bootstrap 4, a previous project required only 10-ish lines of global CSS[3]. Sure, it looks and feels like a Bootstrap project, but that was fine for the purpose of the app, and Bootstrap 4 looks fresh enough that I don't feel like the design is outdated.

FWIW, I've also had a lot of luck recently with Material-UI[4], a set of React components that implement the Material UI aesthetic. My current project feels like it could fit in with any Google app from G Suite.

[1]: https://minicss.org/

[2]: https://www.muicss.com/

[3]: https://github.com/statico/aspen/blob/master/pages/index.js#...

[4]: https://material-ui-next.com/

statico··on Vim after 15 Years
This is super cool. Thank you all for your hard work.
statico··on Vim after 15 Years
That's been the response on Reddit and Disqus as well. Guess I'll have to give it a try!
statico··on A collection of text mode fonts, system fonts and BIOS fonts from DOS-era PCs
It's not that long. You got farther than anyone else though ;)
statico··on A collection of text mode fonts, system fonts and BIOS fonts from DOS-era PCs
+1 for KreativeKorp's wonderful archive of fonts: http://www.kreativekorp.com/software/fonts/index.shtml

They also have the Apple II fonts, which I (incorrectly) superimposed on a VT520 using WebGL here: https://langworth.com

statico··on A collection of text mode fonts, system fonts and BIOS fonts from DOS-era PCs
Monaco bitmap 9pt should have a warm place in every classic Mac user's heart, along with Helvetica 9pt.

If you want a flashback into Classic Mac development, a while back I tried some development with MetroWerks CodeWarrior, Symantic C++, and more, and I took screenshots: https://imgur.com/a/scNE2

statico··on MicroPython running “bare metal” in the browser via unicorn.js
This is a neat demo, but its real value for me was learning about MicroPython. Whenever I've asked friends about a small, fast, embeddable scripting language the answer has been Lua. I favor Python much more than Lua so this project is attractive.

Some bits on how eLua compares with MicroPython from their comparison page[1]:

> eLua, with LTR patch, boasts only 5.42K RAM usage after book, down from ~25K with unpatched Lua. (ref: http://www.eluaproject.net/doc/v0.9/en_arch_ltr.html). uPy offers ~540 bytes usage after boot (10 times less than patched eLua), and truly can boot and accept commands with 2K heap.

[1]: https://github.com/micropython/micropython/wiki/MicroPythonV...

statico··on Fmod.io – Sound Effects for Game Developers
It looks like they've aggregated SoundRangers and a few other library sites. Does anyone have opinions on the quality of their selection?
statico··on Endless Sky: Open-Source Escape Velocity Successor
If you want more flashbacks, I made an album of some recent attempts at classic Mac development: http://imgur.com/a/scNE2

Included are screenshots of ResEdit, Resourcerer, CodeWarrior, and more.

statico··on Gow - A lightweight alternative to Cygwin
Related: If you find yourself in a Windows terminal a lot, check out Cmder (http://gooseberrycreative.com/cmder/). It's the only thing keeping me sane when using a Windows console.

Cmder is a little slow by default, but faster if you disable the git branch in the prompt. Other people I know use Clink (http://mridgers.github.io/clink/), the library the powers the readline-like portion of Cmder.

statico··on Why Docker Is Not Yet Succeeding Widely in Production
We in fact started with an HTML5 group chat application very much like Slack but ended up making a game.
statico··on Why Docker Is Not Yet Succeeding Widely in Production
> What do you mean by outsource the rest?

iamleppert means: Identify your company's core competency and do that in house, but outsource or avoid that which is not your core.

For example, we're making a game. Gameplay, art, and tech is all done in-house and not with remote contractors because it needs to be -- it's the part of the product we love and the part our players will end up loving. Email, forums, chat, HR, applicant tracking systems, and git hosting are outside of our core and best handled by others.

statico··on Ask HN: Who is hiring? (July 2015)
Artillery (https://www.artillery.com/jobs) - Palo Alto, CA / ONSITE

Artillery is looking for software engineers to help build the next great multiplayer real-time strategy game. We're taking a genre that millions of people already know and love and we're removing frustration, expanding accessibility, and adding fun while keeping the game competitive.

We've got a great game design team including Sean "Day[9]" Plott and other former semi-pros, an engineering team from Google and elsewhere, and an art team that's worked at places such as LucasArts, Double Fine, EA, Trion and Ubisoft.

We're leveraging technologies including OpenGL/DirectX, AWS, Linux, C/C++, JavaScript, Node.js/io.js and are keenly aware of all things HTML5, WebGL, and hardware-accelerated graphics.

statico··on Show HN: kiUi – Lightweight auto-layout stylable UI toolkit
Or HTML. http://coherent-labs.com/
statico··on Show HN: kiUi – Lightweight auto-layout stylable UI toolkit
That's great information. Thanks!
statico··on Show HN: kiUi – Lightweight auto-layout stylable UI toolkit
Gotcha. I ask because, on my machine, kiUi takes 8-9ms every frame regardless of what I'm doing (e.g., typing, dragging windows, resizing things). If I'm trying to maintain 60 FPS with Emscripten, 8-9ms is a significant portion of my 16.7ms frame budget.

By comparison, a basic Emscripten libRocket demo takes 6-8ms (mostly due to Freetype rendering and its layout system, see http://forums.librocket.com/viewtopic.php?f=2&t=5223), and ImGui takes 1ms (probably due to its monospaced bitmap fonts and simple widgets, demo: http://floooh.github.io/oryol/ImGuiDemo.html).

Just some thoughts in case you're planning on adding complicated game logic every frame :)

statico··on Show HN: kiUi – Lightweight auto-layout stylable UI toolkit
Also, FWIW -- here's ImGui running in the browser: http://floooh.github.io/oryol/ImGuiDemo.html
statico··on Show HN: kiUi – Lightweight auto-layout stylable UI toolkit
ImGui looks decent but is "designed and optimised to create debug tools." If you're building a game that doesn't look like a debug tool, you'll want to do some kind of skinning or at least make the UI fit into the aesthetic.
statico··on Show HN: kiUi – Lightweight auto-layout stylable UI toolkit
This is wonderful. Thank you for building this. Your emphasis on modern C++ and small dependencies is especially appreciated, especially in a world where an Emscripten bundle size matters.

What's your rendering performance like, such as when you update 50 static text fields or images every frame?

statico··on First NetHack bot ascension
You can watch players (and bots) play NetHack in real time:

    telnet nethack.alt.org
...then hit "w" to watch games that are in progress. You might need to resize your window, and some players might be using a different character set than your terminal.

If you want to start playing, telnet there, create an account, hit "p" to play a game and then "?" to read basic help. http://nethack.alt.org/ will keep logs of your game as well as other stats.

This post also mentions previous bot attempts such as the Tactical Amulet Extraction Bot (TAEB), which is also worth looking at: http://taeb.github.io/

Warning, SPOILERS: If you're okay with spoiling the game to some extent (e.g., solutions to common puzzles, which corpses are safe to eat, strategies), check out the NetHackWiki: http://nethackwiki.com/wiki/Main_Page

statico··on Vim After 11 Years (2013)
Thanks for reading! Don't forget to check out the follow-up to this article, "Everything I Missed in Vim After 11 Years" - http://statico.github.io/vim2.html
statico··on Kato.im Launches Kato Teams, a Free Chat Platform for Businesses
Great job, Andrei and Peter!
statico··on CNAME Flattening: RFC-Compliant CNAMEs at a Domain's Root
AWS Route 53 aliases aren't ANAME/ALIAS -- they appear to only let you point a record at an AWS address, not any arbitrary IP. (Correct me if I'm wrong.)
statico··on Bluebird – A full-featured, fast promises library for JavaScript
If it's useful, here's an app I converted to promises: https://github.com/artillery/pull-request-viewer/blob/master...

It uses Q, not bluebird, but should still be relevant.

statico··on Artillery is building a hardcore RTS with HTML5 and WebGL
Totally. I've got a "18 Months of CoffeeScript" post drafted, in fact. Keep an eye on our blog :)
statico··on Artillery is building a hardcore RTS with HTML5 and WebGL
Indeed! Mouse scroll in Project Atlas works pretty well at the moment. We aren't using the Pointer Lock API yet due to some input latency problems. A related Chromium issue is here: https://code.google.com/p/chromium/issues/detail?id=168459
statico··on Artillery is building a hardcore RTS with HTML5 and WebGL
Yes, the command "publish.coffee" is a CoffeeScript tool which publishes a given game target to the CDN. The different colorful letters represent the state of each asset as it moves through the upload pipeline, e.g. "U" for unchanged and "F" for finished.

Our engine and Project Atlas are written entirely in CoffeeScript, but that's not a requirement of game code.

← PreviousPage 4 of 6Next →