Project: een eenvoudige multiplayer game bouwen in 3 weken

Pagina: 1
Acties:

Acties:
  • +9 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
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:
  • 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.
Ik wil niet alleen een spel maken. Ik wil ook een generieke engine bouwen om nog meer spellen in dit genre te kunnen maken. En alles moet via de browser mogelijk zijn.

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).
Wat zou ik ook graag willen:
  • 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 :)
Op basis van dit algemene concept kunnen volgens mij talloze game varianten bedacht worden. Daarom wil ik proberen om hier een generieke engine voor te maken waar je door middel van alleen configuratie heel simpel een nieuw spel kunt maken.

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

Acties:
  • +1 Henk 'm!

  • Ebayzo
  • Registratie: Juli 2001
  • Laatst online: 17-10-2022

Ebayzo

hij/hem

Met volgs! Succes :)

Default blanke hetero


Acties:
  • +1 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 18-09 19:05
Klinkt erg ambitieus en ben benieuwd wat je gemaakt gaat krijgen in deze korte tijd.

Waar ik wel een beetje bang voor ben is hoeveel werk je jezelf op de hals haalt door gebruik te maken van al die verschillende frameworks. Tenzij je hier al veel ervaring mee hebt, dan heb ik niets gezegd.

Acties:
  • +1 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Bedankt voor de harten onder de riem! :)

Tijd voor de eerste statusupdate!

Wat ik als eerste nodig heb is een naam voor het project. Een naam die het project goed definieert. Wat ik wil gaan bouwen is niet alleen een game, maar ook juist een engine om idle-games in te bouwen.
Een kenmerk van idle-games is dat ze altijd door blijven draaien ook als er niet actief gespeeld wordt. Ook zit er normaal gesproken geen vast einde aan.
Ik wil niet dat mijn idle-games voor altijd door blijven 'draaien'. Dat zou me namelijk onnodige servercapaciteit kosten voor gestarte spellen die misschien ondertussen vergeten of verlaten zijn.

Als oplossing heb ik bedacht om alle games een vaste tijdsperiode te laten duren. Ik heb gekozen voor een jaar. Dat betekent dan een jaar na de start van een een game het spel zal eindigen. Als je met meerdere mensen speelt kan je op dat moment de stand opmaken wie er het beste voorstaat en die als winnaar bekronen.
Je hoeft natuurlijk niet actief een jaar lang te spelen. Als het goed is is het voldoende om af en toe te controleren hoe het spel verloopt en wat bij te sturen.
Als naam voor het project zat ik daarom te denken in de richting 'oneyear games'. Als variant daarop, wat ik iets beter vond klinken, heb ik gekozen voor 'twelvemonth games'. Uiteraard heb ik eerst even gecheckt of de betreffende domeinnaam nog beschikbaar was; en jawel: https://twelvemonth.games is van mij.

Wat je nu ziet als je op die link klikt is een eerste versie van wat schermen die ik nodig ga hebben:
- Een homepagina waarop je de beschikbare spellen ziet en de mogelijkheid om zelf een spel te 'bouwen'.
- De game-pagina waarop je een nieuwe instantie van dat spel kunt starten of een lopend spel kunt openen.
Verder heb ik nu nog niets.

Op het moment van schrijven ga ik de UI wat polijsten zodat ik die op elke pagina kan hergebruiken. Ik heb in het verleden de componenten van TailwindUI al eens aangeschaft; die wil ik voor dit project ook gebruiken om met weinig moeite een toonbare UI te creëren.

Wordt vervolgd!

Acties:
  • +2 Henk 'm!

  • beebie121
  • Registratie: December 2011
  • Laatst online: 18:39
Twelve Monthies zou ook een leuke verzamelnaam kunnen zijn :)

Ik ga dit topic volgen! ik vind clickfarm ook onwijs goed bedacht.
Helaas kan ik zelf niks qua programmeren o.i.d.

Heel veel succes en ik ben echt heel benieuwd wat je kan bouwen!!

Acties:
  • +1 Henk 'm!

  • Renzzie
  • Registratie: November 2010
  • Laatst online: 21:26
Veel succes, ben erg benieuwd!
Heb alvast je webpagina in m'n favorieten gegooid en het knopje 'topic volgen' hier aangevinkt :+

Acties:
  • +1 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 18-09 19:05
Persoonlijk zou ik geen interesse hebben om 12 maanden achter elkaar een online spel te moeten spelen. Wellicht dat dit voor andere mensen anders ligt.

De keuze qua naam is wel een goede want het geeft je ook de optie om bijv. een soort laddersysteem te hebben met 12 aparte rondes in een jaar (dus elke ronde is 1 maand). Of een combinatie hiervan.

