Keycap Kevin: Ik leer coderen voor mijn toetsenbord videospel
Ik gebruik de Ren'Py software om mijn eerste spel te programmeren. Er werd mij verteld dat het makkelijk te leren was. Ik realiseer me dat dit inderdaad het geval is.
Ik geef het Lego-compatibele Pixel toetsenbord weg. Zodat je het niet zo makkelijk hebt in de wedstrijd en hopelijk ook plezier hebt, wil ik dat je meespeelt. Ik ben een spel aan het programmeren - voor het eerst in mijn leven. Ik heb de software ervoor al gevonden: Ren'Py. Nu hoef ik alleen nog maar het verhaal dat ik al in mijn hoofd heb om te zetten in code. Als je het laatste deel van de serie hebt gemist, kun je dat lezen op de volgende link
Eenvoudige scripttaal
Ik download Ren'Py van de officiële site. Het programma draait op Windows, MacOS en Linux. Er is geen andere software of stuurprogramma's nodig op deze platforms. Ik kan de geïnstalleerde editor-app gebruiken om te coderen. Ik programmeer met een tekstgebaseerde scripttaal. Gamen is zelfs mogelijk op iOS en Android.
Ik kan mijn project starten of bewerken via de launcher. Je kunt ook de titel van mijn spel "The Keyboard Theft" in de afbeelding zien. Je weet al dat mijn spel gaat over het stelen van een toetsenbord.
Ik kan afbeeldingen, video's en muziek toevoegen aan de tekst. Ik definieer mijn personages, afbeeldingen enz. centraal. Hierdoor kan ik snel wijzigingen aanbrengen. Voorbeeld: ik definieer mijn hoofdpersonage Stevie met "define stevie = Character("Stevie", colour="C4A277")". Als ik nu "stevie" en de tekst erachter tussen aanhalingstekens typ, weet Ren'Py dat het een personage is. Het teken wordt geïdentificeerd als de spreker - met de bijbehorende hexadecimale kleurcode. Als ik iets wil aanpassen, hoef ik dat alleen maar in mijn definitie te doen.
Het is nog eenvoudiger met afbeeldingen. Als ik bijvoorbeeld een achtergrondafbeelding wil invoegen, hoef ik alleen maar "scene" in te voeren gevolgd door de bestandsnaam. Bijvoorbeeld "scène bg_kamer_1". Ik sla de afbeeldingen altijd op in dezelfde map. Als ik iets aan de afbeelding moet veranderen, overschrijf ik het bestand in deze map. Op deze manier laat Ren'Py meteen de huidige afbeelding zien.
Effecten gemakkelijk gemaakt
Ik kan effecten toevoegen aan afbeeldingen, video's en muziek. Zo kan ik met eenvoudige commando's afbeeldingen animeren, verplaatsen op het scherm, roteren of schalen. Als ik bijvoorbeeld een nieuwe achtergrond de oude omhoog wil laten duwen, kan ik dit doen met het commando "scene bg_introduction_carol with wipeup". Ik kan zelfs de duur van het effect opgeven. Al deze commando's worden uitgelegd in de Ren'Py documentatie. Ik hoef ze alleen maar op te zoeken en in te voegen. In de video zie je de eerste paar seconden van mijn spel met een paar effecten. Niets wereldschokkends, maar ze helpen om de gewenste sfeer te creëren.
Ren'Py ondersteunt vele formaten. JPEG en transparante PNG voor afbeeldingen, WAV en MP3 voor muziek en WEBM of MPEG 4 voor video, om er maar een paar te noemen. Maar let op: niet alle formaten zijn hetzelfde. Bepaalde WAV-bestanden kunnen nog steeds niet worden afgespeeld door Ren'Py. Als dit het geval is, wordt er geen muziek afgespeeld. Voor mijn project gebruik ik daarom het formaat waarmee ik nooit problemen heb in Ren'Py: MP3. De kwaliteit is ruim voldoende voor mijn spel. Natuurlijk kan muziek ook worden in- en uitgefade of gepauzeerd.
De uitdaging is niet de codering, maar de afbeeldingen
De codering is eigenlijk heel eenvoudig. Als ik een nieuwe scène heb geschreven, start ik altijd het project op om de wijzigingen te bekijken. Op die manier kan ik meteen zien of er iets mis is. Bijvoorbeeld als een geluidseffect niet wordt afgespeeld. Zoals gezegd heeft dit te maken met het feit dat Ren'Py het bestandsformaat niet herkent. In dit geval geeft het programma geen foutmelding, wat het oplossen van problemen de eerste keer moeilijker maakt. Maar zodra ik de reden weet, gebeurt dit niet meer. Het is gemakkelijker met code. Hier geeft Ren'Py een foutmelding bij de regel code, zoals je kunt zien in de volgende afbeelding.
In dit geval heb ik Stevie's verklaring niet afgesloten met een aanhalingstekens. Deze foutmeldingen zijn handig en ik vind de bug snel. Op deze manier kan ik snel vooruitgang boeken met coderen en het blijkt gemakkelijk te zijn. Zoals Youtuber Visual Novel Design me vertelde, is het met Ren'Py min of meer kopiëren en plakken.
Maar ik boek minder vooruitgang met de afbeeldingen, mijn graphics dus. Ik zal je de volgende keer vertellen over de uitdagingen die ik hier tegenkom. <p
Technologie en maatschappij fascineren me. Beide combineren en vanuit verschillende perspectieven observeren is mijn passie.