PDA

Volledige versie bekijken : Webgame: Robobug Blaster


Lemoneko
%Europe/Berlin %725 %2005, 17:24
Hola,

Onze nieuwste webgame is eindelijk af: ROBOBUG BLASTER (http://www.inslag.com/robobug/robobug.php) !

http://inslag.com/demion/robobug-screen.jpg

Het spel is gemaakt voor Demion Online (http://www.demiononline.nl), een webwinkel. Omdat het een internationale shop is moest het spel ook meertalig, afhankelijk van het domein wordt een xml file geladen waar alle tekst strings in staan.

De game is redelijk compleet met daily/weekly/alltime highscores en een send-to-a-friend functie.

Conceptschetsen (http://www.inslag.com/demion) heb ik ook online gezet, zoals je kan zien is het heel dicht bij het originele ontwerp gebleven.

Vincent van www.vinzend.com (http://www.vinzend.com) heeft alle graphics en animaties gemaakt, ikzelf (www.inslag.com (http://www.inslag.com)) heb de boel lopen coden. Muziek is het resultaat van een gezamelijk dagje klooien met Garageband. Concept is ook door ons samen bedacht (met duidelijke retro-invloeden). In totaal ongeveer drie volle weken aan de game gewerkt.

Laat maar weten wat je ervan vindt!

En ow, een beetje stevige computer is wel nodig om het soepel te kunnen spelen, maar je kan altijd nog 'low quality' kiezen ;-)

WernerL
%Europe/Berlin %735 %2005, 17:39
WOW deze game is zeeeeeeeeeer goed gemaakt. :-)
Geweldig! en showcase waardig. :-)

Tenshu
%Europe/Berlin %742 %2005, 17:48
WoW :O Zeker! :D
Een geweldige game.

Leuk om die schetsen te zien. Jullie hebben er echt over nagedacht over dat robotje. En het uit eindelijke robot is echt mooi geworden.

Heb zelf ook de game gespeeld en het is leuk om het te spelen. :)

dit mag van mij in de Showcase staan. :)

Neuro
%Europe/Berlin %782 %2005, 18:47
erg leuk, mooie schetsen, showcase :)

groothoofd
%Europe/Berlin %812 %2005, 19:30
zeker in de showcase geweldig spel

FantasTies
%Europe/Berlin %082 %2005, 01:58
Ik vind het ook showcase waard!
Ziet er goed uit, kon alleen geen muziek knop vinden meteen toen de muziek begon!

septunas
%Europe/Berlin %101 %2005, 02:25
chapeau!!
leuke, uitgewerkte karakters, goed ineen gezet(code, etc)

duurt wel erg lang, heb me laten doodgaan. en m'n email cadeau gegeven :)

Neon
%Europe/Berlin %530 %2005, 12:44
Verplaatst naar de showcase!
Ziet er erg verzorgd uit, goed werk heren! :)
Ook is het heel leuk om te zien, aan de hand van de schetsen, hoe bepaalde dingen zijn vormgegeven en ontstaan zijn. erg leuk.

Mitch
%Europe/Berlin %546 %2005, 13:06
Nice frisse stijl.

Zijn jullie nog problemen tegengekomen?
Ging de samenwerking goed?
En hoe lang hebben jullie er over gedaan?

Het ziet er echt afgewerkt uit :)
En dat zie je niet altijd bij webgames.

Stuf
%Europe/Berlin %595 %2005, 14:17
bruut hoor.. mn complimenten..

Lemoneko
%Europe/Berlin %729 %2005, 17:30
Cool, showcase :-)

Bedankt voor de complimenten! Dat maakt die vele uurtjes zwoegen weer meer dan waard.

Mitch: Eigenlijk ging alles heel erg soepel. We hebben vaker samen webgames gemaakt, en dat scheelt ontzettend veel. Vinz weet precies hoe hij z'n graphics moet aanleveren, daar is dus eigenlijk geen tijd aan verloren gegaan. Dit is trouwens pas de derde keer dat we iets in Flash hebben gemaakt, daarvoor was het altijd Shockwave. Het enige wat niet helemaal goed is gegaan is dat het veel zwaarder is geworden dan ik had gehoopt. We hadden eerst hele coole lopende bandjes, maar die bleken de boel te veel te vertragen. Zal ook wel komen doordat alles vectoren is, dat maakt het ook niet echt snel (maar wel weer heel flexibel qua animatie).

