CodeCraft
door coder, jounalist, en nog veel meer, Ferdinand Veldmans

Een van de aardige eigenschappen van applicaties onder RISC OS is dat ze niet zo groot zijn. Moet je voor elk nieuw programma onder Windows soms het formaat van een complete harddisk (uit oude tijden) uit de kast trekken, onder RISC OS worden zelfs de meeste commerciële programma's nog gewoon op een diskette geleverd. Afgezien van het feit dat een diskette nul komma nul uitstraling heeft - doe mij maar zo'n glanzende CD - het is wel makkelijk. Want installaties zijn zo gepiept en een backupje extra is meestal ook geen probleem.

Misschien is het dat de meeste Acorn programmeurs nog steeds gewend zijn aan het omgaan met weinig geheugen vanuit de BBC tijd, misschien is het wel de toegankelijkheid en eenvoud van het besturingssysteem dat het de programma's zo klein houdt. Hoe dan ook, zuinig wordt er omgegaan met de beschikbare schijf- en geheugenruimte.

Nu is er een groep van mensen die dit tot in het extreme doortrekt. Deze lieden schrijven veelomvattende programma's, maar houden de code beperkt tot een paar kilobytes. We komen dan op het terrein van de intro. Deze heeft vaak een strikte grootte van 1, 4 of 64K en kan toch vaak verbazingwekkend veel. Op diverse computerplatforms worden hiervoor competities gehouden. Zo ook op de Acorn, waar onder meer het diskmagazine Coders Revenge een tijdje terug al een 1K competitie organiseerde en ook op demo parties zoals SiliConvention (zie http://topix.student.utwente.nl/texts/sili97.html) en Yelling Jam intro competities gehouden werden.

Sinds begin dit jaar is er via Internet door Baah van de demo groep Arm's Tech een vervolg aan gegeven. CodeCraft was de naam van de competitie, waarbij er gestreden kon worden in 2 categorieën: 1K (geschreven in elke willekeurige taal) en 4K (geschreven in ARM assembly). In juli werden de resultaten daarvan bekend.

Hier volgt een overzichtje van de resultaten van de 1K competitie. De naam van de auteur wordt gevolgd door de naam van de groep. De schermafbeeldingen doen de inzendingen natuurlijk zeer tekort, aangezien ze erg stil staan en weinig kleur weergeven. Maar goed, het gaat om het idee:

ItsDemoTime door Armoric/Arm's Tech, 1022 bytes. Een digitale klok afgebeeld in een soort plasma:

FractalSpinZoom door PT/DFI, 987 bytes. Een draaiende, zoomende, bewegende en van kleur veranderende fractal:

MultiBoing door Pervect/Topix, 1021 bytes. Een programma waarvan de som meer is dan de delen alleen. Eén programma laat een cirkel rond stuiteren. Maar start je meerdere keren hetzelfde programma op en maken de windows contact met elkaar, dan kan de cirkel van het ene naar het andere window; de programma's werken met elkaar samen:

En de resultaten van de 4K competitie:

Sto? door eXotiCorn/ICeBird, 4096 bytes. Een mini-mega-demo:

X-Filez door Casma, 4090 bytes. Een demo opgedragen aan *INFO, de leukste rubriek van Acorn User die nu ter ziele is. The truth is out there...

Escape door tom/Kulture, 4028 bytes. Crashte helaas op mijn machine, dus geen afbeelding.


Dat was allemaal enkele maanden terug.

Nu is er CodeCraft #2!
Dit keer georganiseerd door Baah en Topix. Met een nieuwe competitie en nieuwe regels.

In het kort:
- 4 categorieën: 1K game/demo, 4K game/demo, 64K demo en 2K tool
- 1K game/demo in alle talen, de rest moet in ARM assembly
- de inzendingen mogen nog niet eerder gereleased zijn
- de inzendingen moeten met source geleverd worden en freeware zijn.

En dat laatste maakt het natuurlijk leuk. Je kunt bij alle inzendingen dus bekijken hoe het gedaan is en er vervolgens weer iets van opsteken.


Ik heb de mede-organisator van CodeCraft en ook een van de actievere deelnemers, Pervect (van Topix) eens een aantal vragen gesteld over het schrijven van intro's:

Wat is er zo leuk aan het schrijven van intro's?

De grap is om in zo weinig mogelijk bytes iets moois te maken. Voordeel is ook dat het minder werk is dan een groot project. Voor een 1K intro heb je aan 1 idee genoeg. Voor 4K heb je toch wel meer dan 1 concept nodig. Ook handig is dat je in je eentje toch iets fatsoenlijks kan doen, voor een demo bijvoorbeeld moet je eigenlijk met een groep zijn.

Hoe lang doe je er zoal over?

Het eerste idee is vaak in 2 à 3 uur uitgewerkt. Daarna is het de kunst het snel (bv. voldoende hoge framerate) en in 1K te krijgen. Die tijd varieert van 2 tot ongeveer 20 uur. Het scheelt natuurlijk als het gelijk al past, maar eigenlijk is het leuker als het niet past. Kijken of je het toch in die beperkt aantal bytes kan proppen.

Waar komen de ideeën vandaan?

Goed rondkijken in het dagelijks leven en naar andere programma's. Soms wordt je 's nachts wakker met een idee. Of je zit TV te kijken naar iets wat er helemaal niets mee te maken heeft en het brengt je toch op een idee. En je moet ook wel eens heel hard peinzen om op een idee te komen. Wat dan wel werkt is vanuit een concept werken. Bijvoorbeeld: ik wil iets met hokjes doen, want dat is makkelijk te programmeren. Zo ben ik op Wimpory (een desktop versie van memory) gekomen.

Of het concept van communicerende tasks, dat leverde MultiBoing op. Het scheelt natuurlijk dat ik altijd veel met demo's ben bezig geweest. Het is net als een kok. In het begin kook je volgens recept, later voeg je er een snufje van dit en een snufje van dat aan toe. Nog later ga je zelf gerechten bedenken. Zo werkt het bij demo's ook. Eerst afkijken en dan later je eigen ideeën uitvoeren.


De einddatum voor CodeCraft #2 ligt ergens in december. Dat wordt t.z.t. nog bekend gemaakt. Dus denk je, ik heb ook nog wel wat leuke grapjes in BASIC of assembly liggen en heb nog wel wat tijd om het in 1K (of één van de andere groottes) te persen, doe vooral mee!

De vorige keer waren er een dikke 30 inzendingen, dus het sloeg behoorlijk aan. En meerdere mensen hadden meer dan 1 intro ingezonden.

Alle regels kunnen nagelezen worden op TopixWEB (http://www.dse.nl/~topix) of direct via http://surf.to/codecraft. Ook zijn de inzendingen van de huidige en vorige competitie te downloaden.

Wie gaat de uitdaging aan?

Ferdinand
fv@topix.demon.nl