基本上现在大部分引擎都使用C++语言,主要是因为C++硬编码的运行效率高,另外还加入了一些脚本语言来编写一些与游戏相关的逻辑内容。
其实实用的技术比较分散,很麻烦,结构很重要。楼主可以找书。让我以 ui 引擎为例。
首先需要写一个抽象的2d渲染器接口,这样可以方便的和其他3d引擎结合,其他2d渲染器如gdi、ddraw、opengl等,这是第一步
二、构建你的ui机制,一般使用委托,消息事件机制,并实现
第三,资源管理,这是最麻烦的,你需要管理你的图片资源,自定义ui表单资源脚本格式,管理字体。字体渲染也很重要制作3d游戏要学什么软件,不过现成的东西很多,比如dirctx中提供的就不错,但是如果是跨引擎跨平台,freetype就很好了。
四、编写控件,实现一些常用的控件
第五,写一个简单易用的界面编辑器,这对提高策划美术的工作效率非常重要。
3D引擎相对麻烦,主要是渲染器(最好抽象成一个接口,方便以后移植,比如从dx9移植到dx10,或者opengl),场景图(用到一些空间数据结构,比如八叉树,bsp等等,一般绘图书上都有)、地形系统、动画管理(顶点动画、骨骼动画等)、粒子特效管理、资源管理,是不是很麻烦?另外,3D引擎必须要写很多工具,动画编辑器3D动画,场景编辑器制作3d游戏要学什么软件,地形编辑器,模型动画3ds导出插件等等...
还有网络引擎。您需要自定义一个网络接口,方便开发者开发。基本上如果想封装的好一点,差不多会实现一个web服务。我使用了点点滴滴的技术。另外,数据库开发部分要做好,分段。
然后是服务端和客户端的游戏程序架构。架设好这些架子后,聚集程序员、策划师、美术师3D植物,协同发展。
先说说吧。