Vid vilken punkt behövs en motor?

Permalänk
Medlem

Vid vilken punkt behövs en motor?

Är i inlärningsprocessen fortfarande i programmering. Dock verkar jag kommit så långt att mitt spel jag jobbar på inte orkar med alla händelser i spelet.
Det blir hyffsat segt och hackigt vissa stunder.

Då undrar jag, när går gränsen till att man faktiskt behöver en "graphic engine" i spelet? Om det finns någon sådan.
Den logik och fysik jag programmerat i spelet räcker ju inte ens i närheten för att kallas en motor.

Tack. Ursäkta den luddiga frågan.

Permalänk
Medlem

En grafikmotor har du väl redan, en egenprogrammerad. Och att byta ut den mot någon annan lär du ju dig inte speciellt mycket utav.
Försök ändra det som går långsamt. Tänk ut andra sätt du kan göra koden/tankesättet effektivare.
Och även om du använder andra grafik och fysikmotorer så kan du ju programmera knasigt så det går långsamt.
Du kan ju även kolla på sourcekoder från andra spel för att få inspiration och tips.

Men i *min* lathet just nu skulle jag ha använt alltt som underlättade och snabbade upp. Men jag har varit där jag gjorde allt från egna rasteriserare, kollissionstester (primitiva box sov) osv när jag var casual gaming spelutvecklare.

Permalänk
Medlem
Skrivet av iXam:

En grafikmotor har du väl redan, en egenprogrammerad. Och att byta ut den mot någon annan lär du ju dig inte speciellt mycket utav.
Försök ändra det som går långsamt. Tänk ut andra sätt du kan göra koden/tankesättet effektivare.
Och även om du använder andra grafik och fysikmotorer så kan du ju programmera knasigt så det går långsamt.
Du kan ju även kolla på sourcekoder från andra spel för att få inspiration och tips.

Men i *min* lathet just nu skulle jag ha använt alltt som underlättade och snabbade upp. Men jag har varit där jag gjorde allt från egna rasteriserare, kollissionstester (primitiva box sov) osv när jag var casual gaming spelutvecklare.

Okej, tack för förklaringen! För har sett många som importerat in openSource motorer och tänkte det var så man gjorde.

Så jag får helt enkelt tugga vidare i programmet så utvecklas den med tiden?

Permalänk
Medlem

Om du inte redan använder någon slags accelerationsstruktur så är det nog dags, exempelvis en uniform grid. I princip pular du in allt i en grid istället för att bara ange positioner i en 2d/3d-rymd. Med gridden kan du sedan ladda in/ut eller uppdatera grejer beroende på vissa villkor, exempelvis objekt inom en viss radie/rektangel runt spelaren (som då befinner sig i närliggande celler). Den kan också användas för kollisionsdetektering där man bara kontrollerar objekt runt spelaren (återigen i närliggande celler) eller object som befinner sig runt andra rörliga objekt.

Permalänk

En enkel sak kan vara att kolla efter ställen där du kanske kör loopar för saker som kanske skulle kunna ske på annat vis?

En loop i en loop gör exempelvis snuskiga saker för prestandan.

Visa signatur

Citera, tack!
Har du läst tråden om strandhögtalare och andra musiklådor?

Permalänk
Medlem
Skrivet av blomqvist:

En enkel sak kan vara att kolla efter ställen där du kanske kör loopar för saker som kanske skulle kunna ske på annat vis?

En loop i en loop gör exempelvis snuskiga saker för prestandan.

Looparna är korrekt skrivna, undersökte nu.

Dock har jag upptäckt en bugg som är lite knepig. Jag har deklarerat 3 olika lägen i spelet med switch.
Playing, options, menu. Jag har knappar i meny för att ta mig till spelläget/Options.

Kort om spelet: Du är en bil som ska akta sig för springande gubbar. Vid kollision så avslutas spelet.
MEN.. när jag går in i menu (startar spelet) och väntar cirkus 2 min. Så avslutas spelet med dialogrutan om att jag förlorat. Alltså så startar spelet i menu läget. Att sätta ut en slags Paus funktion i både menu och options skulle väll lösa det hela antar jag? Men hur?

Permalänk
Medlem
Skrivet av Progrmor:

Looparna är korrekt skrivna, undersökte nu.

Dock har jag upptäckt en bugg som är lite knepig. Jag har deklarerat 3 olika lägen i spelet med switch.
Playing, options, menu. Jag har knappar i meny för att ta mig till spelläget/Options.

Kort om spelet: Du är en bil som ska akta sig för springande gubbar. Vid kollision så avslutas spelet.
MEN.. när jag går in i menu (startar spelet) och väntar cirkus 2 min. Så avslutas spelet med dialogrutan om att jag förlorat. Alltså så startar spelet i menu läget. Att sätta ut en slags Paus funktion i både menu och options skulle väll lösa det hela antar jag? Men hur?

nevermind! Löste det med:

if (buttonPlay.isClicked)
{
randomMove();
}

Permalänk
Medlem

Det är ju intressant att veta vilken API/Programmeringsspråk(antar c#) du använder just nu för att visa grafiken osv. Känns som att det kan vara något skumt på gång.
Exempel, jag antar att du inte använder den inbyggda timern i C# för att uppdatera spelet exempelvis (lite tunt med info)?

Om vi snackar 2D så ska det inte behövas någon motor atm liksom. Vilken funktion använder du för att visa bilder t.ex.? Det finns ju t.om. bindings till C# i DirectX, att bara visa en bild i 2d-bild med hjälp av Direct3D kan ju vara lärorikt (och msdn har bra tutorials, en sida kod ungefär). Gör du det så lär det inte hacka någonstans.

Sedan att göra ett sånt där Grid är såklart bra men kanske lite överkurs atm.

Du behöver en motor ungefär när du vill ha 3D med animationer/shaders/skuggor/particles och Fysik med ragdolls. Och då går du ju över till Unity.
Ta Torchlight I/II t.ex., de använder inte ens en Fysikmotor. Men det är ju ändå ett kvalitativt spel (Visserligen gjort i C++, men det hade gått i C# om man multitrådar lite).

Permalänk
Medlem

Kör du trådat? Börja där i annat fall.

Permalänk
Medlem

Posta gärna koden så kan vi säkert hitta lite smått och gott att optimera.
En spelmotor kan göra det enklare att inte "göra bort sig". Men visst kan man fortfarande göra saker som är onödigt resurskrävande ändå. Det finns massor att optimera och det är en stor del av att göra spelet färdigt.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?