Archief - 2D Game (hobby)

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

devilution.be

Legacy Member
Beste

Om mijn programmeer 'skills' wat bij te houden en bij te leren, zou ik graag beginnen met het programmeren van 2D games ( 'simpele' games zoals, mega man, contra, mario, zelda,... sidescrolling/run'n'gun/beat'em'up)

Ik doe momenteel TI en heb dus wel al wat kennis van enkele programmeertalen waaronder c++ / c# / java.

Nu is mijn vraag naar jullie toe:

1. Zelf een engine programmeren (2D) of een bestaand gebruiken.
2. Indien zelf een engine programmeren heeft iemand enkele goede resources?
3. Welke programmeertaal is het meest opportuun te gebruiken (voor/nadelen)
4. In welke omgeving programmeer je zoiets best ?
5. Bestaan er best practices of design patterns voor 2D gaming?

Alle info/resources/tips zijn welkom :)

Fraggie

Legacy Member
Je moet goed weten waaraan je begint. Een engine kan zo simpel zijn als een punt die in een vlak naar voor en naar achter kan bewegen (User I/O), en dat op enkel rechte lijnen. Daarbij kan je dan nog een camera steken (zodat je tegen het einde van het scherm kan lopen ipv altijd dead center), hoogte, hitdetection..

Vanaf dan kan je voor twee opties gaan imo:
- iets visueel maken m.b.v. wiskundige formules en automatisch gegenereerde levels, meest eenvoudige vorm lijkt dan op Windows Media Player alla: Prozac and Windows Media Player - YouTube

of

- je maakt een speelbaar spel met een pak artwork (zoals sprites, textures, etc).

Met het eerste leer je het meeste, maar weinigen vinden het eindresultaat tof. Bij de tweede optie ga je bijzonder veel tijd verliezen in de art work en raad ik af om alleen te doen.

2: eerste x zelf maken
3: C++ omdat je best alles zelf doet, geen nood aan Java of C#/XNA. Of wanneer je direct voor een speelbaar spel wil gaan: XNA. Als je echt balls to the wall wil gaan: OpenGL API en dergelijke.
4: maakt niet uit
5: al doende leert men het moet vooral super snel zijn. het zal je vele projecten kosten tegen je het van het gevonden hebt.

Cycloon

Legacy Member
En om eerlijk te zijn, iets leren door een project uit te werken is meestal 90% van de tijd dingen doen die je reeds kent en 10% nieuwe dingen uitproberen en zodanig in je bestaande code duwen dat het échte idee erachter vaak verloren gaat. Nieuwe zaken moet je vooral leren kennen door kleine stukjes testsoftware te schrijven. Daar zal je veel meer uit leren. Ga bv. eens alle design patterns af, implementeer wat verschillende soorten algoritmen, ... Dat is allemaal véél leerrijker.

devilution.be

Legacy Member
Thanks allebei voor de input :)

@cycloon Eigenlijk heb je wel een punt en wss ga ik ook doen wat je voorstelt, maar stiekem zou ik wel graag eens zien hoever ik geraak met het maken van een game. (is ook iets waar enorm veel tijd in kruipt aangezien ik ook de art zelf wil maken (vandaar ook hobby, ik leer tekenen etc en wil het uiteraard ook op digitaal vlak spelen ermee)

Voor school moesten we alle patterns kennen van head first, ik denk dat ik die allemaal nog eens ga overlopen en kijken wat ik er verder nog kan uithalen :)

Moto

Legacy Member
Kijk eens vooral hier naar best practices van iemand die effectief er iets van weet
How to program independent games
Presentatie van Jonathan Blow de maker van Braid, over hoe ge games moet developen


En zeker dus zo'n dingen eens lezen
Game Object Structure: Inheritance vs. Aggregation
Der zijn al een aantal artikels over hoe ge GEEN inheritance moet gebruiken voor game-objects

Voor talen, maakt niet uit eigenlijk C#/XNA hebt ge ook niet direkt een speelbaar spel, C++ is moeite voor niks, misschiens het beste in javascript/canvas iets maken ;)


Voor school moesten we alle patterns kennen van head first
Hopelijk leren ze u ook echt wanneer ze te gebruiken, hier een belangrijke regel voor desing patterns,
Het is VEEEEEEEEEEL ERGER een design pattern te gebruiken wanneer het niet nodig is
Dan ergens geen design pattern wanneer het wel zou mogen.

devilution.be

Legacy Member
Moto zei:
Kijk eens vooral hier naar best practices van iemand die effectief er iets van weet
How to program independent games
Presentatie van Jonathan Blow de maker van Braid, over hoe ge games moet developen


En zeker dus zo'n dingen eens lezen
Game Object Structure: Inheritance vs. Aggregation
Der zijn al een aantal artikels over hoe ge GEEN inheritance moet gebruiken voor game-objects

Voor talen, maakt niet uit eigenlijk C#/XNA hebt ge ook niet direkt een speelbaar spel, C++ is moeite voor niks, misschiens het beste in javascript/canvas iets maken ;)



Hopelijk leren ze u ook echt wanneer ze te gebruiken, hier een belangrijke regel voor desing patterns,
Het is VEEEEEEEEEEL ERGER een design pattern te gebruiken wanneer het niet nodig is
Dan ergens geen design pattern wanneer het wel zou mogen.

Hey thanks voor de links en info :)

Dat van design patterns weet ik, het probleem is, in theorie is het allemaal mooi. Maar hoe het er in realiteit aan toe gaat, dat leer je pas denk ik als je echt gaat werken. Toch bedankt voor de heads up !

Heeft er iemand toevallig kennis van een tile-based game programming?

Slynx

Legacy Member
Jup, eenvoudigste omtrent een tilebased engine is het volgende:

Array van bepaalde grootte, waarbij je elk vakje gaat opvullen met een afbeelding, om het heel eenvoudig te stellen. Altijd leuk en handig om een dynamische mapeditor te schrijven dan, hoef je niet alles hardcoded te doen :)
Daarover kan je toch genoeg tuts vinden?

devilution.be

Legacy Member
JS en Html5/CSS3 engine maken is niet simpel tbh :)

In xna is het me gelukt op gwne tile engine te maken, ik ga er nu proberen een isometric tile engine van te maken :) En mss keer proberen om zoiets in java te maken.

Heb niet genoeg verstand van JS tbh... JS OO dat bestaat niet, laat staan dat ge heel uw backend op js laat draaien :p

Cycloon

Legacy Member
devilution.be zei:
Heb niet genoeg verstand van JS tbh... JS OO dat bestaat niet, laat staan dat ge heel uw backend op js laat draaien :p

Gewaagde uitspraak op dit subforum :cool:

Moto

Legacy Member
Heb niet genoeg verstand van JS tbh... JS OO dat bestaat niet, laat staan dat ge heel uw backend op js laat draaien

OO : Overrated & Overdesigned -> JS Prototyping
heel uw backend op js: Node.js + socket.io

Moto

Legacy Member
oo overrated noemen is een straffe uitspraak
Als iedereen precies denkt dat OO de enigste "juiste" manier van programmeren is (en dan nog liefst met veel inheritance en design patterns) en als ze nog niet gehoord hebben van dingen zoals memoization, currying of monads, dan is OO idd overrated

devilution.be

Legacy Member
Moto zei:
OO : Overrated & Overdesigned -> JS Prototyping
heel uw backend op js: Node.js + socket.io

Merci :) Ik ga dat eens bezien.

Ik moet je wel gelijk geven ivm OO. Het heeft zéér zeker een nut en kan soms extreem handig zijn, maar het is niet altijd zo.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan