可可西

游戏程序员修炼之道

参考书本的理论及互联网的海量信息,使用工具进行庖丁解牛,在项目或示例的实践中进行验证,最后沉淀总结成文转换成自己的知识体系与经验。

理论与实践相结合,夯实基础,循序渐进,不求甚解,融会贯通,及时总结并与人分享!

 

工具

操作系统:windows服务(任务计划)、windows命令、批处理、visualbasic script

数值算法:excel、matlab、spss

数值可视化:PhysX Visual Debugger(PVD)、processing

图形图像:Deep Exploration、meshlab

图片:ImageMagic、gifski、ScreenToGif

视频:FFmpeg

shader:RenderMonkey、FX Composer、OpenGL Shader Designer

商业渲染器:RenderMan、V-Ray、mental ray

开源或免费渲染器:LuxRender、Cycles、Mitsuba、pixie、OptiX

地图:arcgis、google earth、baidu map

Plugins与宏(windows资源管理器插件、vs等IDE插件、调试器插件、Office插件、Unity等编辑器插件、UE编辑器扩展、Web浏览器插件、3ds max插件、ps插件)

版本控制工具:svn、git、perforce

文本编辑器:notepad++、vim、Source Insight

IDE:vs系列、eclipse、xCode、android studio、rider、monodeveloper、vscode

编译器:clang、llvm、gcc、cl

make工具:cmake、makefile、nmake、qmake

构建工具:Jenkins

打安装包:NSIS

自动化测试:协议模拟、gui鼠标键盘点击

编码规范检查:clang-format、Cpplint

