游戏程序员眼中的计算机体系
+-------------------------------------------------------------------------------+
| Software Architecture Principle(L10) |
+-------------------------------------------------------------------------------+
+-------------------------------------------------------+ +--------------+
| App / Game / Game Engine(L8) | | |
+------------+------------------------+-----------------+ <====> | |
| GUI(L4) | DB(L5) | Network(L6) | 3D API (L7) | | Programming |
+------------+------------------------+-----------------+ <====> | Languages |
| System API(L2) | Compiler & Linker(L3) | | (L9) |
+-------------------------------------------------------+ <====> | |
| Hardware/Operating System(L1) | | |
+-------------------------------------------------------+ +--------------+
- CPU Architecture
- Embedded System Development
- Kernel Developer
- Windows / Android / OpenBSD / Debian
- Roadmap
- clang / llvm
- [fatcc], a experimental C compiler implementation
- [fatjvm], a experimental Java VM implementation
- [fatclr], a experimental CLR & C# implementation
- Desktop / Mobile GUI framework
- WPF
- [fatwpf], a cross-platform WPF implementation
- data storage layer
- database fundamental, e.g. transaction
- sqlite
- mysql
- mongodb
- TCP/IP stack
- libuv
- zmq, ZeroMQ Demystify
- DirectX 9 / 11 / 12
- OpenGL / OpenGL ES
- Vulkan
- fatdemo, a simple render framework for algorithm testing
- fatengine, a product-ready 3dengine
- fatserver, a distribute multi-process game server
- [fatmonkey], a RenderMonkey implemtation using [fatwpf]
- [fatterminal], a SecureCRT-like terminal manager
- Native: Assembly, C, C++
- JIT: C#, Java
- Scripting: Python / Lua / Pypy / Luajit
重剑无锋,大巧不工。
参考资料
2020.09.09
重构了整个技术路线图,操作系统加入 Android,随身的手机就是一个可以把玩的 Linux 系统。编程语言加入 Java,方便研究 Android。
《Road To the Kernel》有空再继续,将精力集中在游戏客户端技术上。将服务端技术作为业余项目,比如:fatserver、database,有空再研究。
游戏客户端路线图
- 目标:所有依赖技术,自我打造
- fatengine, 用来做做小游戏、小demo
- [fatwpf], 跨平台 WPF 实现,绑定到 .net core,用来写 GUI app(游戏编辑器、Profile工具等等)
- fatengine 中的 in-game GUI 会用 xaml 来做布局,内嵌一个 [fatwpf-lite]
实验性质的项目,不知啥时候会启动
- [fatcc], 一个简单的 c compiler, just for fun~
- [fatjvm], 参考 android ART vm, just for fun~
- [fatclr], 参考 Shared Source CLI, just for fun~
- [fatmonkey], AMD 经典的 RenderMonkey
- [fatterminal], 实现自己的 terminal manager, using WPF
2018.11.26
最近在填自己挖的坑《Road To the Kernel》,和顾QQ吹牛说:
从 CPU 到 OS,
从 assembler 到 compiler,
从 filesystem 到 database,
从 TCP/IP stack 到 game server,
最后再到 zookeeper/hadoop/spark。
全部撸一遍,打通整个计算机体系的任督二脉。
顾QQ不屑:"你丫是个理想主义者。"
就理想一次吧。:-) 索性把"个人技术体系refactoring"的战线扩大。
《The Big Computer System》,我的计算机系统 hack 之路。Just for fun~