osFighter V2

  • Na bijna twee jaar wordt er weer leven gebracht in osFighter.


    Jullie zullen me vast voor gek verklaren. Ik bouw niet verder op de osFighter source V1 (of V0,2), maar start geheel vanuit scratch. Aangezien ik in twee jaar enorm veel geleerd heb bouw ik osFighter met Laravel. De vooruitgang kan gevolgd worden op de develop branch.


    Ik ben van plan om er een soort CMS van te maken, waarbij alles instelbaar is. In de bijlage staan wat voorbeelden van het huidige admin menu en de Configuration (instellingen) pagina. Ik probeer osFighter een applicatie van deze tijd te maken. Zo is er bijvoorbeeld al een real time shout box (met Echo) en ga ik de gebruikers de mogelijkheid geven om queue's te gebruiken (allemaal optioneel). Maar ook inloggen met Facebook, Twitter, Instagram, etc. komt erin. Ook dit kan worden ingesteld en is dus niet verplicht.


    Ik bouw een very basic bootstrap template, dus osFighter is responsive. Ook zal het straks erg makkelijk zijn om handmatig zelf nieuwe functionaliteit toe te voegen.


    Sommige van jullie zouden denk: "ja ja, weer iemand die zegt zoiets te maken". Ik heb al een soort van proof of concept. Op dit moment is er nog weinig te zien. Mocht je een admin account willen om eens rond te kijken laat mij dan even je email weten in een PB. Of clone de repository.


    Graag zou ik zo veel mogelijk punten krijgen die jullie in zo'n open source crime RPG willen hebben. Deze punten zal ik er zoveel mogelijk in proberen te verwerken.


    Mocht je het lokaal willen installeren:


    Code
    git clone -b develop https://github.com/dees040/osFighter.git
    cd osFighter
    cp .env.example .env 
    composer install
    php artisan migrate


    Waarom doe ik dit? Ik heb veel crime RPG's gespeeld vroeger en wou er altijd zelf eentje bouwen. Acht jaar later en ik ben op een niveau dat ik dat kan.

  • Succes met bouwen!


    Een kleine tip die ik wil geven is dat je moet uitkijken met de app/Library, dit groeit namelijk al snel uit de klauwen en is voor een ander dan niet meer te onderhouden vrees ik...


    Verder ziet het er goed uit!

  • Wat zijn een aantal (originele) punten die jullie vinden dat er in zo'n soort crime game moeten zitten?


    Ik heb gisteren weer een kleine update live gezet (RLD, auto's stelen, garage, shop, bank, gym en vliegveld). De database wordt na elke update gereset, dus een account aanmaken heeft niet veel zin. Er is wel altijd een demo account.


    De volgende functie's die ik ga maken zal waarschijnlijk families en socialite login's worden (facebook/twitter/etc).

  • Zover ik weet kan je met HTML5 niet live posten en updaten? Ik neem aan dat jullie bedoelen dat alle form door middel van ajax verstuurd moeten worden en niet met de klassieke page refresh.


    Ik gebruik ook al Turbolinks. Dit zorgt er onder andere voor dat als je naar een andere pagina gaat niet alle CSS en JS opnieuw geladen hoeft te worden. YouTube doet dit bijvoorbeeld ook. Hierdoor laadt de pagina een stuk sneller.

  • Hoe zou jij het dan doen?

    Met alle respect voor wat je nu gemaakt hebt, het ziet er erg goed uit alleen het lijkt nu een code bak waar je ongezien steeds meer in gaat zetten en toevoegen. Zie bijvoorbeeld de UserHandler class, kan dat niet gewoon in het model? Dan is er een pages.php wat eigenlijk op halve routes lijken? Kunnen die extra controles niet in de middleware? Dan heb je nog de Game class waar helemaal allerlei verschillende dingen bij elkaar komen en wat mee gebeurd.

  • Ik zal even uitleggen waarom ik deze keuzes gemaakt heb.


    Om te beginnen: 'pages.php;. Om de administrators de routes of namen van pagina's aan te laten passen heb ik dynamic routes gemaakt. Deze moeten dus in de database komen. Deze staan nu in pages.php, zodat de migration niet helemaal vol komt en ik het overzicht verlies.


    Ik heb een Middleware die zo goed als alle controles uitvoert.


    De gebruiker heeft in drie verschillende tabellen data staan: users, user_info en user_time. Ik heb de UserHandler gemaakt om makkelijker toegang te krijgen tot alle data van de gebruiker en snellere verschillende actie's uit te kunnen voeren. Dit zou in de model kunnen, alleen worden de models dan een "code bak waar je ongezien steeds meer in gaat zetten en toevoegen". Iedereen heeft zo zijn voorkeuren ;) .


    De Game class is een class die veel kleine functie's bevat die voor mij de code net wat leesbaarder en schoner maken. Dit is code die meestal vaak (her)gebruikt moet worden. Hier zou ik ook helper function's van kunnen maken. Dit is opnieuw weer een persoonlijke voorkeur in mijn ogen.


    Hopelijk kan je jezelf hier een beetje in vinden. Je mag natuurlijk ook mee helpen! Een PR met hoe jij vindt dat het moet, is van harte welkom.

  • Bedankt voor de uitleg! Zal is kijken of ik in dec nog wat tijd heb!

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!