Nytt litet spelprojekt, samt hjälp med grafik

Permalänk
Medlem

Nytt litet spelprojekt, samt hjälp med grafik

Efter att pefektionerat (!) min bollrörelse som jag visade upp förut, tänkte jag använda det i något litet spel, men jag kom tyvärr inte på någon bra ide, eller lättare sagt, ingen idé alls.

Så jag slopade bollrörelsen, och började ett pong-spel istället. Så orginellt. Spelet är dock i 3d*, och man ser spelplanen ur första perspektiv, med "paddeln" framför sig. Detta är ju inte heller någon ny idé, men jag ville bara bevisa för mig själv att jag kunde få till det.

*) Spelet är egentligen, till skillnad från shockwave-versionen som alla säkert har spelat, helt i 2d. Bollen som ser ut att åka in i skärmen är egentligen bara en 2d-sprite som minskar i storlek.
Lika så är bollrörelsen skapad av två andra, kombinerade bollrörelser.

Om sanningen ska fram är jag riktigt stolt över "motorn". Dock sker det många onödiga beräkningar i bakgrunden, och mycket utöver det måste oprimeras, så för vissa kan spelet vara lite slött.

Spelet i sig är långt ifrån färdigt, bara en boll som studsar mot en vägg, som man måste se till att hålla inne i tunneln. En _enkel_ poängräkning finns, och någon grafik är ännu inte inlagd.
Det irriterande studsljudet ska naturligtvis också bytas ut.

Jag önskar att någon skulle kunna hjälpa mig på traven, genom att rita grafiken till spelet, eftersom det inte är min starka sida. En tunnel, en paddel och en boll är vad som krävs.
Det vore även roligt om man hade flera olika grafikuppsättningar, så att man i spelet kunde välja mellan olika themes.
Något jag gärna skulle villja se, som dock absolut inte är nödvändigt, är en tunnel som ser ut att vara gjord av glas, eller något annat skinande ämne, då jag gärna skulle villja prova att byta ut de existerande "skuggorna" mot någon typ av reflektion.

Spelet finns att hämta här:
http://w1.696.telia.com/~u69603941/pong_sim3d.exe

Posta gärna era poäng. 42 är mitt rekord.

Det som jag ska fixa först är lite mer advancerad bollrörelse. Bollen ska studsa olika beroende på var på paddeln den träffar, samt att man ska kunna skruva till den.
Om allt går väl kommer jag även att fixa multiplayerstöd.

Visa signatur
Permalänk
Medlem

Jag har en jättebra idé! Bort med studsljudet.

Hm... Nae, det passade faktiskt. Men det var lite svårt att se var bollen skulle träffa på paddeln, samt att det såg ut som om bollen skruvades hela tiden (det var väl inte implenterat ännu?).

Allt går väl skaru se, och då får du fixa in ett 6-player pong, där varje spelare har var sin sida.

Poäng: 23, första försöket.

Permalänk
Medlem

Studsljudet är verkligen ingen höjdare, men det är bara temporärt.

Angående skruvningen, det kan kanske se ut så p.g.a. perspektivet. Jag kollade med flera stycken, som, inklusive mig själv, tycker att det ser "riktigt" ut.

Om flera håller med, så ska jag försöka modifiera det, men jag vet inte riktigt hur, eftersom matematiken säger att det är rätt.

Visa signatur
Permalänk
Medlem

Påminner en del om curveball vilket e jäkligt kul :).

Visa signatur

hmmmmmmmmmmmmm........

Permalänk
Medlem

Vad är det skrivet i för språk? Var väldigt häftigt

Visa signatur

ERx -> Alltid Trött IWill KK400-RS | Athlon Xp 2000+ | 256mb ddr | 48x cdrw | Samsung dvd | Nec ND-1300A DVD+-RW | GF4Mx440 128mb | Wd 80GB + Ibm/Hitachi 120Gb | Tvkort
"Fascism är den enda ideologin som fungerar" - Koffe

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av TEK
Påminner en del om curveball vilket e jäkligt kul :).

Japp, men som sagt, Curveball är i 3d, det fega sättet.

Citat:

Ursprungligen inskrivet av ERx
Vad är det skrivet i för språk? Var väldigt häftigt

Tackar. Skrivet i Delphi.

Om jag bara kunde få tag på snyggare grafik...

Visa signatur
Permalänk
Medlem
Citat:

Ursprungligen inskrivet av s.c.s.i.
Japp, men som sagt, Curveball är i 3d, det fega sättet.