Het leukste vind ik de belachelijke hoeveelheid animatiedetail die erin is verwerkt. Schiet bijvoorbeeld een barrel kapot en let dan op Senior (het mannetje onderin, vormgegeven naar Paul Senior van American Chopper :-) ). Ook detail als de bouncende doosjes, de ogen van de bugs die - zelfs als ze kapot geschoten zijn - random knipperen, het detail in de 3 machines bovenin etc. Dit is ook de eerste game die we helemaal hebben kunnen 'polishen', ook na de deadline zijn er nog een hoop wijzigingen in aangebracht. Vincent - de eeuwige perfectionistische zeikerd - wil zelfs nog een aantal animaties toevoegen. :-)

Flashgirl
%Europe/Berlin %796 %2005, 19:06
Fantastisch! De animaties zijn super!!! Ik zou wel graag meer werk van jullie willen zien! Staan er meer animaties online van Vincent?

Het karakter doet me denken aan de illustraties die Arjan Westerdiep (http://www.drububu.com) maakt:

http://www.naarvoren.nl/artikel/extra/images/star_alpha.gif

Dauntless
%Europe/Berlin %806 %2005, 19:20
Super coole game! Zou je aub aub aub ook wat over de technische kant kunnen vertellen? :# . Collision detection met schuine rampen lijkt me toch niet al te simpel... Maar ik begrijp het wel als je dat liever geheim houdt ;).

Nog een leuke detail: schiet eens naar het hoofd van de inspecteur :D .

Lemoneko
%Europe/Berlin %000 %2005, 00:00
Ja hoor, share the knowledge etc. Technische interessante dingen:

* Levels zijn xml files. In Flash supersnel een leveleditor gemaakt door de platformpjes elk een eigen scriptje te geven die de x, y, angle, lengte etc. traced. Dus: platformpjes & barrels in Flash op de goeie plek slepen, appel-enter, copy/paste in een xml file en hoppa, weer een level klaar :-)

* Collision detection met schuine platforms: dit was het eerste wat ik gemaakt had, als dat niet zou werken zou het een beetje lastig worden namelijk... De code hiervoor komt rechtstreeks uit het boek Flash MX 2004 Game Design Demystified (hier wel bekend), het is de circle/line detection functie met een paar optimisations doorgevoerd. Elk platform is een line, elk object speelt voor circle. Die detection hoeft natuurlijk alleen te worden uitgevoerd als een object de state 'falling' heeft, en dan ook niet eens élke frame, maar om de frame. Dat scheelt weer kostbare processortijd. Zodra een opject geland is krijgt 'ie de state 'idle' of 'walking'. Dan moet gekeken worden of 'ie de minimale of maximale x van het platform overschrijdt, dan wordt 'ie weer 'falling'.

* Elke groep objecten (bugs, boxes, powerups, bullets) heeft z'n eigen manager object die de boel beheert. Op die manier is het makkelijk debuggen. Eén groot 'game' object beheert weer alle managers. Leuke daarvan is dat effecten zoals het schudden van het scherm supermakkelijk te doen is: alleen het 'game' object wat heen en weer schudden en alles schud mee. Dingen als inzoomen enzo waren ook gepland, maar hebben het niet gehaald. Wie weet in een update.

* Muziek bestaat uit korte loopjes. Ik had er nog een vraag over gepost in het AS forum, omdat met onSoundComplete() het niet lukt om ze soepel achter elkaar te laten spelen. De oplossing was om een interval te gebruiken, zit er soms nog een tikkie naast maar het is goed genoeg. Wat nog wel fout is, is dat soms alle kanalen bezet zijn en dan de muziek opeens stopt, om een interval later weer door te spelen. Ah well, next game... ;-)

* Secret: hou de V en de I ingedrukt als je op start klikt om de end-sequence te zien :-)

Flashgirl: meer werk van Vinz en mij staat op onze sites: www.vinzend.com / www.inslag.com (links naar twee vorige Flash games) / www.lemonshake.com (héle ouwe Shockwave games)

Dauntless: als je nog meer wilt weten: vraag maar raak.

Dauntless
%Europe/Berlin %032 %2005, 00:46
Dat boek is hier inderdaad goed gekend ;). Ik heb het zelf dus ook. Een tamelijk dom vraagje eigenlijk: Die circle / line detection dient vooral voor doorlopende lijnen... Hoe heb je het dan gedaan om hem op lijn_stukken_ te checken? Bedoel je dat met die optimalisatie?

Is het btw in AS 1.0 of 2.0? Ik kan me niet echt inbeelden dat dit alles in 1.0 is maar you never know ;).

En kan je ook wat vertellen over het AI van de Bugs ?

