Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should I use multiple classes for game?

Tags:

oop

php

class

I'm considering making a text-based RPG-type program in PHP as both a holiday project and a chance to learn more about PHP and OOP. (Maybe not the best choice in language, I know, but I didn't want to have to learn another language from scratch at the same time as OOP.)

Anyway, I'm just beginning the design process and thinking about 'monsters'. Each monster type (ya know, orc, goblin, rat, etc) will have its own stats, skills and what not. At first I though I could just have a single monster class and set the properties when I instantiate the object. But then I figured that might be a little inefficient, so I'm considering having a class for each type of monster.

Is this the best way to approach the problem, considering that the methods in each class will likely be the same? Is there a better way of doing things that I don't yet know about?

Any help is appreciated.

like image 338
Saladin Akara Avatar asked Aug 23 '10 13:08

Saladin Akara


1 Answers

You could create an abstract class, say Monster, and then extend that class for each of the different types of monsters. So

<?php
abstract class Monster {
  private $health;
  public function attack() {
    //do stuff
  }
}
class Orc extends Monster {
  private $damage_bonus;
}
?>

edit Orc would extend Monster and then inherit the attribute $health and the function attack().

like image 151
Aaron Hathaway Avatar answered Oct 20 '22 07:10

Aaron Hathaway