Burn books to save the nation!

Featuring over 1 million unique books!*

Every month, harmful new books are published and must be destroyed to save the government.

Your job is to choose which books.

Thanks to Tijn for the name, book burning concept, and some valuable play testing <3


Comments (6)

 • 11 days ago • 

Creative concept, although it did seem a litle unclear what exactly I was searching for since it sometimes had multiple similar books like "Incite Wages" and "Incite Factories", with it not being clear why one of them is the harmful one. other than that, nice art style with simple gameplay, good job =)

 • 9 days ago • 

I really enjoyed the idea, and I am really curious about the algorithm you used to combine the books title and decide which one of them is harmful in the list.
The only problem in the gameplay I saw is that it takes too much time to finish a game. Esseitially in the last part I was not able to read even the title of one book, and it was really a random pick. It is still fun, because of somehow resemble how censorship has a lot of randomeess in it, but I would have appreciated if the average game is a bit faster, so that you can play more and see if you can beat your previous score (while in this way after one game I feel quite tired and stressed due to the fast reading skill required). Good job!

  • 8 days ago • 

@AaronBacon all books are a bit harmful, but some more than others. I think in this case "wages" is more harmful than "factories" (I guess the reasoning was that discussion about wages is alarming to authoritarians). The algorithm is probably a bit opaque though, so would likely require a lot of play time to understand.

@mesonpi, thanks! Was there anything in particular slowing it down for you? I feel like the transition between months takes a long time, but was also necessary so players have time to read the titles and learn the algorithm. Perhaps it should be possible to skip that though…

The book algorithm, in case anybody wants to see it

import {randomElement} from '$util/random';
import {toTitleCase} from '$util/text';

const titleTemplates: [string, number][] = [
    ['On %n and %n', 1],
    ['On the %a of %n', 1],
    ['Why %n may be %n', 1],
    ['%n = %n', 1.1],
    ['%n = %a', 1.1],
    ['%v now!', 1.5],
    ['The %n of %n', 1],
    ['%a %n', 1],
    ['How to %v %n', 1.05],
    ['Why we should all %v %n', 1.05],
    ['The future of %a', 1.1],

const verbs: [string, number][] = [
    ['work with', 2.5],
    ['incite', 9],
    ['riot over', 10],
    ['define', 0],
    ['revise', 2],
    ['read about', 2],
    ['nurture', 0],
    ['ignore', 4],
    ['accept', 0],
    ['fight', 7],

const activities: [string, number][] = [
    ['working', 6.5],
    ['inciting', 9],
    ['rioting', 10],
    ['defining', 0],
    ['activism', 8],
    ['revising', 5],
    ['reading', 2],
    ['writing', 2],

const nouns: [string, number][] = [
    // Roughly derived from activities.
    ['work', 6.5],
    ['riot', 10],
    ['definition', 0],
    ['activism', 8],
    ['revision', 4],
    ['books', 3],
    ['factories', 4],
    ['debt', 7],
    ['wages', 7],
    ['gardening', 0],
    ['football', 0],
    ['cricket', 0],
    ['tennis', 0],
    ['kittens', 0],

const collections = {
    '%v': verbs,
    '%a': activities,
    '%n': nouns,

export type Book = {
    title: string;
    concern: number;

export const createRandomBook = (): Book => {
    const [titleTemplate, titleMultiplier] = randomElement(titleTemplates);
    let termsSubtotalConcern = 0;
    let termsSubstituted = 0;
    const title = titleTemplate.replace(/%\w/g, (tag) => {
        const [term, termConcern] = randomElement(collections[tag]);
        termsSubtotalConcern += termConcern;
        return term;
    const titleConcern = termsSubtotalConcern / termsSubstituted;

    return {
        title: toTitleCase(title),
        concern: Math.min(
            titleMultiplier * titleConcern,
            40 // This currently works as a decent maximum.

 • 8 days ago • 

Very interesting the algorithm, great idea to get a score to words, activities and nouns to then calculate the harmful of the combination.
Regarding the time, I think more than at the beginning where I agree that you need time to read and understand how it works, you can probably shorten a bit the last part where you are just picking books randomly as you have no time. That part I believe it lasts too much while after 4 or 5 attempts it gets repetitive as if you do not pick randomly, the time expires. At least this was my feeling :)

 • 8 days ago • 

Interesting idea, but I have similar comments to the above: it is really hard to figure out what makes a title more/less revolutionary. Maybe a variant on this where each month there are "top" unwanted words in titles, and you need to find the one with a title with the most words from that list? Also I don't know if this is an RNG problem, but it seems like after restarting the game a couple of times in the same session the per-turn timer gets really short.

 • 7 days ago • 

I played through a couple of matches before I got anything right. Then usually the right ones were the ones I had seen before :D
Maybe my level of english just isn't good enough.
Nice to see you jamming! The game works great and looks clean. The turn time is long enough to give you time to think, but it's there so you have to be quick anyway.
I'm not quite sure why "Factories = working" is bad. But I sure loved these classics: "Why kittens may be factories", "Why activism may be activism" and "Why we should all nurture football"!

Login to comment






High scores Submit score

Be the first to submit a score!

Related posts