Lemoneko
%Europe/Berlin %045 %2005, 01:05
Ikkeeh... *kuch* ...ik kán niet eens fatsoenlijk AS 2.0... kom ik nog wel een keertje aan toe om dat te bestuderen... zag een topic staan in het AS forum... /shame

Die circle line detection formule in het boek checkt op lijnstukken. Er zat ook zo'n voorbeeld file op de cd, dat balletje dat op wat lijntjes rolde. Check: http://www.inslag.com/~files/ball_line.swf Dat is de basis waarvanuit de hele platform engine geschreven is :-)

Bug AI:

* Bugs hebben verschillende states. Idle, walking, pre-jump, jump, falling, post-jump, taunt, hit, eating, exploding... Animatie is state-afhankelijk. Vanuit elke state zijn er een aantal mogelijkheden om naar een andere state te gaan. Dat soort schema's uittekenen met allemaal pijltjes is een must om het overzichtelijk te houden.

* Af en toe wordt er random overgesprongen naar een andere state, bij state = 'idle' gaat dat ongeveer zo:

r = Math.random();
if ( r < 0.1 ) this.goJump( );
else if ( r < 0.3 ) this.goWalk( );
else if ( r < 0.5 ) this.goTaunt( );

* Links/rechts bepalen: als een bug helemaal links in het scherm zit heeft 'ie 0% kans om naar links te lopen/springen en 100% kans naar rechts. Helemaal rechts omgekeerd. In het midden is het 50/50. Op die manier zorg je ervoor dat de bugs niet aan de randen blijven kleven, en dat houdt de gameplay leuk.

* Bugs hebben een voorkeur van +30% om tegen een lopende band in te lopen, anders kwamen ze altijd heel snel onderin uit :-)

* Eéns in de 5 (ofzo) frames wordt gecheckt of de afstand tussen de bug en een (onaangetast!) doosje klein genoeg is, zo ja dan hopt 'ie erop. state = 'eating' :-)

States gebruik ik voor alle objecten, de zogenoemde 'Finite State Machine'. Supermakkelijk debuggen en animeren.

Dauntless
%Europe/Berlin %049 %2005, 01:11
In AS 1.0? "Wow" :D . En die tutorial ga ik nog verder schrijven hoor ;). Heb nu wat tijdstekort :).

Ik ga m'n boek nog eens vastnemen, want ik was onlangs ook aan het experimenteren met zoiets als dat swfje dat je online hebt gezet. Bug AI is ook best origneel :).

En ik raad je aan om AS 2.0 te leren, want dat maakt het debuggen NOG makkelijker ;). Bv als je een variabele naam verkeerd typt, zegt hij het je !:).

Echt een zeer coole game! Hoelang werk je eigelijk al met AS? Want als dit nog maar je 3de project is... :o !

Lemoneko
%Europe/Berlin %054 %2005, 01:18
Niet zo lang dus :-) Wel veel programmeer ervaring met andere talen (PHP, Lingo, Basic). Alleen veel specifieke Flash-dingen moet ik me echt nog eens in gaan verdiepen, ik heb het idee dat ik nog lang niet alles eruit haal wat erin zit (iemand enig idee hoe de debugger werkt? ;-) ).

Dauntless
%Europe/Berlin %066 %2005, 01:35
Dat is een groot raadsel :D. Ik weet er wel al een beetje van... Maar 'k zal je even PM'en omdat dat niet echt iets met de game te maken heeft en we moeten niet offtopic gaan ;).

Fatty Owl
%Europe/Berlin %070 %2006, 01:41
zo cool :D misschien moet je ook doen, dat als een doos al kapot is, het monstertje stopt met er op te bijten. anders moet je daar niet meer op letten :).

Ik wil trouwens met de dikke meneer spelen:p

Flashingback
%Europe/Berlin %632 %2006, 15:10
Hehe heele prestatie als je dat in as 1.0 gedaan hebt ik hoop dat er niet te veel gevloek aan te pas is gekomen :p.

o1-jasper
%Europe/Berlin %657 %2006, 15:47
Ik wil trouwens met de dikke meneer spelen

dat zal ik maar niet verkeerd opvatten:p

Jordy
%Europe/Berlin %855 %2006, 20:31
cool staat ook op flabber.nl ;)
http://www.flabber.nl/archief/014538.php

jannes meyns
%Europe/Berlin %904 %2006, 21:42
lekker tof verslavend spel ik was er een uur mee zoet mooie schetsen

