Die alljährlichen Diagramme sind leider wegen technischer Probleme noch nicht fertig.
Ersatzweise steht nun an dieser Stelle die farbliche Zusammenfassung aller 43 Beiträge im bewährten Barcode-Format. Alla Board!
Age of Empires II currently offers 31 unique civilization to play as. Compared to, for example, the three races that players can choose from in StarCraft 2, that might seem overwhelming at first. However, all Age of Empires II civilizations share a common pool of units, buildings and technologies, with only a few unique elements to each civilization. This lowers the bar for newer players significantly.
A civilization’s technology tree shows which units, buildings and technologies are available to that civilization in which age. This follows some general rules, like that mesoamerican civilizations do not have access to cavalry, and further civilization-specific rules that disable certain units and technologies for a civilization. Due to the common pool, all technology trees look similar, albeit not identical.
Sometimes, players wish to access the technology tree for one or more civilizations without having the game open, to see which units, buildings or technologies are available to a civilization.
We start by analyzing the layout of the in-game technology tree:
Sounds doable!
Our next step is to collect all available building, unit and technology names. We devise a clever algorithm to recreate the desired layout that contains the data we collected before.
Next we notice that some civilizations have unique units, which move parts of the tree around when they are inserted.
Crestfallen, we exclaim “Oh no!” and scrap the idea of an accurate representation of the in-game tech tree, because while we are rather motivated, we are first and foremost lazy programmers.
Instead, we create a “master” technology tree which contains the elements of all technology trees in the game. Unfortunately, this means that it gets even wider than the original version(s). Also, some squares will be disabled for 30 out of 31 civilizations, but whatever. At this point, we don’t care.
Speaking of disabling: We add a the functionality to display big red crosses when an item is disabled. Hereafter, we spend two hours scrolling through the tech tree of every civilization and adding the information which buildings, units and technologies are disabled to our application.
As a finishing touch, we add all the icons, and we are basically done!
We present: A bland online version of the Age of Empires II technology tree. In your browser, even kind of mobile-friendly, MIT-Licensed (except the icons).
Unfortunately this version is currently without the civilization bonuses that are usually displayed below the civilization selection box, as we could also not be bothered to manually type them all. Fixed! omg
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.