Hallo. Mijn naam is Stephan en ik heb een project bedacht dat ik graag met jullie wil delen. In mijn dagelijkse werk ben ik webdeveloper en zet ik webapplicaties in elkaar voor bedrijven.
Deze maand (april) wil ik eens wat anders gaan doen. Ik heb wat vrije tijd over die ik wil besteden aan een hobby project. Ik heb dit recent bedacht: een engine voor idle-games waarop je games kunt maken en spelen in je browser.
Dat klinkt uitdagend en dat is het ongetwijfeld ook; toch ga ik het proberen :-)
Eerlijk is eerlijk, ik ben hevig geinspireerd door Neo_TGP die ruim drie jaar geleden begon met zijn kleine webspelletje. Ik ontdekte zijn topic pas recent en was direct onder de indruk.
Als ik zoiets lees, speelt bij mij als developer direct door het hoofd: "zou ik dit ook kunnen?" en "wat zou ik dan anders doen?".
Let's find out :-)
Ik ga iets soortgelijks ook proberen! Ik wil dit topic gebruiken om mijn ervaringen tijdens het bouwen van mijn project te delen. Omdat ik er geen eeuwigdurend sideproject van wil maken heb ik mijzelf de rest van deze maand gegeven om hieraan te werken. Laten we zien wat er haalbaar is in die tijd.
In plaats van (saaie
) business applicaties wil ik nu eens iets toegankelijkers en leukers bouwen.
Een idle-game / click-game heeft, denk ik, de juiste eigenschappen om het haalbaar te maken in de geringe beschikbare tijd:
Het basisconcept is gelijk aan Clickfarm.nl van NEO_TGP:
Van dit alles bestaat nu nog niets. Behalve het abstracte idee in mijn hoofd. Ik wil de onvoorziene dingen die ik tegenkom gewoon spelenderwijs bedenken en oplossen zodra ik daar tegenaan loop.
Qua techniek: het spel moet speelbaar zijn via de browser zonder dat de speler zijn webpagina constant hoeft te refreshen. Je komt dan al snel uit bij een library als React. Omdat ik al ervaring heb met Next.JS wil ik dat gaan gebruiken als framework.
Omdat ik ook multiplayer-support wil gaan bouwen en cheaten wil voorkomen zal ik serverside de gamestate moeten bijhouden. Daar heb ik een database voor nodig. Om de kosten binnen de perken te houden wil ik niet 24/7 een server laten draaien maar ik gebruik maken van de serverless stack van AWS. Een relationele database vind ik niet geschikt. DynamoDB lijkt mij een betere keus om de state van de games in bij te houden. Met de API gateway en AWS Lambda kan ik daar een API bovenop bouwen. Om te voorkomen dat je handmatig moet refreshen wil ik websockets gebruiken. Dat zou ik met AWS Appsync en GraphQL subscriptions voor elkaar moeten kunnen krijgen.
Het is een ambitieus project. Waarschijnlijk zal ik niet alle toeters en bellen voor 1 mei gebouwd kunnen hebben. Dat is niet erg. Ik probeer zo ver mogelijk te komen en op 1 mei beslis ik wat voor gevolg ik er aan ga geven. Misschien zet ik het project stop en gaat het op de plank. Misschien ga ik nog door; als ik er lol uit haal en er toekomstperspectief in zie.
Ik zal de resterende werkdagen in april aan dit project besteden. Ik zal proberen om hier dagelijks een statusupdate te plaatsen. Dat is voor mij direct een stok achter de deur om voortuitgang te blijven boeken. Wie het interessant vindt om dit te volgen of wie mee wil denken: ik stel alle vragen en feedback erg op prijs en ik zal proberen om overal op te reageren.
Now let's start building!
--- Update ---
Project url: http://twelvemonth.games
Deze maand (april) wil ik eens wat anders gaan doen. Ik heb wat vrije tijd over die ik wil besteden aan een hobby project. Ik heb dit recent bedacht: een engine voor idle-games waarop je games kunt maken en spelen in je browser.
Dat klinkt uitdagend en dat is het ongetwijfeld ook; toch ga ik het proberen :-)
Eerlijk is eerlijk, ik ben hevig geinspireerd door Neo_TGP die ruim drie jaar geleden begon met zijn kleine webspelletje. Ik ontdekte zijn topic pas recent en was direct onder de indruk.
Als ik zoiets lees, speelt bij mij als developer direct door het hoofd: "zou ik dit ook kunnen?" en "wat zou ik dan anders doen?".
Let's find out :-)
Ik ga iets soortgelijks ook proberen! Ik wil dit topic gebruiken om mijn ervaringen tijdens het bouwen van mijn project te delen. Omdat ik er geen eeuwigdurend sideproject van wil maken heb ik mijzelf de rest van deze maand gegeven om hieraan te werken. Laten we zien wat er haalbaar is in die tijd.
In plaats van (saaie
Een idle-game / click-game heeft, denk ik, de juiste eigenschappen om het haalbaar te maken in de geringe beschikbare tijd:
- Eenvoudig qua concept. Hopelijk is het spel te begrijpen zonder dat ik tijd hoef te besteden aan een handleiding.
- Simpele (/geen) graphics. UI is sowieso niet mijn sterke kant, maar met een timebox van minder dan 4 weken kan ik de UI geen voorrang geven.
- Heeft de potentie om verslavend te werken. In het topic van NEO_TGP valt terug te lezen dat vele mensen uren lol hebben gehad met het spel. Dat is ook mijn doel.
Het basisconcept is gelijk aan Clickfarm.nl van NEO_TGP:
- Als de game start krijgt de speler een initieel bedrag. Daarmee kan je fictieve resources kopen en weer verkopen (handel)
- Resources in je bezit leveren periodiek nieuwe resources op (vb: resource '1 koe' levert iedere dag resource '25 liter melk' op zolang er voldoende resource 'gras' beschikbaar is).
- In dit zelfde voorbeeld is automatiseren mogelijk. Koop je bijv. de resource 'melkrobot' hoef je niet zelf te klikken.
- Door vooruitgang te boeken kan je hogere levels bereiken.
- Hogere levels maken nieuwe type resources beschikbaar.
- De game moet uit zichzelf doorlopen; ook als er niet actief gespeeld wordt, loopt het spel door op de achtergrond.
- Het doel is om hogere levels te bereiken. Het ultieme doel kan verschillen per game (bijv. zoveel mogelijk geld).
- Een idle-game / clicker-game kan normaliter eindeloos doorgaan. Dat spreekt me niet aan. Ik wil wel een vaste tijdsduur voor het spel. Doel is om zover mogelijk te komen binnen die tijd.
- Multiplayer mogelijkheden. Als je met meerdere mensen hetzelfde spel-instantie kan joinen dan kan je ook resources handelen met elkaar en kent het spel echt een winnaar. Lijkt me veel vetter dan alleen een single-player modus
Van dit alles bestaat nu nog niets. Behalve het abstracte idee in mijn hoofd. Ik wil de onvoorziene dingen die ik tegenkom gewoon spelenderwijs bedenken en oplossen zodra ik daar tegenaan loop.
Qua techniek: het spel moet speelbaar zijn via de browser zonder dat de speler zijn webpagina constant hoeft te refreshen. Je komt dan al snel uit bij een library als React. Omdat ik al ervaring heb met Next.JS wil ik dat gaan gebruiken als framework.
Omdat ik ook multiplayer-support wil gaan bouwen en cheaten wil voorkomen zal ik serverside de gamestate moeten bijhouden. Daar heb ik een database voor nodig. Om de kosten binnen de perken te houden wil ik niet 24/7 een server laten draaien maar ik gebruik maken van de serverless stack van AWS. Een relationele database vind ik niet geschikt. DynamoDB lijkt mij een betere keus om de state van de games in bij te houden. Met de API gateway en AWS Lambda kan ik daar een API bovenop bouwen. Om te voorkomen dat je handmatig moet refreshen wil ik websockets gebruiken. Dat zou ik met AWS Appsync en GraphQL subscriptions voor elkaar moeten kunnen krijgen.
Het is een ambitieus project. Waarschijnlijk zal ik niet alle toeters en bellen voor 1 mei gebouwd kunnen hebben. Dat is niet erg. Ik probeer zo ver mogelijk te komen en op 1 mei beslis ik wat voor gevolg ik er aan ga geven. Misschien zet ik het project stop en gaat het op de plank. Misschien ga ik nog door; als ik er lol uit haal en er toekomstperspectief in zie.
Ik zal de resterende werkdagen in april aan dit project besteden. Ik zal proberen om hier dagelijks een statusupdate te plaatsen. Dat is voor mij direct een stok achter de deur om voortuitgang te blijven boeken. Wie het interessant vindt om dit te volgen of wie mee wil denken: ik stel alle vragen en feedback erg op prijs en ik zal proberen om overal op te reageren.
Now let's start building!
--- Update ---
Project url: http://twelvemonth.games