This study developed and evaluated two varied game-based learning systems in a software engineering course. The first system adopted a role-playing gaming strategy for students to learn about the process of software development effort estimation in a team-based environment. The second system used a traditional drill-and-practice gaming strategy to guide design. An experimental study involving human subjects was conducted to compare the effects of both systems on students' learning performance and attitude. Univariate analyses revealed that the game-based learning had a significant main effect on dependent variables in the knowledge test (F=5.166, p<.05), but not in the intention and satisfaction measures (p>.05). The results showed that students in the drill-and-practice gaming group achieved significantly higher scores in the knowledge test (M=72.86) than the role-playing gaming group (M=61.90). The measures of students' intention and satisfaction were in the range of a moderate to high level. However, no significant differences were found between the two groups in terms of their affective measures.