代码静态分析:TscanCode(支持c++、c#、lua)、PVS-Studio(支持c++)、Klocwork(支持c、c++、c#、java)

调试器:gdb、lldb、windbg、OllyDBG(开源)、x64dbg、IDA、Cutter(开源)

窗口消息:Spy++

图形调试:gpa(Graphics Performance Analyzers)、PIX、RenderDoc、gDebugger、nVidia Nsight、PerfStudio、Adreno Profiler、Qualcomm snapdragon、Mali Graphics Debugger、Nsight Tegra、PVRTrace、Radeon GPU Profiler、XCode、Visual Studio 2013+

逆向修改:Resource Hacker

性能分析工具:wiki

cpu工具:函数调用   Intel VTune Amplifier XE、gprof(原理是通过开启某个编译选项对函数进行插桩,来统计函数的耗时)、FramePro 

cpu缓存:CacheSim、Arm Streamline(Cache分析)

内存工具:Instruments、valgrind、MemPro、内存泄露

网络工具:Fiddler、wireshark、CurrPorts、TCPView、Clumsy(windows弱网模拟)

系统工具:SysinternalsSuite、Process Explorer、Process Monitor、DebugView、vmMap、RAMMap、fraps、API Monitor

音频工具:Wwise、Fmod

模拟器:Android模拟器(Android SDK emulator、腾讯手游助手网易MuMu雷电夜神天天)、街机游戏模拟器(如:fba、mame)

程序化生成(PCG):Houdini、World Machine、World Creator、QuadSpinner Gaea、Terragen

美术工具:

    (1) 建模:3ds max、maya、Blender、Silo

        雕刻类:ZBrush、Mudbox、modo

       衣服建模:Marvelous Designer

    (2) 贴图:Photoshop、Modbox、Bodypaint、Mari、Substance Painter、Quixel Suite、Zhrush

    (3) 展UV:unfold3d 、Unwrap Tools等独立软件,max插件

    (4) 材质:Substance Designer

    (5) 动作:3ds max、maya

    (6) 特效:Houdini(PCG)

    (7) UI:photoshop、Flash CS

    (8) 合成:Photoshop、Nuke、AE、Marvelous Designer、XNormal、UVLayout、 Crazybump、SETUNA、HDR light Studio、Poser Pro

    (9) 渲染出图:VRay、Arnold、Mentalry、Keyshot、Marmoset Toolbag

 

性能优化

磁盘 --> 内存显存--> CPUGPU

编辑器profiler工具、引擎性能相关命令

低崩溃率(崩溃、异常、log收集)

帧率优化(cpu、gpu)(关核、降频)

CPU优化(热点函数)

卡顿优化(Hitches)

内存优化(内存泄漏、内存占用、内存碎片)

网络优化(减少带宽占用、提升网络下载速度)

资源句柄泄漏

IO优化(减少游戏启动时间、提升IO加载效率、UI响应时间)

发热优化(限帧)

画质优化(场景、人物、武器、载具)

安装包大小优化

安全防护(代码、协议、日志、资源、内存加解密、代码混淆)

 

游戏引擎

Unreal Engine、Unity3D、Cocos2d-x、CryEngine

三个阶段:编辑(Edit)、烘培(Cook)、游戏运行时(Runtime)

----------------------------

编辑器

Script(脚本)

类型系统

对象模型

引擎框架(游戏启动、游戏循环、游戏退出)

渲染管线流程

GamePlay框架

Tick

Timer

GAS(Gameplay Ability System)

UI框架

多线程并发

SpatialOS(分布式DS)

内存分配器(Allocator)

异步加载(Async Loading)

GC(Garbage Collection)

蓝图(Blueprint):Level Blueprint、Blueprint Class、UMG(Widget Blueprint、UserWidget)、Animation Blueprint

LOD(Level Of Detail):mipmap、静态模型、骨骼模型、特效、材质、HLOD(Hierarchical LOD)、Bill Board、Imposter、Backdrop

Streaming:Texture Streaming、Level Streaming、World Composition、Mesh Streaming、LOD Streaming、Package Streaming

ViewDistance:视觉距离(距离相机多远开始绘制模型)

LightMass

光照(Lighting)& 阴影(Shadow)

渲染流程

渲染技术(SSS次表面散射等)

后处理(Post Process)& 效果(Effects)

Foliage(植被)、speedtree(树)、UE4 Procedural Foliage Tool(程序化植被工具)

Terrian & Landscape(地形和地貌)

Water(水体)

TOD(time of day)

碰撞检测(Collision)、物理引擎(physX、box2D、Chaos)

APEX(布料和破坏)

Bink(视频过场)

Loading Screen(过场Loading)

文件资源管理、资源打包(Package、asset文件格式、pak文件格式、Cook烘焙)、微端机制

网络同步:状态同步、帧同步

机型分档(DeviceProfiles、Quality、Scalability)

VR/AR、Stereo 3D

AI(Artificial Intelligence) & 导航网格(Navigation System) & 行为树(Behavior Tree) & EQS(环境查询系统)

材质(Material) & 贴图(Texture)

静态模型(Static Mesh) & 骨骼模型(Skeletal Mesh)

模型简化:Mesh Simplification  & Skeletal Mesh Simplification

相机(Camera)

骨骼动画 & 动作树(Animation Tree) & 动作状态机(Action State Machine) & Motion Matching

matinee动画 & Leve Sequence

FaceFX(脸部表情)

音频

粒子FX(Particle System、Niagara)、decals(贴花)、雾(fog)

UI系统(大厅系统、游戏Hud、Slate、UMG、图集、字体Font)

本地化(Localization)

控制台命令(Console Command) & Profiler工具

输入(Input)

配置:ini、datatable、stringtable

 

逆向分析

hook、API截获

PE工具:PE-Explorer

钩子工具:api-monitor

反编译:.NET Reflector

资源破解:UnityAssetsExplorer、UnityStudio、AssetsBundleExtractor

内存修改工具:Cheat Engine

加减速:变速齿轮

输入模拟:按键精灵

 

开源

irrlicht、klayge、bgfx

mono

chromium

 

渲染

管线

Direct3D(8、9.0c、11、12)

OpenGL(1.1、1.3、1.4、1.5、2.0、4.3、4.4、4.5)

OpenGLES(1.0、1.1、2.0、3.0、3.1、3.2)

Vulkan(1.0、1.1)

Metal(1.0、1.1、1.2、2.0、2.1、2.2、2.3、2.4)

WebGL(1.0、2.0)

shader(HLSL、GLSL、MSL、CG)

Real-Time Rendering、PBR、Ray Tracing、数字图像处理

SIGGRAPH paper

GDC

 

语言层

x86/x64汇编(SSE指令集)、arm汇编(Neno指令集)、IR字节码、.net字节码、java字节码、unrealscript字节码

SIMD:Single Instruction Multiple Data,即单指令流多数据技术,SIMD 的概念是相对于 SISD(Single Instruction Single Data,单指令流单数据)提出的。SIMD 技术最初通过将 64 位寄存器的数据拆分成多个 8 位、16 位、32 位的形式来实现 byte、half word、word 类型数据的并行计算

C、C++、C#、VB、Java、unrealscript

lua、python、perl、go

bat、linux shell、vbscript

html5、javascript

跨语言互操作

系统库(crt)、函数库(stl、loki、mfc、qt、scaleform、cgal)

代码整洁、框架设计、设计模式、uml

代码重构、代码自动生成、自动化测试

数据结构、算法(计算几何、场景管理索引方法、导航网格生成、垃圾回收、碰撞检测、物理模拟、遮挡剔除等)

 

系统层

Windows、Android、iOS、macOS、Linux

驱动、输入法

虚拟机、编译器、web浏览器、web服务器

多任务(进程、线程、协程)、内存管理(内存泄露、内存碎片)、文件管理、IO管理

计算机网络(tcp、udp / rudp、http、p2p)

com(ActiveX)、.net框架、垃圾回收机制、flash

 

硬件

cpu、gpu(cuda)

 

支撑学科

英语、数学、物理等

 

posted on 2017-05-31 15:08  可可西  阅读(1138)  评论(0编辑  收藏  举报

导航