Filme zu Barcodes!

Eine simple Idee: Man nehme einen Film, ermittle die durchschnittliche Farbe jedes Frames, lege diese Farben hintereinander, ziehe das Ganze etwas in die Höhe und voilá: Kunst.

Eine derart simple Idee können wir auch selbst umsetzen!

Zunächst basteln wir ein kurzes Python-Script, welches einen Film in ein Streifenmuster umwandelt:

#! /usr/bin/python3

import imageio
import numpy
import argparse


def main():
    parser = argparse.ArgumentParser(description='Convert a video into bars of colour.')
    parser.add_argument('video', help='The video file to process')
    parser.add_argument('image', help='The output image file name')
    parser.add_argument('--height', type=int, default=600, help='The height of the resulting image')

    args = parser.parse_args()

    reader = imageio.get_reader(args.video, 'ffmpeg')

    colours = []

    for i, im in enumerate(reader):
        print("Processing frame {}".format(i))
        colours.append(numpy.mean(im, axis=(0, 1)))

    resultpicture = numpy.repeat(numpy.array([colours]), args.height, axis=0)

    imageio.imwrite(args.image, resultpicture)


if __name__ == '__main__':
    main()

Hernach können wir das Bild noch ins gewünschte Endformat quetschen:

convert -resize 600x200! image.png image-resized.png

Und fertig!

Zu Anschauungszwecken habe ich mir mal ein paar Youtube-Videos genommen und in Barcode-Form gegossen. Ein Klick auf das Bild bringt euch zum zugehörigen Youtube-Video. Vielleicht erratet ihr es aber auch bereits vom draufsehen?1 Am interessantesten finde ich persönlich ja das letzte Bild.

Filme zu Barcodes!

Filme zu Barcodes!

Filme zu Barcodes!

Filme zu Barcodes!

Filme zu Barcodes!

Filme zu Barcodes!

Filme zu Barcodes!

Filme zu Barcodes!

Filme zu Barcodes!

  1. Wahrscheinlich nicht.

Everything is Regicide – now with Treason

In Everything is Regicide with UserPatch 1.5 I described how to turn any random map script into a custom regicide map, with the help of UserPatch 1.5 and the guard_state command.

However, regicide is only half the fun without the Treason1 technology. For the mere cost of 400 gold, it briefly reveals the positions of all enemy kings. Treason can also be researched repeatedly, making it easier for you to hunt those kings down and eventually kill them, defeating the player instantly.

Treason is only available in regicide games, where it replaces the Spies technology2. Treason could hence not be used on the custom regicide maps above. The latest update of UserPatch 1.5 however allows us to manually enable the technology in our random map script, without the use of any mod!

Adding Treason to Custom Regicide Maps

First we need to define three constants at the top of the script (if they are not defined already):

#const GAIA_SET_PLAYER_DATA -10
#const DATA_MODE_FLAGS 1
#const ATTR_SET 0

Now we can mess with the availability of Treason and Spies in the <PLAYER_SETUP> section by adding an effect_amount command:

<PLAYER_SETUP>
  […]
  effect_amount GAIA_SET_PLAYER_DATA DATA_MODE_FLAGS ATTR_SET 1

The value 1 at the end enables the Treason technology, the value 2 disables the Spies technology, and the value 3 does both (so Treason is available while Spies is not).

I have of course updated all the custom King of the Hill Regicide maps over at Github to include both Treason and Spies: click me

Have fun!

Does it have to be a king?

The guard_state option not only works with kings, but with arbitrary units.

Supposedly, Treason also works with other units that a guard_state is set for. If there is a king, it is revealed, else one guard_state unit is revealed. This behaviour is not necessarily ideal, but without doubt better than before.

  1. (the medieval kind)
  2. For the mere price of 200 Gold per enemy villager (min. 200, max 30.000), Spies reveals the line of sight of all enemy players’ units.

Mahlowat 3.0

Erfreulicherweise hatte ich vor kurzem Gelegenheit, dem in die Jahre gekommenen Mahlowat eine Auffrischungskur zu verpassen und die Oberfläche komplett neu zu schreiben. Ich darf präsentieren: Den Mahlowat 3.0!

Mahlowat 3.0

Wow.

Im Vergleich zur Vorgängerversion ergeben sich die folgenden Änderungen:

  1. Kein PHP mehr, alles läuft komplett per HTML, JavaScript und JSON
  2. Keine Social Buttons mehr (benutzt sowieso niemand)
  3. Keine 17 mitgelieferten Styles mehr (die Funktion war sowieso undokumentiert)
  4. Keine Zählung der Aufrufe und keine Speicherung der Antworten mehr auf dem Server (siehe 1 und 2)
  5. Mehrsprachigkeit! (aktuell DE, EN, FR)
  6. Auf Mobilgeräten besser nutzbar! (Yay!)

Und das bleibt wie bisher:

  1. Komfortabler Konfigurator (leider derzeit nur mit Deutschen Anweisungen)
  2. Open Source unter MIT-Lizenz!
  3. Die lästige Arbeit mit den zur Wahl antretenden Gruppen wird euch immer noch nicht abgenommen

Screenshots

Desktop-Ansicht

Mobilansicht

Weiterführende Informationen

Projektseite auf GitHub

Testinstallationen auf Deutsch, Englisch und Französisch1

Viel Spaß!

Mehr

  1. Es mag sein, dass mein Französisch etwas eingerostet ist.