软件工程实践第一次作业

172209065林伟豪 2025-09-27 20:37:00
这个作业属于哪个课程2501_CS_SE_FZU
这个作业要求在哪里软件工程实践第一次作业
这个作业的目标确立本学期以及未来的技术学习方向和目标,制定科学可行的学习规划,了解现代文档编写工具与规范,如Markdown,Git,Xmind等。​​培养自主学习与系统规划能力 ,注册社区账号并养成社区互动、文档编写、时间管理的职业习惯
其他参考文献思维导图Xmind官方手册Markdown菜鸟教程学习路线参考引擎开发路线参考竞赛路线参考

目录

  • 一、 回首过去:对软件工程的初识与困惑
  • 1.1 初心:什么契机或想法,我最终选择了软件工程专业?​
  • 1.2 初识:软件工程就等于写代码吗?
  • 1.3 初见:我的第一次项目,困惑与收获
  • 二、立足当下:技术深研的重心与认知更新
  • 2.1 学习和实践的焦点:从用户到创造者,从调参到造轮子
  • 2.2 自我认知迭代:理论,实现,再到创造力​
  • 展望未来: AI与游戏引擎的融合
  • 3.1 结合实际,探索未来发展目标​
  • 3.2 规划职业发展路径,锚定前进方向​​
  • 3.3 课程内实践学习(短期):
  • Unity基础与核心玩法实现
  • UI系统与美术整合
  • Shader与视觉效果
  • 项目优化与发布
  • 3.4 课程外未来发展(长期):
  • 相关长期目标
  • 思维导图和学习路线
  • 思维导图:
  • 学习路线图:

一、 回首过去:对软件工程的初识与困惑

1.1 初心:什么契机或想法,我最终选择了软件工程专业?​

  高中毕业填报志愿的时候,我其实对“软件工程”这个词只有一个模糊的概念。选择软件工程这个专业,原因其实挺简单的。​​首先​​是觉得“酷”。看到电影里的黑客飞快地敲击键盘,屏幕上滚动着神秘的代码,就能做出很厉害的事情,觉得特别帅。虽然知道现实没那么戏剧化,但那种“用代码创造事物”的感觉非常吸引我。​​其次​​是觉得实用。无论是手机上的APP,还是电脑上的软件,都离不开编程。学这个感觉能掌握一门实实在在的技能,将来应该挺好找工作的,而且薪资也不错。​​最后​​就是自己喜欢打游戏,有时候会想“要是我也能做出一个小游戏该多好”,这种小小的创造欲也是推动我选择这个专业的原因之一。
  所以,在入学之前,我心目中的软件工程,差不多就​​等于“学习怎么写代码做软件”​​。

1.2 初识:软件工程就等于写代码吗?

  在接触正式的《软件工程实践》课程之前,我对软件开发的认知主要来源于之前的编程基础课程和小型的课程设计项目。而在大一,二的算法设计比赛中,因为过于专注简单解决轻小规模问题,更加深了我对实际工程项目开发的误解,陷入了软件工程只是简单代码实现逻辑的误区

1.3 初见:我的第一次项目,困惑与收获

  我接触的第一个真正意义上的工程项目,是用C++编写一个基础的3D渲染器。这次经历如同一面镜子,清晰地映照出我对软件工程的稚嫩认知。开发初期,我完全延续了算法竞赛中的思维惯性——​​执着于“纯手工打造”​​。不仅将所有代码粗暴地塞进单个.cpp文件,更拒绝使用任何外部库,坚信“自己实现所有功能才是真本事”。随着功能增加,一个2000行的.cpp文件迅速膨胀成庞然怪物,而当需要矩阵运算时,我花不少时间手写了一个充满BUG的矩阵类,更进一步,我根本无法实现渲染方程的计算过程,运行时间更到猴年马月
​​  这场“初见”的惨痛教训,彻底击碎了我对软件工程的浪漫幻想:​它让我深刻理解:​​软件工程不是关于“写代码的艺术”,而是关于“控制”和“管理”的科学,当我接受现实,引入OpenCV和Eigen等相关库,学习CMake的用法并将代码合理拆分,那个曾经支离破碎的渲染器竟奇迹般跑通了

二、立足当下:技术深研的重心与认知更新

2.1 学习和实践的焦点:从用户到创造者,从调参到造轮子

  在后续的实践中,我深刻认识到​​缺乏理论指导的实践是盲目的,而脱离实践的理论是空洞的​​
我的学习重心不仅仅是“如何使用工具”,而更多开始研究“如何创造工具”,只有这样才能拿出更好的作品,核心逻辑是 ​​“理解本质”​​,在浏览许多关于游戏大厂招聘的经验贴时,我发现基础理论的重要性,意识到实践与理论研究与创造融合的重要性

  • 转而钻研​​计算机图形学核心理论,学习CS184A,Games101等图形学课程​​:从线性代数(模型变换、视图矩阵)到模型表示,再到光照模型(Phong, PBR),从渲染管线(VS/PS/GS)到高级特效(阴影映射、环境光遮蔽)。
  • 在实践中尝试理解整体架构,结合所学内容,从”怎么用“到”怎么做“再到”怎么改“,不仅要了解一个框架是怎么使用的,更是要发掘这块内容是怎么做的,再到研究可以如何修改,现如今对于Unity/UE等经典引擎模型,比起原版使用,构建插件,重写相关内容的工作程度日益加深

2.2 自我认知迭代:理论,实现,再到创造力​

  在持续探索的过程中,我逐渐认识到一个关键转变:学习不能局限于课堂内的知识传授,更需要主动对接行业发展趋势,并选择与之匹配的方向进行深度钻研。在技术实践方面,我选择企业中游戏引擎开发流程作为学习方向,学习使用Git进行团队协作开发。
  最近AIGC技术的迅猛发展,为我的技术认知注入了新的维度。它让我意识到,现代技术开发已经进入了一个新阶段:​​创造力不再局限于人类的主观想象​​,而是可以通过人机协作的方式得到延展和增强。在实际项目中,我开始尝试使用AI工具辅助开发流程:通过ChatGPT快速生成Shader代码框架,利用Stable Diffusion生成概念原画和纹理贴图。扎实的理论基础保证技术深度,工程实践能力确保项目交付质量,而对AIGC等新技术的应用能力则成为差异化竞争优势。
  目前,企业越来越看重候选人的综合能力——既要能快速融入工业化生产流程,又要能利用新技术创造业务价值,这正是我持续努力的方向。

展望未来: AI与游戏引擎的融合

3.1 结合实际,探索未来发展目标​

  我的长期目标是成为一名​​精通AI算法的游戏引擎架构师​​或​​前沿游戏AI研究员​​,致力于推动游戏向更智能、更沉浸、更自适应的方向发展。我对游戏的愿景不再是简单地使用现成工具,而是​​研发下一代游戏开发范式,用AI加速开发,为游戏赋能​​。在当下游戏行业,AI已大展身手,以AI,游戏融合的目标为立足点也不再是天马行空的幻想

  • 目标一:构建“活”的游戏世界——高级游戏AI​
    • 由强化学习驱动的NPC​​:绝非简单的行为树,而是打造像《彩虹六号:围攻》中高级AI训练模式那样的对手,或像《荒野大镖客2》中拥有复杂日常作息和记忆的NPC。它们能通过​​模仿学习​​ 学习高玩战术,或通过​​多智能体强化学习实现团队协作,为玩家提供极具挑战性和真实感的动态体验。
    • AI叙事与剧情生成​​:得益于大型语言模型(LLMs)的研究爆炸性的增长,如《1001夜》或《Generative Agents》中的生成式叙事系统,利用​​大型语言模型LLM​​ 动态生成任务、对话和剧情分支,使每位玩家的游戏旅程都独一无二,实现真正的“沉浸式模拟”。
  • 目标二:颠覆传统生产流程——AI内容创作
    • 程序化内容生成的智能化​​:超越传统的随机生成,利用​​生成对抗网络GANS 或 ​​扩散模型Diffusion Models,像英伟达的Canvas软件一样,通过草图实时生成高质量地形纹理;或像《无人深空》那样,使用算法生成庞大而多样的星系和生物,通过AI确保生成内容的美学一致性和可玩性。而近几个月由AI完全生成的《Minecraft》可玩场景,更为我们探索了在完全AI实时领域的方向
    • 语音与动画工具生成​​:集成类似Convai.com或Synthesia.io的服务,开发引擎工具链,能通过文本输入自动生成角色语音(Text-to-Speech)和相匹配的口型、表情动画(如Meta的Audio2Photoreal技术),极大降低动画制作成本。又或如UniRig等自动化骨骼绑定工具,在大幅提升生产力的同时又能保证相对精度

