[{"data":1,"prerenderedAt":57},["ShallowReactive",2],{"page:\u002Fseries\u002Fhalfword":3,"translations:\u002Fseries\u002Fhalfword":33,"series:en:halfword":42},{"id":4,"title":5,"author":6,"body":7,"date":6,"description":21,"draft":22,"extension":23,"image":24,"listed":25,"meta":26,"navigation":25,"part":6,"path":27,"seo":28,"series":6,"stem":29,"tags":30,"theme":31,"toc":22,"__hash__":32},"content_en\u002Fseries\u002Fhalfword.md","Building Halfword",null,{"type":8,"value":9,"toc":17},"minimark",[10,14],[11,12,13],"p",{},"Halfword is the word game Undercover for one phone passed round the table. It started as the version of the game I wanted: better looking than the app we used to play with, with no ads, and one day with word pairs that are generated, not picked from a list. It grew into a game in six languages, drawn in sixteen colours.",[11,15,16],{},"This series follows it from the first spec to the App Store and on to Android, one problem at a time.",{"title":18,"searchDepth":19,"depth":19,"links":20},"",3,[],"A pass-and-play party game for one phone: the rules and their points, the pixel art, one Swift codebase for iPhone and Android, and the tools made along the way.",false,"md","\u002Fimages\u002Fhalfword\u002Fcover.png",true,{},"\u002Fseries\u002Fhalfword",{"title":5,"description":21},"series\u002Fhalfword",[],"halfword","_DRP7NNHDEZypPf0s7gjQkAjeQk0w5_InzxpMmj24yE",[34,38],{"locale":35,"path":36,"title":37},"ru","\u002Fru\u002Fseries\u002Fhalfword","Как я делал Halfword",{"locale":39,"path":40,"title":41},"de","\u002Fde\u002Fseries\u002Fhalfword","Wie Halfword entsteht",{"slug":31,"title":5,"path":27,"chapters":43},[44,50],{"path":45,"title":46,"description":47,"date":48,"image":24,"draft":22,"series":31,"part":6,"n":49},"\u002Fposts\u002Fcode_n_shit\u002Fhalfword","I made a party game. Everyone gets the same word. Almost.","Halfword is the word game Undercover for one phone passed round the table: pixel art, eight special roles, and points that add up over a whole evening. It is out for iPhone and Android. Here is what building it took: points balanced by simulation, one Swift codebase for two platforms, an engine that can replay any game, pixel art without image files, and screens drawn before they were coded.","2026-10-01",1,{"path":51,"title":52,"description":53,"date":54,"image":55,"draft":22,"series":31,"part":6,"n":56},"\u002Fposts\u002Fcode_n_shit\u002Fhalfword_android_rendering","I tested my Android screens without the emulator. All 114 of them, in four languages.","The Android emulator and a pile of Gradle builds took my Mac down with them, so Halfword’s Android screens are drawn on the JVM instead: Robolectric starts the real app, Roborazzi saves the pictures, 456 of them in four languages in 2 minutes 19 seconds. How it works, what it caught, and what it can’t tell you.","2026-10-02","\u002Fimages\u002Fhalfword_android\u002Fcover.jpg",2,1791333556664]