Een inleiding tot de kogelfysica-bibliotheek

0

Fysica is niet alleen belangrijk in de wereld, maar ook in games. Games zijn verschillende werelden waarin ontwikkelaars ofwel meer realistische systemen van game physics willen emuleren, zoals in Grand Theft Auto V. Of ze willen het allemaal uit het raam gooien en een wild en gek gebrek aan realistische physics creëren.

Als u een spelwereld zou creëren, wat zou u dan kiezen? Het gekke, over-the-top systeem, of eentje die lijkt op onze eigen wereld? Nou, als je van plan bent je te verdiepen in game physics, dan is de Bullet physics engine een geweldige plek om een leuke reis in game ontwikkeling te beginnen.

Inhoudsopgave:
Stick Figures, de jaren 2000 en Bullet Physics
Voor mij is het vele jaren geleden dat ik een gek flash spelletje meemaakte dat de nadruk legde op fysica met behulp van stokfiguren. Sommige video’s bevatten een over-the-top battle royale met stokfiguren, compleet met Matrix-achtige bewegingen, Kung Fu, straatgevechten, waardoor het leek alsof het rechtstreeks uit een actiefilm uit het begin van de jaren 2000 kwam.

De physics waren soepel, snel en bevredigend. Voor mij betekende dit een nieuwe beweging in de fysica van games. Het maakte me ook bewust van het belang van fysica in videogames. Het was iets dat ik over het hoofd zag en als vanzelfsprekend beschouwde. Ik realiseerde me niet hoe gedetailleerd en genuanceerd ze waren, zelfs in eenvoudige stokfiguren.

Fast forward naar het heden, waar gamers nog meer betrokken raken bij het ontwerpen van indiegames, met een unieke visie en passie om hun eigen droomproject te creëren. Iets wat altijd blijft hangen? Fysica, natuurlijk.

Er zijn veel verschillende soorten physics engines, maar ik wil je voorstellen aan Bullet Physics Library. Dit is een simplistische, gemakkelijk te gebruiken physics engine die de gebruiker kennis laat maken met game physics. Een van de eerste beelden die de engine laat zien is een gigantische toren van blokken die wordt neergehaald door een kanonskogel.

Het is duidelijk niet in hetzelfde pantheon van beroemde game engines als Unreal en Unity, maar het dient een veel fundamentelere en belangrijkere les in botsingsdetectie. Ook, hoe hebben ze de moordende naam ‘Bullet’ weten te bemachtigen. Dat is een zoete ‘get’ als ik er ooit een heb gezien. Maar ik dwaal af.

Botsing detectie
buggy spellen

Ik herinner me dat ik altijd hoorde over ‘collision detection’ in games, vooral in games zoals die in de Fight Night of UFC franchises waar twee lichamen constant heftig tegen elkaar aan stoten. Eigenlijk is botsingsdetectie het probleem van twee objecten in een spel die elkaar kruisen.

Daarom hoor je er zoveel over in termen van buggy games. 2D-spellen hebben het duidelijk gemakkelijker als het gaat om het opsporen van problemen met botsingsdetectie, maar met de komst van populairdere 3D-spellen werd het genuanceerder. Gelukkig simuleren games de fysica niet EXACT met dezelfde factor als het dagelijks leven, dus hebben ze wat speelruimte in de ontwikkeling.

Basisprincipes van Bullet
Bullet is oorspronkelijk ontwikkeld door Erwin Coumans, een technische Oscar winnaar (voor zijn werk in Bullet), en nu een grote ontwikkelaar voor Google. Bullet wordt voortdurend bijgewerkt, dus het is een verademing voor degenen onder ons die fervente gebruikers zijn van verschillende engines. Het is volledig gratis, met de zlib-licentie.

De zlib-licentie is geweldig en wordt ook gebruikt bij andere geweldige engines zoals Box2D. Het is een open-source engine en wordt momenteel gehost op Github.

De officiële website
Ik bekeek hun website en werd onmiddellijk gebombardeerd (op de beste manier) met een onderzoeksproject dat ze momenteel uitvoeren en dat te maken heeft met de fysica van een robotarm die dingen probeert te verplaatsen en op te pakken. Doet het u denken aan klauwmachines? Daar dacht ik meteen aan.

Maar deze heeft geen frustratie en laat je niet denken dat je speelgoed kunt winnen. Oké, genoeg over klauwmachines!

