ultddave
Legacy Member
Beste,
Ik heb een vraag aangaande gamedevelopment.
Op school heb ik geleerd dat we voor gewone desktop applications, (eg een boekhoudprogramma) best de model/logic van de visuele representatie scheiden (idem bij websites etc). Dat is logisch en niet zo moeilijk.
Maar hoe zit dat met games (die gebruik maken van OpenGL bijvoorbeeld)?
Stel bijvoorbeeld een shooter of een bordspel.
Daarin kunnen we veel klassen definiëren voor onze model. maar om het simpel te houden, veronderstellen we enkel de klasse van een vijand.
Die vijand heeft uiteraard ook een 3D model. Is het dan de bedoeling om dit in de model/logic bij te houden?
Zelfde scenario bij bijvoorbeeld een bordspel zoals schaken.
Daarin kan je bijvoorbeeld de volgende klasse definiëren (we laten overerving even buiten beschouwing).
Is dit een goede manier? Of hoe wordt dit meestal gedaan?
Op internet zijn er veel tutorials te vinden, maar sommige lijken outdated en van andere is het dan weer moeilijk om te weten of het "de juiste aanpak" is.
Dank bij voorbaat.
Mvg,
Dave
Ik heb een vraag aangaande gamedevelopment.
Op school heb ik geleerd dat we voor gewone desktop applications, (eg een boekhoudprogramma) best de model/logic van de visuele representatie scheiden (idem bij websites etc). Dat is logisch en niet zo moeilijk.
Maar hoe zit dat met games (die gebruik maken van OpenGL bijvoorbeeld)?
Stel bijvoorbeeld een shooter of een bordspel.
Daarin kunnen we veel klassen definiëren voor onze model. maar om het simpel te houden, veronderstellen we enkel de klasse van een vijand.
Code:
Class Enemy
{
id : int
position : Point(int, int)
weapons : Array<Weapon>
hitpoints : int
...
}
Die vijand heeft uiteraard ook een 3D model. Is het dan de bedoeling om dit in de model/logic bij te houden?
Code:
Class Enemy
{
id : int
position : Point(int, int)
weapons : Array<Weapon>
hitpoints : int
...
model : String /* (de filename van de model) */
}
Zelfde scenario bij bijvoorbeeld een bordspel zoals schaken.
Daarin kan je bijvoorbeeld de volgende klasse definiëren (we laten overerving even buiten beschouwing).
Code:
Class King
{
id : int
position : Point(int, int)
...
picture : String /* filename van de 2D afbeelding */
}
Is dit een goede manier? Of hoe wordt dit meestal gedaan?
Op internet zijn er veel tutorials te vinden, maar sommige lijken outdated en van andere is het dan weer moeilijk om te weten of het "de juiste aanpak" is.
Dank bij voorbaat.
Mvg,
Dave
. Het idee van model - view (- controller) is net om ervoor te zorgen dat uw model helemaal geen kennis hoeft te hebben van de representatie. Het model moet eigenlijk maar net genoeg informatie bevatten om de logic te laten functioneren (en die string draagt daar niet aan bij).
.
. Je kan je sprite of 3D model als 'resource' beschouwen, en zowel je model en view hebben een referentie naar deze resource. Op deze manier kan je model er toch gebruik van maken, en blijft het onafhankelijk van je view. Je view object bevat meestal ook meer functionaliteit dan je graphics resource.