Lemoneko
%Europe/Berlin %785 %2006, 18:50
Spel is té populair, de server van de klant houdt het niet.

Morgen als het goed is weer online, vanaf een andere server. :-)

Cowerd
%Europe/Berlin %789 %2006, 18:57
Dan moet je het maar niet op FF zetten:D
dan wordt ie super vaak bekeken:P

nee hoor:) super mooi showcase spul:D

Niek_M
%Europe/Berlin %597 %2006, 14:20
Super game, vet artwork en toffe animaties !

Zeker showcase waardig :)

Lemoneko
%Europe/Berlin %772 %2006, 18:32
Mooi, de game doet het weer. Er moest een extra server worden bijgeplaatst, omdat door de traffic op het spel de webshop van Demion niet meer bereikbaar was :-)

Je kan trouwens een PSP winnen door het spel te spelen en je emailadres achter te laten bij de highscores of de send-2-a-friend functie.

kH_
%Europe/Berlin %877 %2006, 21:03
Uhm, door de hoogste score te halen? Want dan zal ik je even wat vertellen, er kan erg gemakkelijk een valse score worden doorgegeven, dus als diegene met de hoogste prijs een PSP gaat winnen, schaf dan aub dit DIRECT af, want dat zal niet op een eerlijke manier gebeuren. Mocht je me niet geloven, dan ben ik graag bereid om dit te tonen (als ik in de gelegenheid wordt gesteld om dit ZONDER enige juridische gevolgen ff te doen). Dat is namelijk niet moeilijk.

En de zielige kl00th0mmels onder ons die toch op dit soort manieren prijzen willen winnen...GET A LIFE!!

Ik heb namelijk eens op deze manier zelf ondervonden dat 1 of andere duitser via valsspelen een DVD speler had gewonnen, terwijl ik een MP3 speler had gewonnen (met valsspelen) en deze niet heb geaccepteerd, maar heb aangegeven hoe eenvoudig het was om zo'n score door te sturen. En natuurlijk heeft die duitser gewoon zn prijs ontvangen (de hufter!).

Maarja, ik draaf weer door...misschien is dit weer zo'n spellegie waarbij op voorhand al bekend is of je de prijs al hebt gewonnen (geloof me, ik heb er al TEVEEL gezien ;))

Lemoneko
%Europe/Berlin %904 %2006, 21:42
Nee, er worden willekeurig winnaars getrokken uit de emailadressen, het is in ieder geval niet gelinkt aan de hoogste score. Maar voel je vrij om te proberen vals te spelen, naar mijn idee heb ik het redelijk goed beveiligd. :-)

septunas
%Europe/Berlin %907 %2006, 21:46
als dat geen vrijgeleide is, kH_ :D

post je iets als het je gelukt is?

Lemoneko
%Europe/Berlin %909 %2006, 21:50
Ach, in het ergste geval lukt het en kan ik de boel aanpassen. Weet ik meteen hoe ik het voortaan *niet* moet doen :-)

Voor de duidelijkheid: de winnaars worden *handmatig* getrokken uit de lijst met adressen, dat gebeurt dus niet in de game zelf. Valsspelen heeft dus alleen zin als je een fake highscore wilt neerzetten.

kH_
%Europe/Berlin %923 %2006, 22:09
Ok, ik heb ff een flash-movie gemaakt, waarin ik zelf een naam, email-adres en score kan opgeven. Als ik druk op "Send score" in mn filmpie, dan moet het als het goed is lukken ;)

Mag ik het uitproberen??

Qua beveiliging: die stelt echt niets voor hoor (sorry dat ik het zeg). Eenvoudige XOR encryptie is verrekte simpel, maarja...ik kan ook gewoon jouw code gebruiken om de boel op te sturen ;)

Brw...dat hsc.c-hsc.r verhaalt is wel lachen, maar geen beveiliging. Op die manier zorg je er alleen voor, dat het ontzettend domme runderen niet lukt (53180 is zeker de 'cheat' flag ;))

Die hsc.c-hsc.r zal namelijk ALTIJD de score opleveren, maakt niet uit hoe vaak de onEnterFrame aangeroepen wordt. Maar ik vond het wel grappig hoor ;)

Wel jammer....ik had graag een PSP gewild :(

kH_
%Europe/Berlin %926 %2006, 22:13
Ok....done....score met 1337 erin is altijd leuk :D

Ik zal je ff mailen met tips hoe je dit kunt verbeteren.

Lemoneko
%Europe/Berlin %927 %2006, 22:15
...

OK, jij wint. :)

