character mechanics