Kortere sessies zouden mij meer aantrekkelijk lijken, want dan maak je tenminste nog kans zonder ook tijdens vakanties en dergelijke het spel te moeten blijven spelen.

Acties:
  • +1 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Postman schreef op woensdag 7 april 2021 @ 12:06:
Persoonlijk zou ik geen interesse hebben om 12 maanden achter elkaar een online spel te moeten spelen. Wellicht dat dit voor andere mensen anders ligt.

De keuze qua naam is wel een goede want het geeft je ook de optie om bijv. een soort laddersysteem te hebben met 12 aparte rondes in een jaar (dus elke ronde is 1 maand). Of een combinatie hiervan.

Kortere sessies zouden mij meer aantrekkelijk lijken, want dan maak je tenminste nog kans zonder ook tijdens vakanties en dergelijke het spel te moeten blijven spelen.
Goeie. Ik denk dat ik de duur instelbaar ga maken voor de maker van de game. Met een max van 1 jaar.

Qua 'tempo in het spel' zat ik te denken om het een factor 100 keer zo snel als de echte tijd te doen. Dus in een spel dat je voor 1 jaar zou spelen verstrijkt er 100 jaar in het spel. Dit zie je dan terug in bijv hoevaak een kip een ei legt. Volgens mij is dat normaal gemiddeld 1 per 24 uur. Dan zou dat in het spel 1 per 14 minuten zijn.

[ Voor 20% gewijzigd door Stephan11117 op 07-04-2021 13:07 ]


Acties:
  • +1 Henk 'm!

  • TweakerVincent
  • Registratie: April 2014
  • Laatst online: 23:27
Waarom geen Unity en Webgl?

Acties:
  • +1 Henk 'm!

  • DennusB
  • Registratie: Mei 2006
  • Niet online
Tof dat je het gaat bouwen bovenop AWS, dat is ook mijn expertise :) Mocht je tegen vragen of problemen aanlopen, schroom niet om contact op te nemen! Ik ga dit zeker volgen

Owner of DBIT Consultancy | DJ BassBrewer


Acties:
  • +2 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Ik heb daar niet de skills voor en het past niet binnen de beschikbare tijd :)
DennusB schreef op woensdag 7 april 2021 @ 13:07:
Tof dat je het gaat bouwen bovenop AWS, dat is ook mijn expertise :) Mocht je tegen vragen of problemen aanlopen, schroom niet om contact op te nemen! Ik ga dit zeker volgen
Zal ik zeker doen! Ik ben nu aan het kijken of ik Step Functions kan gebruiken om de state van een spel te managen.

[ Voor 50% gewijzigd door Stephan11117 op 07-04-2021 13:13 ]


Acties:
  • +3 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Nieuwe dag, nieuwe update!
  • De site heeft gisteren een likje verf gehad. Dezelfde layout komt nu op iedere pagina terug om er één geheel van te maken.
  • Ik heb een knop toegevoegd om een nieuw spel te beginnen.
  • Ik heb een begin gemaakt met de pagina waarop je de configuratie van een game kunt instellen en aanpassen.
Vandaag ga ik verder met de configuratiepagina. Ik verwacht dat een game (op termijn) veel instelmogelijkheden gaat krijgen. Ik wil nu geen tijd besteden aan mooie formulieren daarvoor. De configuratie bestaat voorlopig uit een JSON string die je in een textarea zet. Om te voorkomen dat er ongeldige configuratie wordt ingesteld, gebruik ik een JSON Schema ter validatie.

Als alles volgens plan verloopt is het morgen mogelijk om zelf een game te maken!

Acties:
  • +1 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
We zijn weer een dag verder; ik heb gisteren lekker door kunnen werken.
  • De pagina om zelf een game te maken staat live. De settings zijn nog beperkt maar dat zal steeds uitgebreider gaan worden.
  • Ik heb de tabellen aangemaakt om de betalingen (transacties) en leningen in bij te houden. Bij aanvang van een spel ontvang je lening zodat je kunt gaan investeren. Over deze lening betaal je rente totdat je hem afgelost hebt.
Als je nu een spel start zie je dat je saldo nog op 0 blijft staan. Pas na handmatig refreshen van de pagina zie je dat je eerste lening is toegekend.
Die handmatige refresh wil ik er vandaag uit gaan halen. Bedoeling is dat alles wat dynamisch is op een pagina automatisch ververst. Vandaag wil ik daarom de websocket koppeling toe gaan voegen en werkend maken.