Het experiment met de robotarm, TossingBot genaamd, ontwikkeld door Andy Zeng, Shuran Song, Johnny Lee, Alberto Rodriguez en Thomas Funkhouser, heeft tot doel (zie je wat ik daar deed?) om te zien of een robotarm voorwerpen kan oppakken en nauwkeurig in specifieke dozen kan gooien.

Hoewel eenvoudig van aard, is het een geweldig onderzoek naar diepere fysica en hoe die van toepassing is op een simpel ding als een robotarm die taken uitvoert. Ik hou van deze mix van een game engine en legitieme wetenschappelijke studies; het lijkt meer legitimiteit te geven aan gaming. Misschien nemen mensen mijn PC game verslaving serieuzer: Ik heb geen probleem, het is voor wetenschappelijk onderzoek!

Hun website staat vol met onderzoeksprojecten, publicaties en experimenten met de Bullet engine. Het lijkt bijna op de website van NASA met alle wetenschappelijke info die er op staat.

Dus nu u weet waartoe de engine in staat is (en de indrukwekkende opleiding van zijn ontwikkelaars), laten we een meer gedetailleerde blik werpen op de beste manieren om de engine zelf te gebruiken: tijd voor tutorials!

Bullet Engine tutorials
Het natuurkunde forum
De officiële gemeenschap van Bullet Engine

Dit forum is eigenlijk de officiële gemeenschap met betrekking tot de Bullet engine. Net als de rest van de site is het gevuld met wetenschappelijke theorieën, kennis en informatie. Hebt u vragen over de fysica van de engine? Ga naar het forum en vraag om een antwoord van een van de vele gebruikers.

Er zijn bijna 10.000 gebruikers op het forum, dus er is geen kans dat je geen antwoord krijgt als je problemen hebt met de engine, of met natuurkunde in het algemeen. Nu ik, ik ben geen natuurkunde goeroe. In feite, zou ik zeggen dat natuurkunde en ik niet on speaking terms zijn, om het zacht uit te drukken.

Maar ik heb vertrouwen in jullie, mede-gamers, dat jullie en physics een vruchtbaardere relatie hebben en zich kunnen bezighouden met sommige gebruikers online.

Het populairste subforum in de gemeenschap is natuurlijk het algemene Bullet Physics Support forum. Gelukkig hebben de moderators van de site meerdere stickie-threads toegevoegd waar uw vraag mogelijk is gesteld en beantwoord door de geschoolde massa Bullet-gebruikers.

Moderator Benelot heeft zelfs een zeer gedetailleerd bericht geplaatst waarin hij nieuwe gebruikers aanbeveelt eerst het forum te raadplegen voor hun vragen.

Ik hou van gemeenschappen zoals forums. Het brengt u in contact met gelijken, en soms zelfs met de eigenlijke ontwikkelaars van de engine, aka de beste bron van kennis. Wat is een betere manier om antwoorden op je vragen te vinden dan praten met het personeel dat de engine laat draaien? Dit is een no-brainer van een tutorial.

Ray Wenderlich
bullet engine tutorial

Ray Wenderlich heeft een coole kleine tech website ontwikkeld met duizenden tutorials voor verschillende engines en programma’s die het hele gamma bestrijken. Hieronder valt ook de Bullet engine. Hij begint de tutorial specifiek met de uitleg dat hij je helpt iOS-spellen te ontwikkelen met de Bullet engine. Daarna breekt hij het af:

Tegen de tijd dat je klaar bent, heb je geleerd hoe je:

Bullet physics engine broncode downloadt en bouwt.
Een Xcode-project opzet om de Bullet fysica-bibliotheken te gebruiken.
Een fysicasimulatie opzetten, fysieke objecten maken en ze laten bewegen en roteren.
Botsingen detecteren, botsingsinformatie krijgen en objecten vernietigen.
En dat is heel kort. Ray gaat HARD in deze tutorial. Er wordt niets achtergehouden. U zult bijna alles leren wat u moet weten over de Bullet engine.

Het is een duidelijke, beknopte stap voor stap handleiding. Niet alleen dat, maar het is lang. Wees gewaarschuwd, dit is geen vluchtige lectuur. Hoewel de kwaliteit geweldig is, moet u bereid zijn deze pagina te bookmarken! Je zult het niet in één keer doorlezen. Ik bedoel, je zou het kunnen… maar dan zou ik willen weten of je een robot bent of niet, jeetje.