3.2 规划职业发展路径,锚定前进方向​​

  计划在未来攻读计算机图形学、人工智能方向的硕士学位,进入学术界或工业研究院深造,在​​神经渲染,生成模型等前沿领域进行探索,为前沿领域打下深厚基础,深入探索如何使用AI为游戏赋能。
  不断跟进补充项目经验,不断提升代码能力,并积极参与实习,结合相关引擎、技术美术(TA)团队或AI Lab​​等就业方向制定行动方案,积极提升自己。

3.3 课程内实践学习(短期):

Unity基础与核心玩法实现

学习模块具体学习内容学习资源
引擎基础1. Unity界面与工作流
2. 场景管理与 GameObject/Component 概念
3. 预制体创建与使用
Unity官方手册
B站Unity入门教程
C#脚本编程1. MonoBehaviour生命周期
2. 玩家输入控制
3. 刚体物理与碰撞检测
《Unity游戏设计与实现》
版本控制1. Git基础命令
2. .gitignore配置
3. Unity项目版本管理
GitHub官方文档

UI系统与美术整合

学习模块具体学习内容学习资源
UGUI系统1. Canvas渲染模式
2. RectTransform锚点系统
3. 按钮交互与事件监听
Unity UGUI教程
美术资源管理1. Sprite导入与设置
2. 图集打包与优化
3. 图层排序与管理
Unity2D教程
音频系统1. AudioSource组件使用
2. 音效管理与播放
Unity音频系统文档

Shader与视觉效果

学习模块具体学习内容学习资源
ShaderGraph基础1. 节点式Shader编写
2. 简单特效制作
3. 材质参数控制
Unity ShaderGraph教程
粒子系统1. Particle System组件
2. 粒子属性调节
3. 特效性能优化
Unity粒子系统指南
动画系统1. Animator控制器
2. 动画状态机
3. 动画事件
Unity动画系统教程

项目优化与发布

学习模块具体学习内容学习资源
性能优化1. 绘制调用优化
2. 内存管理
3. 帧率分析
Unity性能优化指南
构建发布1. 构建设置
2. 跨平台适配
3. 发布包管理
Unity构建文档
项目文档1. README编写
2. 版本说明
3. 演示录制
GitHub文档规范

3.4 课程外未来发展(长期):

相关长期目标

领域任务项关键内容/目标期望
图形学与引擎底层1. 深入图形API与引擎架构系统学习Vulkan/DirectX 12现代图形API;阅读并实践Unity/Unreal Engine的**可编程渲染管线(SRP/RHI)**。完成一个自定义渲染管线或图形特效的Demo。
2. 掌握前沿渲染技术跟踪并复现NeRF、3D Gaussian Splatting等神经渲染,重建技术;理解其原理并与传统光栅化/光线追踪对比。在个人博客或GitHub上记录学习笔记和实验代码。
AI与机器学习3. 精通AI算法与框架深入理解PyTorch,并能独立实现、训练和调试深度学习模型(如CNN, Transformer, GAN, Diffusion Model)。在Kaggle相关竞赛中获得不错排名,或完成高质量开源项目。
4. 探索AI与图形学交叉应用实践AI辅助内容生成(如使用Diffusion模型生成纹理)、智能NPC行为控制(强化学习)等。完成一个综合性的“AI+图形学”小项目,如AI自动生成简单场景。
工程与实践5. 参与开源项目在GitHub上为知名的图形学/AI开源项目(如Blender, PyTorch, 或各类NeRF实现)提交有价值的PR。拥有被社区合并的代码贡献。
6. 持续完善技术博客与GitHub将学习过程、项目经验和思考系统性地整理成技术博客;将代码项目清晰归档至GitHub,形成个人技术名片。保持定期更新,积累访问量和Star数。

思维导图和学习路线

思维导图:

游戏引擎思维导图

学习路线图:

游戏引擎学习路线图

...全文
70 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

103

社区成员

发帖
与我相关
我的任务
社区描述
2501_CS_SE_FZU
软件工程 高校
社区管理员
  • FZU_SE_LQF
  • 木村修
  • 心态773
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