Maandag weer een update! Alvast een fijn weekend.

Acties:
  • +1 Henk 'm!

  • Renzzie
  • Registratie: November 2010
  • Laatst online: 21:26
Ik was in de veronderstelling dat je doel was om een MP idle game te maken in een maand. Staat dit soort zaken als 'maak je eigen game' niet haaks op het doel? Het gaat immers allemaal af van het hetgeen wat het meest schaars is in 1 maand, namelijk tijd. Of heb je dit nodig om überhaupt zelf aan de bak te kunnen?

Acties:
  • 0 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Renzzie schreef op vrijdag 9 april 2021 @ 09:35:
Ik was in de veronderstelling dat je doel was om een MP idle game te maken in een maand. Staat dit soort zaken als 'maak je eigen game' niet haaks op het doel? Het gaat immers allemaal af van het hetgeen wat het meest schaars is in 1 maand, namelijk tijd. Of heb je dit nodig om überhaupt zelf aan de bak te kunnen?
Ja goeie. Mijn denkwijze was als volgt:
Of het spel speelbaar, leuk en uitdagend is draait uiteindelijk (grotendeels) om de configuratie van parameters.
Die wil ik dus heel eenvoudig kunnen instellen en tunen. Idealiter via een web-interface, zodat ik geen code hoef te wijzigen als een kip vaker een ei moet leggen. En als ik die web-interface toch heb kan ik die net zo goed beschikbaar maken voor iedereen. :)

Ik denk dat dit tijd zal leren of dit een goede keus is geweest :D

[ Voor 3% gewijzigd door Stephan11117 op 09-04-2021 10:28 ]


Acties:
  • +1 Henk 'm!

  • Renzzie
  • Registratie: November 2010
  • Laatst online: 21:26
Stephan11117 schreef op vrijdag 9 april 2021 @ 10:26:
[...]


Ja goeie. Mijn denkwijze was als volgt:
Of het spel speelbaar, leuk en uitdagend is draait uiteindelijk (grotendeels) om de configuratie van parameters.
Die wil ik dus heel eenvoudig kunnen instellen en tunen. Idealiter via een web-interface, zodat ik geen code hoef te wijzigen als een kip vaker een ei moet leggen. En als ik die web-interface toch heb kan ik die net zo goed beschikbaar maken voor iedereen. :)

Ik denk dat dit tijd zal leren of dit een goede keus is geweest :D
Duidelijk! Ben inderdaad benieuwd of dit zal helpen of juist niet. Een interface is van nature natuurlijk beperkt, dus hoop dat je alle wensen voldoende kunt tweaken. Fingers crossed :D

Acties:
  • +4 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Het is maandagochtend: daar ben ik weer!

Zoals van plan heb ik vrijdag de WebSockets ingebouwd. Dit had wat meer voeten in aarde dan ik had verwacht dus ik ben daar bijna de hele dag mee bezig geweest. Je ziet nu als je een spel start dat je direct een saldo toegekend krijgt zonder dat je hoeft te verversen.
Als het goed is heb ik het voldoende generiek opgezet dat ik deze techniek op alle plaatsen in het spel kan gebruiken waar dingen automatisch ververst moeten worden.
Ik heb ook een tellertje toegevoegd die de huidige fictieve datum in het spel weergeeft.

In het weekend heb ik vooral ontspannen maar toch ook nog nagedacht over het spel. Hoewel ik nu veel bezig ben met de techniek gaat het daar uiteindelijk natuurlijk helemaal niet om. Een spel moet leuk, uitdagend en (een tikje) verslavend zijn. Hoe je dat voor elkaar krijgt? Geen idee :) Ik heb gisteren wat Youtube filmpjes gekeken over deze tak van sport om me inspiratie te geven. Hopelijk ben ik snel zo ver dat ik bezig kan gaan met het toevoegen van juice aan het spel.

Deze week ben ik sowieso nog bezig met de techniek. Aan het einde van de week wil ik echt een MVP versie van de game gereed hebben. Tot morgen!

Acties:
  • +2 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Een beknopte update vandaag:

Ik ben gisteren bezig geweest met hem concept 'resources'. Dat zijn dus alle items die in een spel voorkomen (bijv: kippen, eieren of landbouwgrond). Deze items kan je kopen en verkopen.