Ray begint met de gebruiker alles te laten zien, van het installatieproces tot diepgaande en geavanceerde fysicatechnieken met de engine.

YouTube ‘thecplusguy’

Jongens, ik ben een van de grootste YouTube-fans, dus deze lijst is natuurlijk niet compleet zonder een YouTube-kanaal (of twee). Dit kanaal is een geweldige vondst; thecplusguy heeft zijn kanaal gewijd aan coderen, het gebruik van engines en computersoftware. En dankzij hem zul je ongetwijfeld veel leren over de Bullet engine. In zijn eerste video, ‘Bullet physics tutorial 0 – Examples and Installation’, doet hij precies dat.

De video duurt 16:35 en laat u precies zien wat u moet doen, vanaf de installatie tot aan de rest. En dit is nog maar het begin. Hij heeft meerdere tutorial video’s over de Bullet engine, de tweede, de eerste tutorial, is een kolossale uur durende reis in het bloed en de ingewanden van de engine.

Hij heeft ongeveer 5 of 6 video’s over de bullet engine, elk gevuld met sappige info en uren materiaal. Je kunt niet verkeerd gaan met thecplusguy.

opengl-tutorial
opengl-tutorial
Deze tutorial introduceert de gebruiker in opengl met als voorbeeld de Bullet engine. Net als de andere tutorial-pagina’s is deze zo on point en de beste manier om de grondbeginselen van de engine te leren. De auteur gebruikt de amusante afbeelding van een apenkop om 3D meshing te laten zien.

Er wordt ook gesproken over ray casting, waarbij je een 3D perspectief creëert op een 2D kaart. Denk aan het originele Wolfenstein 3D, waar de speler zich beweegt op een 2D kaart met 3D kenmerken, namelijk het neerhalen van Nazi’s en het zoeken naar geheime doorgangen.

Wat ik leuk vind aan deze tutorial is hoe hij Bullet als voorbeeld gebruikt, maar je ook kennis laat maken met verschillende physics engines in de game ontwikkelingssfeer.

De Kent handleiding
bullet physics handleiding

Check dit: deze PDF handleiding is geschreven en ontwikkeld door Kent State University, gepubliceerd in 2012 door de maker zelf, Erwin Coumans. Wat is een betere manier om de ins en outs van de bullet engine te leren dan van de maestro zelf? Niet alleen dat, maar het wordt gesponsord door een vrij beroemde universiteit voor haar informatica-programma.

Niet alleen dat, maar het is volledig verteerbaar; het is ongeveer slechts 45 pagina’s, waardoor het een beetje gemakkelijker te lezen is dan de meer diepgaande tutorials dan die hierboven. Ik zou zeggen dat dit de beste plaats is om te beginnen, samen met de levendige gemeenschap.

Voor- en nadelen van de Bullet Engine
Voordelen:

Gratis en open-sourced
Constant contact met de gemeenschap en ontwikkelaars
Goede ray casting
Geweldige physics
Goede documentatie en tutorials
Nadelen:

Kan moeilijk zijn voor gebruikers die niet bekend zijn met de fijne kneepjes van fysica.
Conclusie?
Jongens, ik moet zeggen dat ik echt onder de indruk ben van de Bullet engine. Ten eerste heb ik nog nooit zulke gedetailleerde tutorials over een engine gezien. Bovendien is de lijst met nadelen zo miniem dat het u zou moeten aanmoedigen om Bullet engine nu te downloaden. Kom op, nu meteen!

Bullet engine geeft u misschien niet de fysica zoals de Frostbite engine, waar u vecht met een tegenmacht en hun hoofdkwartier opblaast met realistische vernietiging, maar wat belangrijker is, het geeft u de grondbeginselen van de fysica in het spel en in het algemeen. In mijn geval is fysica niet mijn sterkste kant, maar ik weet dat we een aantal serieuze wetenschappelijke geesten hebben in de gemeenschap.

ik geloof dat de Bullet engine perfect aan uw behoeften zal voldoen. De pasvorm die u zult hebben met de Bullet engine is comfortabel en verstandig.

Waar wacht u nog op? Zoals ik al eerder zei, het is gratis, gratis, gratis. U hebt echt niets te verliezen. Dus begin met leren!

LEAVE A REPLY

Please enter your comment!
Please enter your name here