103
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | 2501_CS_SE_FZU |
|---|---|
| 这个作业要求在哪里 | 软件工程实践第一次作业 |
| 这个作业的目标 | 确立本学期以及未来的技术学习方向和目标,制定科学可行的学习规划,了解现代文档编写工具与规范,如Markdown,Git,Xmind等。培养自主学习与系统规划能力 ,注册社区账号并养成社区互动、文档编写、时间管理的职业习惯 |
| 其他参考文献 | 思维导图Xmind官方手册 ,Markdown菜鸟教程,学习路线参考,引擎开发路线参考,竞赛路线参考 |
高中毕业填报志愿的时候,我其实对“软件工程”这个词只有一个模糊的概念。选择软件工程这个专业,原因其实挺简单的。首先是觉得“酷”。看到电影里的黑客飞快地敲击键盘,屏幕上滚动着神秘的代码,就能做出很厉害的事情,觉得特别帅。虽然知道现实没那么戏剧化,但那种“用代码创造事物”的感觉非常吸引我。其次是觉得实用。无论是手机上的APP,还是电脑上的软件,都离不开编程。学这个感觉能掌握一门实实在在的技能,将来应该挺好找工作的,而且薪资也不错。最后就是自己喜欢打游戏,有时候会想“要是我也能做出一个小游戏该多好”,这种小小的创造欲也是推动我选择这个专业的原因之一。
所以,在入学之前,我心目中的软件工程,差不多就等于“学习怎么写代码做软件”。
在接触正式的《软件工程实践》课程之前,我对软件开发的认知主要来源于之前的编程基础课程和小型的课程设计项目。而在大一,二的算法设计比赛中,因为过于专注简单解决轻小规模问题,更加深了我对实际工程项目开发的误解,陷入了软件工程只是简单代码实现逻辑的误区
我接触的第一个真正意义上的工程项目,是用C++编写一个基础的3D渲染器。这次经历如同一面镜子,清晰地映照出我对软件工程的稚嫩认知。开发初期,我完全延续了算法竞赛中的思维惯性——执着于“纯手工打造”。不仅将所有代码粗暴地塞进单个.cpp文件,更拒绝使用任何外部库,坚信“自己实现所有功能才是真本事”。随着功能增加,一个2000行的.cpp文件迅速膨胀成庞然怪物,而当需要矩阵运算时,我花不少时间手写了一个充满BUG的矩阵类,更进一步,我根本无法实现渲染方程的计算过程,运行时间更到猴年马月
这场“初见”的惨痛教训,彻底击碎了我对软件工程的浪漫幻想:它让我深刻理解:软件工程不是关于“写代码的艺术”,而是关于“控制”和“管理”的科学,当我接受现实,引入OpenCV和Eigen等相关库,学习CMake的用法并将代码合理拆分,那个曾经支离破碎的渲染器竟奇迹般跑通了
在后续的实践中,我深刻认识到缺乏理论指导的实践是盲目的,而脱离实践的理论是空洞的
我的学习重心不仅仅是“如何使用工具”,而更多开始研究“如何创造工具”,只有这样才能拿出更好的作品,核心逻辑是 “理解本质”,在浏览许多关于游戏大厂招聘的经验贴时,我发现基础理论的重要性,意识到实践与理论研究与创造融合的重要性
在持续探索的过程中,我逐渐认识到一个关键转变:学习不能局限于课堂内的知识传授,更需要主动对接行业发展趋势,并选择与之匹配的方向进行深度钻研。在技术实践方面,我选择企业中游戏引擎开发流程作为学习方向,学习使用Git进行团队协作开发。
最近AIGC技术的迅猛发展,为我的技术认知注入了新的维度。它让我意识到,现代技术开发已经进入了一个新阶段:创造力不再局限于人类的主观想象,而是可以通过人机协作的方式得到延展和增强。在实际项目中,我开始尝试使用AI工具辅助开发流程:通过ChatGPT快速生成Shader代码框架,利用Stable Diffusion生成概念原画和纹理贴图。扎实的理论基础保证技术深度,工程实践能力确保项目交付质量,而对AIGC等新技术的应用能力则成为差异化竞争优势。
目前,企业越来越看重候选人的综合能力——既要能快速融入工业化生产流程,又要能利用新技术创造业务价值,这正是我持续努力的方向。
我的长期目标是成为一名精通AI算法的游戏引擎架构师或前沿游戏AI研究员,致力于推动游戏向更智能、更沉浸、更自适应的方向发展。我对游戏的愿景不再是简单地使用现成工具,而是研发下一代游戏开发范式,用AI加速开发,为游戏赋能。在当下游戏行业,AI已大展身手,以AI,游戏融合的目标为立足点也不再是天马行空的幻想
计划在未来攻读计算机图形学、人工智能方向的硕士学位,进入学术界或工业研究院深造,在神经渲染,生成模型等前沿领域进行探索,为前沿领域打下深厚基础,深入探索如何使用AI为游戏赋能。
不断跟进补充项目经验,不断提升代码能力,并积极参与实习,结合相关引擎、技术美术(TA)团队或AI Lab等就业方向制定行动方案,积极提升自己。
| 学习模块 | 具体学习内容 | 学习资源 |
|---|---|---|
| 引擎基础 | 1. Unity界面与工作流 2. 场景管理与 GameObject/Component 概念 3. 预制体创建与使用 | Unity官方手册 B站Unity入门教程 |
| C#脚本编程 | 1. MonoBehaviour生命周期 2. 玩家输入控制 3. 刚体物理与碰撞检测 | 《Unity游戏设计与实现》 |
| 版本控制 | 1. Git基础命令 2. .gitignore配置 3. Unity项目版本管理 | GitHub官方文档 |
| 学习模块 | 具体学习内容 | 学习资源 |
|---|---|---|
| UGUI系统 | 1. Canvas渲染模式 2. RectTransform锚点系统 3. 按钮交互与事件监听 | Unity UGUI教程 |
| 美术资源管理 | 1. Sprite导入与设置 2. 图集打包与优化 3. 图层排序与管理 | Unity2D教程 |
| 音频系统 | 1. AudioSource组件使用 2. 音效管理与播放 | Unity音频系统文档 |
| 学习模块 | 具体学习内容 | 学习资源 |
|---|---|---|
| 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文档规范 |
| 领域 | 任务项 | 关键内容/目标 | 期望 |
|---|---|---|---|
| 图形学与引擎底层 | 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数。 |