Ik zit een beetje te tobben hoe ik de prijsbepaling ga doen. Als je met meerdere mensen speelt zou je de prijzen in theorie volledig door de markt kunnen laten bepalen. Alleen kan je dan pas iets kopen als iemand anders het wil verkopen. Dat is (vooral in de beginfase) niet handig.
Ik wil daarom ook het concept 'de bank' introduceren, waar je van kunt kopen en aan kunt verkopen. De bank heeft praktisch ongelimiteerde resources.
Soms zal je dan kiezen om van een medespeler te kopen, en soms van de bank. Afhankelijk van de prijzen die gevraagd worden. Als je in je eentje speelt heb je uiteraard alleen de bank beschikbaar om mee te handelen.

Wat ik lastig vind is hoe de bank de prijs van de resources gaat bepalen. Ik wil die liever niet 'fixed' instellen. Iemand ideeën daarvoor?

Acties:
  • +2 Henk 'm!

  • Lordy79
  • Registratie: Januari 2000
  • Laatst online: 10:44

Lordy79

Vastberaden

De bank moet duur verkopen en goedkoop inkopen. Minstens een factor 2 hier tussen.
Verder moet je er beducht op zijn dat men niet gaat speculeren en goedkoop koopt bij de bank en duur verkoopt. De laagst mogelijke verkoopprijs van de bank mag nooit lager zijn dan de hoogste inkoop prijs.

Verder moet kopen van de bank geen standaard substitutie zijn voor het zelf produceren. Zelf produceren moet altijd fors goedkoper zijn dan kopen bij de bank .

Welke waarde het exact moet hebben is lastig te bepalen. En de bank krijgt geld. Geld moet dus wel schaars zijn.

Een alternatief is een markt op een bank waar geld geen rol speelt maar waar je bijv. 100 eieren kunt inruilen voor één koe of 100 liter melk voor 5 kippen.

In feite is de wetenschap op zoek naar de Ein Sof


Acties:
  • 0 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Lordy79 schreef op dinsdag 13 april 2021 @ 08:39:
De bank moet duur verkopen en goedkoop inkopen. Minstens een factor 2 hier tussen.
Verder moet je er beducht op zijn dat men niet gaat speculeren en goedkoop koopt bij de bank en duur verkoopt. De laagst mogelijke verkoopprijs van de bank mag nooit lager zijn dan de hoogste inkoop prijs.

Verder moet kopen van de bank geen standaard substitutie zijn voor het zelf produceren. Zelf produceren moet altijd fors goedkoper zijn dan kopen bij de bank .

Welke waarde het exact moet hebben is lastig te bepalen. En de bank krijgt geld. Geld moet dus wel schaars zijn.

Een alternatief is een markt op een bank waar geld geen rol speelt maar waar je bijv. 100 eieren kunt inruilen voor één koe of 100 liter melk voor 5 kippen.
Dit zet me aan het denken. Bedankt!

Je alternatief spreekt me ook wel aan: gewoon het hele concept geld niet gebruiken maar alleen gebruik maken van ruilhandel. Je houdt dan alleen hetzelfde probleem: als 100 liter melk nu 5 kippen waard is, blijft dat dan altijd zo?

Edit: ik ben er ondertussen achter dat de grootste uitdaging van dit project er in zit hoe realistisch ik het ga maken. ;) De kracht moet wel de eenvoud blijven.

[ Voor 6% gewijzigd door Stephan11117 op 13-04-2021 09:01 ]


Acties:
  • +1 Henk 'm!

  • Djurres
  • Registratie: Januari 2013
  • Laatst online: 03-09 22:25
Daar kan je een keuze in maken. Als dat fixed blijft en de prijs van een liter melk stijgt enorm, dan kan het heel interessant worden om geen kippen meer te kopen doormiddel van melk, maar met een omweg kippen te kopen door melk eerst te ruilen tegen 20 pakken boter om vervolgens per 12 pakken boter 5 kippen te kopen.

Ik denk als je het fixed maakt dat er geen marktwerking is.

Acties:
  • 0 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Ik denk dat ik de bank-prijzen in eerste instantie zo ga doen.

Afbeeldingslocatie: https://tweakers.net/i/l4C81dd8kQeZYgYw5qNXmfXnfuo=/x800/filters:strip_exif()/f/image/yzk22gY873uCPRSVN2GKONlH.png?f=fotoalbum_large

[ Voor 22% gewijzigd door Stephan11117 op 13-04-2021 11:19 ]


Acties:
  • +1 Henk 'm!

  • magicstar
  • Registratie: Februari 2002
  • Laatst online: 16-09 22:26
Economie in dit soort games is geweldig en ontiegelijk complex. Ik denk dat je schema hierboven een redelijke eerste stap is.

