A study on creating games and virtual worlds from a software engineering perspective