Jojo, va inget illa menat.
Tyckte bara att det verka lovande!

Visa signatur

hmmmmmmmmmmmmm........

Permalänk
Medlem

s.c.s.i: Hur har du gjort matten? Alltså hur räknas koordinaterna etc. ut?

Visa signatur

ERx -> Alltid Trött IWill KK400-RS | Athlon Xp 2000+ | 256mb ddr | 48x cdrw | Samsung dvd | Nec ND-1300A DVD+-RW | GF4Mx440 128mb | Wd 80GB + Ibm/Hitachi 120Gb | Tvkort
"Fascism är den enda ideologin som fungerar" - Koffe

Permalänk

hur stora ska de olika bilderna vara samt vilket format vill du ha dem i, max fil storlek?

Permalänk
Medlem

46 fps hade jag. Jag tror att anledningen till att det ser ut lite som att den skruvas är att det är rätt långt mellan den hitre och bortre sidan. Men det avståndet kanske också är matematiskt korrekt?

Trevligt spel hursomhelst, dessvärre kan jag inte hjälpa till med den grafiska biten.

Visa signatur

101010
"In Soviet Russia, spam posts you!"
Yxx, 60 undead priest <Oops> Azjol-Nerub EU-PvE. Men bara tills Oblivion. :)

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av ERx
s.c.s.i: Hur har du gjort matten? Alltså hur räknas koordinaterna etc. ut?

Ska skriva en liten sammanfattning senare.

Citat:

Ursprungligen inskrivet av longshanks
hur stora ska de olika bilderna vara samt vilket format vill du ha dem i, max fil storlek?

Allt är variabel-styrt, så storlekarna spelar ingen roll. Inte heller formatet eller filstorleken. Bara allt håller vettiga proportioner.

Raistlin: Avståndet mellan den "hitre" och "bortre" sidan är helt en smaksak. Jag gjorde avståndet rätt långt för att jag ville ha en känsla av en tunnel, och inte ett kvadratiskt rum, typ.

Visa signatur
Permalänk

hur vill du ha grafiken då?, ska man programmera det i delphi också eller funkar det med typ 3ds max, maya eller liknande?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Rockefeller
hur vill du ha grafiken då?, ska man programmera det i delphi också eller funkar det med typ 3ds max, maya eller liknande?

Som bitmappar bara. Vanliga 2d-renderingar.

Visa signatur
Permalänk
Medlem

fick 33

Mycket fint spel. Kan du inte göra en "stänga av ljudet knapp"

Visa signatur

Jag hatar att vara förkyld!

Permalänk
Medlem

Varför har du inte gjort det i 3d e.g.?

Visa signatur

I just love the fact that there is a global integer variable named 'i'. Just think, you will never need to declare your loop variable again!
To avoid collisions where a loop that uses 'i' calls another function that loops with 'i', be sure to stack 'i' and restore it when your function exits.

Permalänk
Medlem

85fps och 22poäng
Ser ju bra ut förutom det som redan är nämnt, att det ser ut som att bollen skruvas och det fina ljudet

Visa signatur

AMD Ryzen 7 5800X3D | ASUS ROG Strix X570-F Gaming | ASUS 3080 TUF | 32GB DDR4 3200MHz | Corsair HX1500i

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av s.c.s.i.
Avståndet mellan den "hitre" och "bortre" sidan är helt en smaksak. Jag gjorde avståndet rätt långt för att jag ville ha en känsla av en tunnel, och inte ett kvadratiskt rum, typ.

Är väl bättre att göra avståndet längre "rent fysiskt" än att fulaknepa till det med perspektivet?

Annars var det riktigt ballt. Kan gärna göra några texturer om du gör en version där man kan lägga in egna väggar (vill testa själv först, så jag inte skickar iväg nåt som ser skräpigt ut)

Visa signatur
Permalänk
Medlem

Skulle bli ett härligt pingisspel av det

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Myris
Varför har du inte gjort det i 3d e.g.?

Det vore inte lika intressant att programmera, tycker jag. Men det vore ändå kul att prova programmera en 3d-version, har aldrig hållit på med det.

Citat:

Ursprungligen inskrivet av Untitled
Är väl bättre att göra avståndet längre "rent fysiskt" än att fulaknepa till det med perspektivet?

Tja, rent fysiskt är ju avståndet 0, eftersom tunneln bara är en 2d-bild.