- Ik zou niet kostprijs nemen voor de bank maar verkoopprijs, dus ook de eventuele winst voor een ondernemer erin meenemen
- Die laatste order prijs moet je altijd als gem. van de laatste X orders nemen gewogen naar volume anders kan je de bank bespelen door eerst heel goedkoop 1 kip te handelen met veel verlies en daarna heel veel kippen te kopen
- Deze basis prijs is altijd een goed vertrekpunt en kan je als anker nemen, ook eventueel als meeweging in de order prijs berekening

Benieuwd wat je gaat doen en ik lees met interesse mee

Acties:
  • +2 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
magicstar schreef op dinsdag 13 april 2021 @ 13:45:
Economie in dit soort games is geweldig en ontiegelijk complex. Ik denk dat je schema hierboven een redelijke eerste stap is.

- Ik zou niet kostprijs nemen voor de bank maar verkoopprijs, dus ook de eventuele winst voor een ondernemer erin meenemen
- Die laatste order prijs moet je altijd als gem. van de laatste X orders nemen gewogen naar volume anders kan je de bank bespelen door eerst heel goedkoop 1 kip te handelen met veel verlies en daarna heel veel kippen te kopen
- Deze basis prijs is altijd een goed vertrekpunt en kan je als anker nemen, ook eventueel als meeweging in de order prijs berekening

Benieuwd wat je gaat doen en ik lees met interesse mee
Ik heb de marktwerking inmiddels grotendeels ingebouwd met deze aanpassingen erin verwerkt :)

Vandaag ga ik ook weer stappen maken met de UI zodat alles via de frontend aan te roepen (en te testen) is.

Acties:
  • 0 Henk 'm!

  • magicstar
  • Registratie: Februari 2002
  • Laatst online: 16-09 22:26
Geen nieuwe updates?

Acties:
  • +3 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Bij deze! De voortgang staat niet stil, integendeel :)

Ik ben doorgegaan met het orderboek waar alle koop- en verkooporders in opgeslagen worden.

Je hebt de mogelijkheid om een gewenst aantal en een gewenste prijs in te voeren. Als er een tegenpartij is (kan ook de bank zijn) die dat aan kan bieden dan zal je order direct uitgevoerd worden.
Je kan er ook voor kiezen om een order die niet direct uitgevoerd kan worden in het orderboek te laten staan zodat die automatisch op een later moment uitgevoerd zal worden als dat wel kan, omdat de prijs gestegen of gedaald is.

Afbeeldingslocatie: https://tweakers.net/i/hsVgtIkiBZMfD_CM7A2HwhE9hE8=/800x/filters:strip_exif()/f/image/PvI4a48pCWB5LfcqdBkZJVli.png?f=fotoalbum_large

Om dit voor elkaar te krijgen liep ik tegen wat technische uitdagingen aan met transacties in DynamoDB. Dat was ook de reden dat er hier even geen statusupdates kwamen: het duurde wat langer dan ik had verwacht en ik had gewoon nog niet zoveel te melden.

Voor dit onderdeel ben ik nu bezig met de laatste stap: notificaties die automatisch in beeld komen als er een order op een later moment alsnog vervuld is.
Morgen heb ik onverwacht een papa-dag, dus zal ik niet verder kunnen met m'n project. Woensdag zal ik een nieuwe versie live zetten. Wordt vervolgd! :*)

Acties:
  • +1 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Update!

Ik heb zojuist een nieuwe versie live gezet.

Toegevoegd:
- Kopen en verkopen van resources.
- Notificaties bij succesvolle of mislukte aankopen en verkopen.
- Multiplayer mogelijkheden!

Om de multiplayer mogelijkheden te testen kan je in een andere browser (of een anoniem venster) dezelfde url van een spel openen. Je kunt dan kiezen om deel te gaan nemen aan het lopende spel. Hiermee kan je tegen jezelf spelen :P

De voorraden die je in je bezit hebt worden allemaal al bijgehouden maar dat wordt nog niet getoond. Dat is een klusje voor morgen, samen met wat test en polijst-werkzaamheden.

Echt te spelen valt er nog niet. Naast kopen en verkopen kan je namelijk nog niets uitvoeren. Toch ben ik blij dat langzamerhand de grote lijnen van het spel duidelijk beginnen te worden. Als iemand al feedback heeft: laat je horen! :)

Acties:
  • +1 Henk 'm!

  • Renzzie
  • Registratie: November 2010
  • Laatst online: 21:26
