周文宏 贾文 高悦 郭馥英 宋力
摘 要 目前 游戏产业的发展如火如荼 为了与时俱进 降低教学实践中的游戏编程难度 提高学生的学习兴趣 对 计算机游戏程序设计 课程的教学内容 教学工具进行改革 并对教学方式进行研究和探索 以期提升教学质量 从而提高学生的游戏设计与开发能力 以及工程实践能力
关键词 游戏程序设计Unity3D 教学方法
中图法分类号: TP311 文献标识码:A
1 引言
在2010 年,西安电子科技大学开设了“计算机游戏程序设计”课程,这门课程最初为计算机科学与技术学院面向大三所开设的任选专业课,总学时36 学时,计2 学分。
该课程的教学目标是让学生了解游戏的分类、开发过程以及设计游戏所需的各种基本知识,并通过游戏设计实践,使学生对游戏设计具备一定的基礎,同时培养学生的游戏设计全局观,为进一步探索游戏设计奠定基础。
开发工具使用Visual C + +, 结合DirectX 及OpenGL。授课教材以耿卫东、陈为编写的《计算机游戏程序设计》(第二版)为主,结合主讲教师编写的补充内容。其特点是涉及的技术理论较多、较深,该程序用C/ C++编写,交互方式涉及Windows 系统的消息机制,复杂效果涉及DirectX,OpenGL 的使用,对一部分学生而言,学习和掌握这部分内容有较大的难度,因此需要投入较多的编程时间,程序调试也较困难,这导致了学生学习效率以及动手实践的积极性降低,从而直接影响课堂教学质量和教学效果。另外,由于Unity3D 在游戏行业的盛行,以及手游市场的占有率较高,目前已成为国内使用最多的游戏引擎之一。其具有界面友好,功能丰富,素材资源众多,以及入门较为容易等特点,并且可以做到立刻出结果,由于采用C#编写脚本,因此降低了学习难度。基于上述原因,此次课改对课程的教学大纲、教学内容、教学工具,以及考核方式进行了较大的改动,并对多种教学方法的融合进行了研究和探索。
2 课程改革内容
保留原来前三章的内容:计算机游戏简介、游戏程序设计概述、二维游戏的基本编程技术;删除有关DirectX,OpenGL 的高级图形技术、人机界面、游戏中的人工智能等内容;增加Unity3D 引擎介绍、基于Unity3D 引擎的游戏开发技术、游戏开发项目案例等内容。课改前后教学内容对照如表1 所列。
第一部分:第1~3 章,主要以软件工程的思想讲述游戏程序设计方法,以Windows 系统为平台,剖析二维游戏的设计原理和编程方法,以便让学生理解和掌握二维游戏的框架设计思路及基本编程技术,编程语言以C++为主。
这部分之所以保留,目的是让学生不仅仅掌握一门游戏开发工具的使用技能,更重要的是理解游戏引擎背后的设计原理。因此,该课程教学目标不仅仅是培养一名合格的程序员,而是要培养理论基础扎实、工程实践能力突出,以及创新意识强的高层次专业技术人才。
第二部分:讲述Unity 3D 游戏开发工具的操作与使用以及开发的基本知识,最后通过游戏案例将所讲知识融会贯通。
3 教学方法
教学方法多种多样,教师不能只单纯追求热点效应,而应当基于学生与课程特点,适当地采用多种或混合教学模式[1] 。
3.1 案例演示导入知识教学法
弱化识记型知识。比如,在Unity 3D 软件使用中,命令、按钮以及快捷键等操作方式有很多步骤,这些知识主要靠识记。在教学中主要以操作“菜单”为主,减轻学生入门时的识记负担。
课堂上,主要采用案例演示导入知识教学法,即给出任务→案例演示→游戏创建→脚本编程→知识点讲解。通过案例运行的直观效果引出知识点,然后再讲授相关内容,最后再运行一次案例,使学生加深理解。随着课程的深入,后期让学生在示例的基础上,通过修改、扩展新功能,巩固所学知识,加强实际的动手能力。
下文以“风车旋转”游戏为例,阐述具体的教学实施步骤。
首先,讲明任务为实现风车的转动。然后设计游戏规则,思考需要准备哪些素材。
第一部分:先运行游戏例子,进行效果演示。
(1)打开已建好的项目,运行游戏。
(2)点击鼠标左键,使风车的旋转。第二部分:创建游戏。
(3)设计游戏规则,准备游戏的素材:风车图片。
(4)创建场景视图。
(5)给场景添加游戏对象:将风车图片拖拽到场景视图中,命名为windmill。
(6)设置风车的坐标、大小,以及背景颜色。
(7)运行,查看风车的静态效果。第三部分:编写脚本。
(8)创建脚本文件RotateController.cs,在该脚本的Update()函数中编写鼠标左键被按下时,改变旋转速度。
这里让学生先对Update()有个印象和大概的了解。以后会在MonoBehaviour 基类中进行详细的讲解。
第四部分:挂载脚本。
(9)把RotateController 脚本拖拽到windmill 对象上(在第5 步创建的)。
(10)运行游戏,单击鼠标左键后,风车开始旋转。
3.2 项目综合实例教学
教师根据教学目标和内容要求收集、选取典型案例,对案例进行演示,对涉及的关键技术及其实现方法进行分析和讲解,培养学生的游戏设计全局观。表2 以“自建跑道的驾驶游戏”项目为例,介绍案例中涉及的主要知识点。
3.3 实验教学
实验教学主要分为以下3 项。
(1)学生根据教师给的示例,通过实际操作对脚本代码加以分析和理解。
(2)完成专题实验作业。
(3)自由组合,1 ~ 4 人为一组,完成一个实践项目。从构思、设计到实现,最后进行成果汇报,并提交设计文档,教师进行当场点评。
在该环节中,主要采用任务驱动模式[2] ,将实践教学作为理论教学切入点,实现理论与实践的有机结合[3] ,可以锻炼学生的主动思考能力和设计能力,培养学生的团队合作意识、沟通协调和创新能力,为学生以后步入社会、及早适应工作奠定基础。
3.4 课堂搬进实验室,边讲边练,教学更直观
将教室迁移至具备实验环境的机房,采用“教、学、做”一体化教学方法。教师课前先将相关示例程序共享,学生可以跟着教师的讲解同步操作,这样可使学生加深印象,快速掌握课堂内容,提高学习效率。
3.5 借助智課平台,贴心化教学
建课时, 教师会将教学目标、教学计划、教学PPT、示例代码等相关教学资料上传至智课平台。每次课后,教师将当天的教学视频上传,并根据实际情况更新教学资源,以供学生预先了解或复习。
3.6 线上教学,拓展知识或翻转课堂
本次课改增加了4 学时的线上教学。教师会根据实际情况来进行知识拓展,或者翻转课堂教学。知识拓展是为了开阔学生视野,可以讲授新知识、游戏产业新动向,或者让学生观看相关领域的视频。
翻转课堂以学生为中心,将学习的决定权从教师转移给学生。其核心在于把低阶的教学目标移出课堂之外,从而把课堂时间解放出来进行高阶目标的深层学习[4] 。这个方法需要提前跟学生沟通,圈定专题范围,并要求学生在课前一起学习新知识、查阅资料以及准备云课堂上的演讲,在云课堂上陈述小组工作成果,回答其他学生的提问。学生通过教来学习,并从其他学生对演讲的评论和提问中获益[5] 。
4 考核方式
考核方式多元化,全面考核学生。总评成绩由3部分组成,即“专题实验作业(20%) +实践大作业(40%,含答辩过程)+笔试(40%)”。其中,实践大作业由小组完成,提交材料包括分工说明、策划书、设计文档、答辩PPT、源代码等。
5 实践的效果与存在的问题
基于实践教学环境的使用,使过去“理论+上机实验” 的教学方式变成了“边讲边练”的模式,解决了理论与实践教学相分离导致的教学效果低下的问题;加强了学生现场吸收效果,提高了学生学习的积极性。
课改实施一年来,学生对教学内容、教学方法、讲课示例、笔试占总成绩的比例等给了许多的反馈意见,该课程后期将会适时改进。2022 年,选课生和旁听生中有3 人选了授课教师的有关游戏设计与开发方面的本科毕业设计题目,且在毕设答辩中均获得了优秀成绩。在“2022 年陕西省大学生创新创业训练计划项目”中,参与指导的团队入选了国家级一般项目。
但该课程仍存在一些不足,因为专业设置、课程性质等原因,实践操作课时安排较少,理论课也未涉及更深的技术及编程技巧。另外,因硬件设备的限制,讲课内容也未涉及虚拟现实技术。
6 结束语
通过本次的“计算机游戏程序设计”课程实践教学改革,选用Unity3D 作为游戏开发工具,融合了多种教学方法,使学生学习的兴趣和积极性得到了大幅提高。实践证明,该课程教学改革加强了学生创新意识与工程实践能力,并取得了较好的教学效果。在今后的教学工作中,将通过进一步的实践探索和学生反馈,并总结教学问题,不断改进和完善,实现教学革新推动教学发展。
参考文献:
[1] 吴宁,房琛琛,任燕飞.大班教学环境下基于SPOC 的混合教学设计与效果分析[J].中国大学教学,2016(5):32?37.
[2] 杨竞华.项目教学法在计算机教学中的应用[M].吉林:吉林人民出版社,2021.
[3] 张奕樱,霍英杰.任务驱动教学法在计算机教学中的应用实践[J].佳木斯职业学院学报,2023,39(1):151?153.
[4] 郭建鹏.翻转课堂教学模式:变式与统一[J].中国高教研究,2019(6):8?14.
[5] 张萍,DING Lin,张文硕.翻转课堂的理念、演变与有效性研究[J].教育学报,2017(1):46?55.
作者简介:
周文宏(1966—),硕士,高级实验师,研究方向:计算机应用技术。