Det är inga fulknep inblandade, bara standardmatte. Tunnelns bortre sida är 4 gånger mindre den hitre (är det ens ett ord?). Detta använder jag för att räkna ut var bollen ska befinna sig på skärmen, beroende på den imationära z-axeln.
Perspektivet bestämms altså av enbart av bilden som föreställer tunneln. Bollens rörelse beräknas exakt, vågar jag påstå.

Om jag nu har gjort ett fel någonstans, skulle bollrörelsen bli helt åt pipan, kan inte tänka mig villket fel som kan orsaka en effekt av "skruvning".

Citat:

Ursprungligen inskrivet av Untitled
Annars var det riktigt ballt. Kan gärna göra några texturer om du gör en version där man kan lägga in egna väggar (vill testa själv först, så jag inte skickar iväg nåt som ser skräpigt ut)

Gör en testbild bara, så lägger jag in det. Man ser ju direkt om tunneln ser bra ut eller inte, även utan spelet.

Visa signatur
Permalänk

Det vore kul om det istället var en jättelång gång och längst upp där det är svart kunde det vara en himmel.
Så låg man på rygg i gräset och slog upp bollen i luften och bollade

Visa signatur

"Knowledge amplification. What he learns, we all learn. What he knows, we all benefit from."

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av s.c.s.i.
Det är inga fulknep inblandade, bara standardmatte. Tunnelns bortre sida är 4 gånger mindre den hitre (är det ens ett ord?). Detta använder jag för att räkna ut var bollen ska befinna sig på skärmen, beroende på den imationära z-axeln.
Perspektivet bestämms altså av enbart av bilden som föreställer tunneln. Bollens rörelse beräknas exakt, vågar jag påstå.

Missade det helt och hållet. Rörelserna är säkert helt korrekt, det var bara jag som fick en känsla av skruvning och min spontana tanke var FOV:en.

Citat:

Ursprungligen inskrivet av s.c.s.i.
Gör en testbild bara, så lägger jag in det. Man ser ju direkt om tunneln ser bra ut eller inte, även utan spelet.

Jahaaa, nu fattar jag, tunneln är enbart en bild. Fick för mig att du skalade ihop varje vägg för sig och förskjöt dimensionerna på dem för att simulera en 3d-korridor. Jamendå ska man nog kunna knepa ihop något...

Visa signatur
Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Untitled
Missade det helt och hållet. Rörelserna är säkert helt korrekt, det var bara jag som fick en känsla av skruvning och min spontana tanke var FOV:en.

Jag börjar se "skruvningen" jag också, nu när alla påpekar det. Men jag tror ändå att rörelserna är riktiga. Ska försöka skriva en liten sammanfattning på hur det fungerar, ikväll, så då kanske ett eventuellt fel kommer fram.

Citat:

Ursprungligen inskrivet av Untitled
Jahaaa, nu fattar jag, tunneln är enbart en bild. Fick för mig att du skalade ihop varje vägg för sig och förskjöt dimensionerna på dem för att simulera en 3d-korridor. Jamendå ska man nog kunna knepa ihop något...

Tunneln är en bild, likaså paddeln. Bollen är också en bild, med dimensionerna 28x28, som skalas ner i storlek, för att simulera avstånd.

Visa signatur
Permalänk
Hedersmedlem

Arkanoid i 3D kanske vore en idé? Med något större paddel då kanske.

Visa signatur

42

Permalänk
Medlem

39 poäng nu, jäklar vad fort den åker i slutet.

Jag tror fortfarande att den skruvar sig...
Tog mig faktiskt tid att göra en högst vetenskaplig undersökning genom att ta flera skärmdumpar på spelet och noterade x-kordinaten med en röd prick. (Bollen rör sig likadant hela tiden, har jag märkt. Om den inte ska göra det så är nog min undersökning inte så lyckad.)
När jag hade tagit 6 dumpar som var på lite olika ställen så tog jag bilden jag hade fått och drog ut överdelen så att väggarna blev helt raka, då blir det lättare att se om banan är rak eller inte.

Om 3dsimuleringen är korrekt och riktningen är konstant så borde den visuella hastigheten i y-led avta desto "längre bort" den kommer, detta händer inte, utan den ökar.
Slutsats: Något är skumt.

Jag resarverar mig för felaktigheter och eventuella pinsamheter.

Permalänk
Medlem

http://upl.silentwhisper.net/uplfolders/upload0/ice_tunnel.bm...

Försökte mig på en reflektiv istunnel. Ser lite skumt ut men jag försökte i alla fall. La upp den okomprimerad så du får kanske dra ner storleken sen om du vill. Perspektiven kanske är lite fel, men jag försökte få till det så bra som möjligt.

