Tips och tricks inför Kodsnacks Tvåveckorssylt
Detta är en liten snabbguide med tips och tricks när du utvecklar ditt spel. Jag har tidigare lekt lite med LÖVE och Lua och tänkte därför dela med mig lite av mina erfarenheter (främst bibliotek som kan underlätta utvecklandet).
Table of Contents
Här är en länk till mitt nuvarande spel som jag tänkt återuppliva och vidareutveckla under spelsylten: love2d-platformer
Jag själv kommer från JavaScript-världen och är van att installera saker via npm. Lua har något liknande vid namn LuaRocks men jag har själv inte använt det.
Oftast står det i README
:n för biblioteket hur det ska installeras. Jag brukar oftast skapa en mapp i rooten av projeket vid namn lib
. Där brukar jag sen antingen direkt kopiera lua
-filen. Om inte det duger så brukar jag använda mig av Git Submodules.
En tl;dr av Submodules, jag vill installera paketet https://github.com/fake/paket
till min mapp lib
:
git submodule add https://github.com/fake/paket/ lib/
Nu ligger paketet i mappen lib
under namnet paket
. Du kan då importera paketet genom följade i din main.lua
:
local paket = require('lib.paket')
Notera: paketet i fråga kan exportera andra moduler, då får själv kolla pathen du ska ange i
require(...)
!
Ni alla har nog sätt liknande i andra ämnen, en "awesome-lista". Här hittar man det mesta, om inte mina förslag duger, titta här!
Generalla bibliotek som underlättar utvecklande! (Det verkar som att allt rxi gör är fantastiskt!)
- Lovebird - Browser-baserad debugkonsol.
- Lume - massvis med små hjälpfunktioner som underlättar spelutveckling.
- Lurker - "hotswap":a Lua-filer när dom sparas. Behöver Lume för att fungera!
- hump - Hjälpklasser för spelutveckling, tänk
vector
,timer
,camera
med mera. Jag har själv använthump.vector
ochhump.timer
.
Bibliotek för att lägga till fysik i ditt spel, tänk er kollisionshantering.
- bump.lua - Kollisionsbibliotek för AABB (axis-aligned bounding box), delvis endast för rektanglar! Föredra detta om du endast jobbar med just rektanglar.
- Hadron Collider - Kollisionbibliotek för punkter, cirklar och polygoner. Komplexare än bump.lua.
- love.physics - Medflöljer i LÖVE, bindings till Box2D.
Verktyg som hjälper dig att skapa banor till ditt spel
- Tiled - Program utanför spelet som hjälper dig att skapa så kallade Tilemaps, banor indelade i kvadrater. Perfekt för att snabbt kunna iterera.
- STI - Bibliotek för att skapa banor i LÖVE utfrån exporter ifrån Tiled.
- scrale.lua - Litet bibliotek för att hantera skalning av pixelart till olika skärmar.
Bibliotek som får dig att slösa tid på att skriva kod istället för att göra spel, men vill man lära sig om ECS, som kanske främst användes i större spel skriva i typade språk kan det vara roligt...! Jag har själv använt HooECS i mitt projekt.
Biblioteken skiljer sig lite, men konceptet ECS är desamma!