what can software designers learn from video games