Visa signatur
Permalänk
Medlem

67 FPS
35 poäng, första försöket

Permalänk

34 poäng och c:a 85 fps...

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Don_Tomaso
Jag tror fortfarande att den skruvar sig...

Din "undersökning" håller, och bolljäveln skruvar sig nog. Men har gått genom koden rad för rad nu, och hitar banne mig ingen förklaring. Allt ser rätt ut. =/

Ska försöka förklara hur det fungerar.

Jag började med att göra ett vanligt 2d-pong. Man såg altså bollen från sidan. Den 'hitre' sidan i 3d-läget är den högra sidan i 2d-läget, och den bortre sidan är egentligen den vänstra. Detta är egentligen den svåra biten att förklara. Försök att föreställa är att kameran i 3d-lägen egentligen befinner sig längst till höger i 2d-läget, och tittar åt vänster.
Bollens x-position i 2d-läget är altså z-positionen i 3d-läget, och y-värdet i 2d-läget är också y-värdet i 3d-läget.
För att ta reda på var på z-axeln bollen i 3d-lägen befinner sig, delar jag 2d-bollens x-position med bredden på 2d-spelplanen. På så vis får jag en variabel mellan 0 och 1. Den är 1 när bollen är helt mot den bortre sidan i 3d-läget, och 0 när det är helt vid den hitre.

Denna variabel, som vi kan kalla för "djup" är nyckeln. Anta att bollen i 2d-läget befinner sig mitt i spelplanen, som är 640x480 i storlek. Bollens y-pos är altså 240, och djup-variabeln är 0.5.

Hoppas att allt är klart så länge. Nu gäller det att konvertera dessa data till 3d-läget.

När bollen är längst bort i 3d-läget, så ser formeln för bollen i 3d-läget ut så här: ("Ball" är bollen i 2d-läget)

y:=180 + (120 * (Ball.Y / 480))

Och för att dessa värden ska stämma oavsett var på z-axeln 3d-bollen befinner sig, eller lättare sagt, var på x-axeln 2d-bollen befinner sig, multiplicerar jag bara värdena med variabeln "djup".

Jag ser inget utrymme för fel här. Det är ju bara grundläggande matematik. Men som Don_Tomaso har påvisat, så är bollens resa på y-axeln likförbannat fel.

Ska gå genom allt ytterligare en gång. Nattetid ger alltid bättre resultat, tycker jag.

Edit: Untitled, ser fint ut, men skulle du kunna tona ner speglingen av "tunnel-slutet"? Nu är det ett ganska starkt synligt "kors" på bilden, som ser ut att ligga på allt.
Dock hade jag tänkt mig någon lite mer futuristiskt. Som ur filmen Tron, eller not. Gärna lite mörkgrönt, för att behålla den klassiska pong-känslan.

Edit2: Funderar på om man ska ändra förhållandet mellan höjd och bredd på tunneln. 640*480 känns lite "rum-aktigt", kanske något mer wide-screen-aktigt skulle passa.

Visa signatur
Permalänk
Medlem

Det felet jag tror du gör är att göra djupet (x-axlen om jag fattade din förklaring korrekt) linjärt mot 2d-vyn. Om vi säger att tunneln är 360 djup (verkade rimligt). De blåa linjerna mäter djupet.

Dvs, avståndet mellan varje enhet är kortare desto närmare skärmen man kommer, och om tunneln skulle sträcka sig oändligt långt skulle djupavståndet vara oändligt långt om man mäter precis i mitten av 2d-vyn.

Och måste hålla med dig, nattetid ger bättre resultat, men definitivt inte bättre förklaringar.

Gjorde en lite bätte förklaring. Bollen till höger är ögat, där man ser ifrån.

Den synliga ytan blir de blåa sträcken ungefär, som man ser så blir de blåa sträcken (den synliga ytan) mindre desto längre ifrån ögat man kommer, även fast markspannet som den synliga ytan ska visa är densamma.

Permalänk
Medlem

Jag vet inte riktigt om man förstår dig. Bollen rör sig ju i en konstant hastighet på x-axeln i 2d-läget, och gör ju det också i 3d-läget.

Skruvar sig bollen i sidled också, eller bara på y-ledet?

Edit: Såg din förklaring nu, och du har naturligtvis rätt. Felet är nog precis det du beskriver. Hellsike, känns som att jag måste tänka i helt nya banor nu.

Edit: Men skruvnings-villan tillför egentligen bara svårighet till spelet. Vill man ha bort det?

Visa signatur