Gelukkig is het niet gebaseerd op de highscore zullen we maar zeggen. Goed bezig! Zou je ff contact met me kunnen opnemen via mail of msn?

septunas
%Europe/Berlin %932 %2006, 22:22
LOL.
op zoek naar 'n job kH_ ? :D

kH_
%Europe/Berlin %932 %2006, 22:23
Haha, kan ik daarmee een PSP winnen door iets in 5 minuten te doen? ;)

Lemoneko
%Europe/Berlin %933 %2006, 22:24
Ow, die c-r moet ook de score opleveren. Dat is tegen grapjassen die met een proggie als winhack in het geheugen naar de score gaan zoeken en 'em daar aanpassen. In dit geval zouden ze alleen de display score kunnen aanpassen omdat de 'echte' score elk frame random fluctueert.

Ik ben er ook een beetje verbaasd over hoe makkelijk swf files te decompilen zijn, Ik werk nog niet zo lang met Flash, en had het zelf (voor vandaag dus) nog nooit geprobeerd.

kH_
%Europe/Berlin %950 %2006, 22:49
Onwetendheid is nu juist de grootste zwakheid van mensen. Als je gewoon weet hoe dit soort dingetjes gedaan worden kun je het ook tegengaan, anders niet. Zo zijn bijvoorbeeld alle anti-virus makers zelf beroemde virus ontwikkelaars geweest om maar een voorbeeld te noemen.

kH_
%Europe/Berlin %951 %2006, 22:49
Ow, die c-r moet ook de score opleveren. Dat is tegen grapjassen die met een proggie als winhack in het geheugen naar de score gaan zoeken en 'em daar aanpassen.
Dat had ik ook wel door ja, dus dat was op zich ook wel goed, maar ja...niet goed genoeg dus :D

kH_
%Europe/Berlin %953 %2006, 22:53
Trouwens, als ik nou eens 1000000 maal een score doorstuur met mijn email-adres, volgens mij is de kans dan wel erg groot, dat ik win of niet? :P

Lemoneko
%Europe/Berlin %955 %2006, 22:55
Heh, het trekken van een winnaar heb ik niks mee te maken, dat gebeurt ergens in het CMS van de site. Ik acht die mensen capabel genoeg om een 'distinct' in de query te gooien :-)

Thanks again voor je mail trouwens, erg goed om te weten!

kH_
%Europe/Berlin %957 %2006, 22:58
hehe, ik ga er verder ook niet mee prutsen hoor. Het spel is daar veel te mooi voor en moet gewoon gespeeld worden op een eerlijke manier :D

Ga zo door met die spel ontwikkeling btw, want dit spel is ook gewoon super te noemen!

Lemoneko
%Europe/Berlin %959 %2006, 23:02
Thanks! Ik zal nog wel eens een postje openen over security, interessant onderwerp waar nog genoeg te leren valt - zo blijkt :-)

muvo24
%Europe/Berlin %571 %2006, 13:42
het spel doet het nog steeds niet

Lemoneko
%Europe/Berlin %611 %2006, 14:40
Vreemd, hier wel. Klik hier (http://www.inslag.com/robobug/robobug.php) eens?

muvo24
%Europe/Berlin %555 %2006, 13:20
nu doet hij het wel
mijn router blokeerde denk ik iets

kH_
%Europe/Berlin %917 %2006, 22:01
En de beveiliging is ook aangepast zie ik [:o)]

Dj Omith
%Europe/Berlin %724 %2006, 17:23
Superleuk spel, echt mooi gemaakt.

Toppie :)

maico
%Europe/Berlin %993 %2006, 23:50
Prachtig!

Inofaith
%Europe/Berlin %610 %2006, 14:39
ja vet spel, netjes gemaakt, muziek ook goed uitgekozen. smooth als geheel

vdleije
%Europe/Berlin %662 %2006, 15:54
Heb je de geluiden van een sega computerspel? Met zo'n groen manetje

Mark0402
%Europe/Berlin %504 %2006, 12:07
Dit is echt geweldig.. Uren speelplezier levert dit op.. Echt super..
Mijn complimenten.. Details, spelplezier, actie alles gewoon helemaal goed...

Inofaith
%Europe/Berlin %533 %2006, 12:48
Wie heeft de muziek gemaakt?

Lemoneko
%Europe/Berlin %538 %2006, 12:55
Thanks voor de complimenten!

vdleije: een paar sound effects zijn volgens mij inderdaad geript van het spel 'Vectorman' van de Megadrive :-)

Inofaith: muziek hebben we zelf gemaakt in Garageband.