文章目录
这个作业属于哪个课程 | 2022春软件工程实践W班(福州大学) |
---|---|
这个作业要求在哪里 | 软件工程实践寒假作业 |
这个作业的目标 | 熟练掌握MarkDown语法、掌握git的基本用法、制定未来计划及学习路线、编写博客 |
其他参考文献 | 《构建之法》、CSDN相关博客 |
1、回首过去
1.1 当初你为什么选择软件工程这个专业?
其实当初想选的是计算机大类,但是软工的分比较低。
1.2 当初对软件工程这个专业的期待和想象是什么?
能够带给我未知和有趣的知识,满足我的探索欲。能够通过写代码来让生活变得更简单方便。
1.3 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
- 多做算法题、进行项目实践
- 刚入学的时候其实什么都没想,后面有各个团体来进行宣讲,最后决定参加西二工作室的考核,原本有打算参加acm,但是因为当时觉得入门门槛太高就放弃了。
2、立足当下
2.1 个人信息
姓名:许瑞政兴趣爱好:游戏、网球、羽毛球
特长:熬夜肝代码
邮箱:572801922@qq.com
2.2 当前水平
-
成果和获奖经历
- 制作的游戏进入了2021腾讯高校游戏创意大赛的复赛
- 获得校二等奖学金(?)
- 掌握的编程语言:C/C++、C#、JAVA、PHP
- 开发软件:Visual Studio、VS Code、IDEA、Unity3D、Android Studio
- 累计代码量:上万(未具体统计)
-
项目经历:开发过的项目简介
-
Don’t Play
- 游戏介绍:3d解密游戏demo
- 四人合作开发,作为项目的主导者,进行任务分配,进度监督,主要负责游戏内AI,程序分配以及bug修复和简单的优化。
- 使用到了unity自带的navgation以及行为树进行AI开发与控制(巡逻、追击、感知、重置游戏)
-
网易2020MG
- 游戏介绍:俯视角 2d 玩家进入场景后使用近战和远程攻击怪物
- 本人通过使用unity插件behavior designer行为树进行怪物AI的开发(巡逻、追踪、攻击)
- 实现了A*寻路算法
-
腾讯2021高校游戏创意大赛 《游弈》
- 游戏介绍:横版2d 操控玩家下棋放出招式杀怪
- 实现了一套可复用的技能框架:
-
Don’t Play
特效effect: 对某个数值进行修改
技能/BUFF(effectContainer)由多个特效(list)组成
effectContainer有委托(回调函数)可以对相应情况进行回调处理:
BuffOccur、BuffOnTick、BuffRemoved等等
3、展望未来
3.1 阅读《构建之法》,并阅读构建之法社区中前人提出的问题,选择5个及以上的问题写下自己的思考。要求在自己的思考中贴上原问题的链接。
- 顾客真的知道他们想要什么吗?
链接
在我看来,顾客往往很难意识到他们真正需要的是什么,当然研发团队也是一样的,在没有经过实际的使用和调查时,具体效果谁都无法确定,这也是为什么许多公司在上线产品时会进行A/B测试的原因,而提取这些需求的本质并且实现它们正是创造者应该去做的。
- 如何才能让每个队员都有很高的积极性参与开发或者愿意牺牲自己的时间投身团队工作呢?
链接
首先要认识到一点,所有人都愿意投入自己所有的时间和精力进行团队工作,这是不可能也不现实的。对于一个工作量可控的项目来说,如果有人做得多,那么一定有人做得少,但是每个人有不同的利益诉求,根据它来进行任务分配。
- 应该在什么时候使用goto?
链接
任何情况下都不应该使用goto,当然,除了汇编之外。goto在高级语言中都能够被for/while/break所代替,linux出现大量goto是因为goto会破坏代码的结构和可读性来换取高效率,如果遇到不得不使用goto的情况,尝试着去换种语言或者编写详细的文档。
- 结对编程总能做到1 + 1 > 2 吗?
链接
在总体成果产出看来,结对编程是1+1<2的,1 + 1 > 2在我看来是更少的bug、更好的质量、更高的生产效率。但是程序员们相应双倍的劳动消耗和实际上花在交流的时间明显是1+1<=的。
- 学生与职业程序员的区别?
链接
从我个人出发,职业程序员更注重的是需求分析和具体设计,丰富的经验带来的是更高效的编码效率和更优秀的整体设计与思路。代码的规范、合理的命名在实际团队开发中更重要
3.2 你未来的职业规划是什么?
首先入职成为游戏客户端开发,经过二至三年的工作和学习,能够进行游戏主系统(战斗系统、gameplay等等)的开发,成为主程,最后能够负责进行游戏整体架构的编写
3.3 对于软件工程实践课程,你有什么理解和期望?
- 希望能学习计算机图形学以及一些游戏相关的知识(lua、热更新、游戏AI、帧同步/状态同步)
- 提高对于整个项目框架的管理能力,懂得如何去使用合适的方法去高效地开展、开发一个项目。
- 提高团队合作的能力
4、思维导图和学习路线
5、git上传截图和仓库地址
https://gitcode.net/eMberSp/221900326