Of het heel handig is zo weet ik niet, maar hieronder mijn gedachten toen ik probeerde een spelletje te spelen :)
  • Waarom staan er 3 games op de pagina? Welke is de goede?
  • 5 is de laatste versie, dit zal wel de goede game zijn
  • ik klik op play game bovenin. Hmm, gek ik heb geen geld. Oh moet ik ook nog op start game drukken?
  • Start game laden duurt wel lang zeg.... Oh kijk, volledig geladen! (na 10 seconden).
  • Het zou fijn zijn als er punten werden gebruikt bij het saldo bovenin. Het is niet direct duidelijk of ik nu 1mio had of 100k
  • Jeetje, wat is farmland duur. 68k betekent dat ik er maar 1 kan kopen
  • Even kijken bij grass. De prijs is hier leeg. Gek...
  • Even milk en cow kijken. Hier ook leeg. Maar even kijken wat er gebeurt als ik op buy klik
  • 'Voer een getal in' krijg ik als melding. Laten we hier dan maar 1 invullen. Hmm, niemand wil dit verkopen. Voor welke prijs wel dan? Dit is maar verwarrend :'(
  • Rare plek voor een melding trouwens, zou fijner zijn als dit in de buurt zit van het akkoord/invoer veld...
  • Ok, vooruit laten we dan maar dat dure farmland kopen.
  • Heuhj, gelukt! Ik zie meteen ook dat farmland duurder is geworden.
  • en nu? Geen idee hoe ik centjes kan verdienen.
  • Tevens meteen ietswat verwarrend dat ik op cancel moet drukken als ik iets gekocht heb om de Sell knop weer te zien.
  • Het verkopen is minder kostefficient dan kopen. Ik ben dus 'af'?
  • Geen idee meer wat te doen, ik vind het wel best zo. Denk dat er niets meer te testen is.
  • GG, well played!
Edit: ik zie dat de meldingen nog steeds rechtsbovenin staan. Zou natuurlijk fijn zijn als die automatisch weg gaan na ~10 seconden.

[ Voor 3% gewijzigd door Renzzie op 23-04-2021 09:38 ]


Acties:
  • 0 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Renzzie schreef op vrijdag 23 april 2021 @ 09:37:
Of het heel handig is zo weet ik niet, maar hieronder mijn gedachten toen ik probeerde een spelletje te spelen :)
Super handig zo! Bedankt.
• Waarom staan er 3 games op de pagina? Welke is de goede?
Komt doordat ik (en anderen) aan het testen zijn met oa. games aanmaken.
• 5 is de laatste versie, dit zal wel de goede game zijn
Ja. Ik gebruik zelf een opvolgnummer. Hoogste is de meest recente.
• ik klik op play game bovenin. Hmm, gek ik heb geen geld. Oh moet ik ook nog op start game drukken?
Klopt. Daar heb ik een losse stap van gemaakt. Als je met meerdere mensen speelt wil je misschien allemaal tegelijk starten. Lijkt het je beter om de game automatisch te starten na het aanmaken?
• Start game laden duurt wel lang zeg.... Oh kijk, volledig geladen! (na 10 seconden).
Ja, er worden dan wat zaken klaargezet wat een paar seconden kan duren. Als het goed is werkt het verder allemaal wel snel :)
• Het zou fijn zijn als er punten werden gebruikt bij het saldo bovenin. Het is niet direct duidelijk of ik nu 1mio had of 100k
Mee eens. Aangepast.
• Jeetje, wat is farmland duur. 68k betekent dat ik er maar 1 kan kopen
Klopt ja. Maar je kan zelf een spel bouwen waarbij je andere prijzen hanteert :)
• Even kijken bij grass. De prijs is hier leeg. Gek...
Als er op het moment geen kopers zijn dan toonde ik geen prijs. Ik heb dat nu aangepast naar 1 zodat het veld niet leeg blijft. Is dat beter?
• 'Voer een getal in' krijg ik als melding. Laten we hier dan maar 1 invullen. Hmm, niemand wil dit verkopen. Voor welke prijs wel dan? Dit is maar verwarrend :'(
Je hebt dan geen medespelers of bank die dit wil kopen. Verwarrend is niet goed; hoe zal ik dat dan tonen?
• Rare plek voor een melding trouwens, zou fijner zijn als dit in de buurt zit van het akkoord/invoer veld...
Alle meldingen komen nu effe op dezelfde plek. Wellicht pas ik dat nog aan.
• Heuhj, gelukt! Ik zie meteen ook dat farmland duurder is geworden.
Klopt. De bank bepaald zijn verkoopprijs door 10% boven de laatste transactie te gaan zittten.
• en nu? Geen idee hoe ik centjes kan verdienen.
Haha dat klopt. Je kan verder nog niets.
• Tevens meteen ietswat verwarrend dat ik op cancel moet drukken als ik iets gekocht heb om de Sell knop weer te zien.
Ja mee eens. Heb ik aangepast.
• Het verkopen is minder kostefficient dan kopen. Ik ben dus 'af'?
Hehe, inderdaad.
• GG, well played!
:P
Edit: ik zie dat de meldingen nog steeds rechtsbovenin staan. Zou natuurlijk fijn zijn als die automatisch weg gaan na ~10 seconden.
Heb ik aangepast.

Nogmaals bedankt voor de feedback!

Acties:
  • +1 Henk 'm!

  • Renzzie
  • Registratie: November 2010
  • Laatst online: 21:26
Stephan11117 schreef op vrijdag 23 april 2021 @ 13:14:

Komt doordat ik (en anderen) aan het testen zijn met oa. games aanmaken.

[...]

Ja. Ik gebruik zelf een opvolgnummer. Hoogste is de meest recente.

[...]

Klopt. Daar heb ik een losse stap van gemaakt. Als je met meerdere mensen speelt wil je misschien allemaal tegelijk starten. Lijkt het je beter om de game automatisch te starten na het aanmaken?

[...]

Klopt ja. Maar je kan zelf een spel bouwen waarbij je andere prijzen hanteert :)

[...]

Ja, er worden dan wat zaken klaargezet wat een paar seconden kan duren. Als het goed is werkt het verder allemaal wel snel :)
Ik heb hier wat persoonlijke bias, maar als ik een incremental wil spelen wil ik gewoon op 'Play' rammen en gaan met die banaan. Je wilt mensen aan je binden zonder dat ze zich inlezen, etc. Het zal dus ook mijn voorkeur hebben om slechts 3 knoppen daar te hebben namelijk 'main game', 'custom game' and 'create game'.

Mijn vermoeden is dat het grootste gedeelte van de mensen gewoon een main game willen spelen en zich helemaal niet druk maken met private sessies, eigen games bouwen en dat soort zaken. Het kleine percentage dat een custom ervaring wil kan bij de 2e knop en 3e knop terecht.

Dit houdt dus ook in dat de game automatisch zal starten nadat je op 'main game' hebt geklikt.
Stephan11117 schreef op vrijdag 23 april 2021 @ 13:14:
[...]

Als er op het moment geen kopers zijn dan toonde ik geen prijs. Ik heb dat nu aangepast naar 1 zodat het veld niet leeg blijft. Is dat beter?

[...]

Je hebt dan geen medespelers of bank die dit wil kopen. Verwarrend is niet goed; hoe zal ik dat dan tonen?
Is niet echt beter of slechter. Je weet immers nog steeds niet waarvoor je het wél kan kopen.
Ik zou dus de goedkoopste prijs daar neerzetten en als er niets te kopen is een tekst met 'not for sale yet' oid.

Voor nu is het sowieso nog erg onduidelijk hoe je geld kan verdienen en wanneer bepaalde zaken te koop zijn.
Dus wellicht wordt het als het spel wat meer vlees krijgt wat duidelijker.
Stephan11117 schreef op vrijdag 23 april 2021 @ 13:14:

[...]

Mee eens. Aangepast.

[...]

Alle meldingen komen nu effe op dezelfde plek. Wellicht pas ik dat nog aan.

[...]

Klopt. De bank bepaald zijn verkoopprijs door 10% boven de laatste transactie te gaan zittten.

[...]

Haha dat klopt. Je kan verder nog niets.

[...]

Ja mee eens. Heb ik aangepast.

[...]

Hehe, inderdaad.

[...]

:P


[...]

Heb ik aangepast.
(y) :)
Stephan11117 schreef op vrijdag 23 april 2021 @ 13:14:
Nogmaals bedankt voor de feedback!
Graag gedaan! :D
Laat maar weten als er wat meer speelelementen inzitten. Dan doe ik weer een rondje.

Acties:
  • +1 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Nog een update gedaan vlak voor het weekend: de hoeveelheden die je in je bezit hebt verversen nu automatisch zonder dat je hoeft te refreshen.
Renzzie schreef op vrijdag 23 april 2021 @ 13:56:
Ik heb hier wat persoonlijke bias, maar als ik een incremental wil spelen wil ik gewoon op 'Play' rammen en gaan met die banaan. Je wilt mensen aan je binden zonder dat ze zich inlezen, etc. Het zal dus ook mijn voorkeur hebben om slechts 3 knoppen daar te hebben namelijk 'main game', 'custom game' and 'create game'.

Mijn vermoeden is dat het grootste gedeelte van de mensen gewoon een main game willen spelen en zich helemaal niet druk maken met private sessies, eigen games bouwen en dat soort zaken. Het kleine percentage dat een custom ervaring wil kan bij de 2e knop en 3e knop terecht.

Dit houdt dus ook in dat de game automatisch zal starten nadat je op 'main game' hebt geklikt.
Je hebt gelijk. Ik moet de homepage inderdaad versimpelen. Komt op de lijst voor volgende week! :)

Fijn weekend alvast allen!

Acties:
  • +2 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Ik heb vandaag de homepage versimpeld, zodat je daar met 1 klik direct kunt spelen.

Verder heb ik een start gemaakt van het kunnen uitvoeren van acties op resources. Dat klinkt nogal abstract :) Een voorbeeld is een knop om je grasland te maaien, zodat de ene resource je een ander soort resource oplevert.
Omdat dit voorlopig de laatste week is die ik hiervoor vrij heb ga ik morgen tijdens Koningsdag ook aan de slag. Hopelijk kom ik dan een heel eind verder 🙏

Acties:
  • +1 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Update: het is inmiddels mogelijk om elke dag je aangeschafte grasland te maaien :) Dat levert je in ongeveer een minuut maaien kilo's aan gras op.

Gewoon omdat het kan, en om het wat speelser te maken, heb ik nog wat geluidjes toegevoegd en het lettertype wat minder stijf gemaakt.

Ik ga nu nog wat bugjes pletten die ik zelf al gevonden heb en dan door met opslag van resources. Die kilo's gras moeten tenslotte ergens bewaard worden ;)

Acties:
  • +1 Henk 'm!

  • Renzzie
  • Registratie: November 2010
  • Laatst online: 21:26
Zou dat nu al mogelijk moeten zijn? Ik had al een game lopen. Als ik echter op 'mow' klikt gebeurt er helemaal niets.

Acties:
  • 0 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
Renzzie schreef op woensdag 28 april 2021 @ 17:00:
Zou dat nu al mogelijk moeten zijn? Ik had al een game lopen. Als ik echter op 'mow' klikt gebeurt er helemaal niets.
De grasmaaier is gerepareerd! Je kan nu wel maaien als het goed is! :)

Acties:
  • +1 Henk 'm!

  • Stephan11117
  • Registratie: Mei 2004
  • Laatst online: 20:38
En dan is het opeens al zo ver: mijn drieweekse project zit erop!
Hartelijk dank voor de interesse vanuit diverse hoeken. Erg leuk die betrokkenheid :)

Het resultaat dat er nu na drie weken werken staat, is nog geenszins een volwaardige game maar ik ben evengoed trots op wat ik bereikt heb!

De komende periode ben ik druk met andere dingen. De tijd die ik kan besteden aan Twelvemonth games zal daardoor minimaal zijn (af en toe 's avonds een uurtje wellicht).
Toch wil ik het hier niet bij laten. Ik ben zeker van plan om in de zomer het werk weer te hervatten en dan naar een speelbare leuke game toe te werken.

Blijf in de tussentijd vooral feedback en gevonden bugs in dit topic melden! :*)

Ik heb zelf alvast een lijstje gemaakt van wat ik zelf nog graag zou willen toevoegen.
  • Introductie van levels om idee van voortgang te hebben.
  • Opslag van resources in silo's.
  • De farm game uitbreiden met meer resources
  • Automatisering! Maairobots etc kunnen aanmaken.
  • Onderzoek / kunnen opwaardeerden van resources.
  • Meer het multiplayer-gevoel benadrukken: lijst met spelers, topscores tonen?
Als jullie nu kijken naar de huidige status, wat zouden jullie dan nog aan deze lijst willen toevoegen?

Acties:
  • +1 Henk 'm!

  • Renzzie
  • Registratie: November 2010
  • Laatst online: 21:26
Het is lastig om feedback te geven als er eigenlijk weinig tot niets speelbaar is O-)
Ik zou allereerst is goed nadenken over de flow die je wilt hebben.

Nu is de flow:
Start game, koop land, klik mow, wacht vele minuten of zelfs uren.

Dit is natuurlijk super saai en iedereen is na die klikjes en wachttijd weg. Je wilt mensen binden aan je game.
Zeker in de early game wil je zaken kunnen unlocken, snel kunnen spelen en steeds meer opties krijgen.
Na grofweg 10min spelen wil je dan de eerste zaken kunnen automatiseren.

Hoe die bijt met de MP ervaringen? Geen idee. Ik heb nog nooit een MP clicker gespeeld. Maar ik weet wel dat met de huidige flow en wachttijden niemand actief gaat spelen.
Pagina: 1