第二人生的基功能可以定义为网络游戏、社交网络和Web2.0。作为网络游戏,它可以让人扮演角色,也就是第二人生里的居民。居民只要买到地,或者租到地后就可以建造各种各样的自己想得到的东西。比如建造游乐园,或者建造电影院,又或者建造过山车。同时,还可以实现居民在虚拟世界里飞行。
作为社交网络,第二人生里的居民可以相互结交朋友,随时可以聊天。还可以组成各种各样的组织,比如举行音乐会,可以一起跳舞交朋友等等。
作为Web2.0的功能,就是实时地交互的功能,包括媒体播放,实时语音聊天,视频聊天等等。
为了实现上面的功能,第二人生的架构是由服务器和客户端的来实现,服务器提供了保存人物对象,聊天,还不断地发送每个地图上的状态信息给客户端。第二人生在服务器上采用群服务器的方式,除了登录服务器和交易服务器外,其它大部份是地图服务器,叫Grid服务器。每个Grid服务器只管理一块固定大小的地图,听说第二人生已经有6000多台服务器在运行了,可见服务器需要处理比较繁忙的工作。客户端就相当于现在的网络浏览器,所有看到的数据都是从服务器上实时下载过来的,就像看实时电影一样,因此对客户的网络带宽比较高,最好就是光纤到户。本书后面分析的就是客户端源码,它实现了相当复杂的功能,主基于OPENGL的3D显示,还可以播放视频,进行语音聊天和文字聊天,还需要创建三维模型,上传图片的功能。客户端还可以运行脚本,编辑脚本的功能。

蔡军生先生第二人生的源码分析(2)第二人生的基本功能相关推荐

  1. 第二人生的源码分析(二十六)底层网络协议

    为了理解第二人生的客户端与服务器的沟通,那么下面就来分析一下第二人生采用的网络协议.在目前的网络里,主要有两个协议:TCP和UDP,而第二人生里是采用UDP协议.TCP协议与UDP协议的主要区别,就是 ...

  2. 源码分析 | 手写mybait-spring核心功能(干货好文一次学会工厂bean、类代理、bean注册的使用)

    小傅哥 | https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获.专注于原创专题案例编写,目前已完成的专题有:Netty4.x实战专题案例.用Java实现JVM.基于Ja ...

  3. Pinia基本使用与源码分析-手动实现部分主要功能

    基本使用 在main.js中注册pinia import { Vue,createApp } from 'vue' import App from './App' const app = create ...

  4. 第二人生的源码分析(102)脚本的构造

    前面我们学习怎么样打开窗口来创建脚本,接着下来就需要知道这些脚本是做什么用的,这样最终才会按它的语义来正确地执行起来. 现在我们能够查看脚本的内容: default { state_entry() { ...

  5. cxxtest单元测试框架源码分析(二):所有对外功能实现分析

    CxxTest的大部分诊断功能都是通过宏定义实现的,而且这部分的定义以及所有测试套的基类CxxTest:TestSuite定义和实现都在TestSuite.h和TestSuite.cpp里面.下面我们 ...

  6. php 变量存活期,php 变量生命周期:PHP源码分析-PHP的生_php

    php的最多的两种运行模式是web模式.CLI模式. 无论哪种模式,PHP工作原理都是一样的,作为一种SAPI运行. 1.当我们在终端敲入php这个命令的时候,它使用的是CLI. 它就像一个web服务 ...

  7. 微同城生活圈小程序源码系统+前后端+搭建教程

    微同城生活圈小程序源码系统功能相当丰富,做本地生活必备,拥有此套系统你就可以轻松搭建本地同城小程序了,同时源码系统也是多用户的,也可以帮助别人制作微同城小程序,盈利模式十分清晰. 开发组合:PHP+M ...

  8. 蔡徐坤打篮球and源码

    就在今天我发现我的第一篇文章: (9条消息) c++ [绝对收藏坑朋友的好东西]病毒_Tzsnb的博客-CSDN博客 的展现量 达到了120阅读量到了43(不知道看那些都是心里想着什么的人) 由于我是 ...

  9. v46.05 鸿蒙内核源码分析(特殊进程) | 老鼠生儿会打洞 | 百篇博客分析HarmonyOS源码

    寝不尸,居不容.见齐衰者,虽狎,必变.见冕者与瞽者,虽亵,必以貌.凶服者式之.式负版者.有盛馔,必变色而作.迅雷风烈,必变 <论语>:乡党篇 百篇博客系列篇.本篇为: v46.xx 鸿蒙内 ...

  10. Python游戏开发入门-蔡军生-专题视频课程

    Python游戏开发入门-2302人已学习 课程介绍         随着人工智能的复兴,越来越多AI的架构采用Python语言来开发,因此学会Python语言,就成为当下急需的技能.同时,Pytho ...

最新文章

  1. Rafy 框架 - 幽灵插件(假删除)
  2. 僵尸进程的产生,危害和解决方案
  3. 【操作系统】实验 设计一个按优先权调度算法实现处理器调度的程序
  4. 宝塔linux跑tomcat,宝塔面板环境的安装(Linux、Tomcat、Node.js、Windows等环境)
  5. 加速下载 玩转土豆网FLV视频四招
  6. python写TCP协议
  7. android游戏存档在哪里,网易安卓模拟器游戏存档在哪个文件夹的详细解析
  8. 不容错过 食材VRay材质球素材推荐
  9. Hive学习(7)pmod()函数详解
  10. ai边缘平滑_如何用PS,将图像边缘线条处理圆滑
  11. Contiki开发日记·1——Instant-contiki环境搭建
  12. 我的世界java邮箱和密码_java实现邮箱找密码
  13. 想做游戏场景建模师,如何拿到高薪资?
  14. 使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 文件
  15. 读书笔记3——《如何高效学习》:斯科特·扬
  16. 网站移至俄语服务器日期错误_se7en3_新浪博客
  17. 初试 Kubernetes 集群使用 CephFS 文件存储
  18. 我的idea偏好设置
  19. pytz实现时区的转换
  20. 企业云工如何高效居家协同办公?试试这个方法

热门文章

  1. GraphQL学习过程应该是这样的 1
  2. 模电 2个NPN管组成的恒流源电路分析
  3. 打开组策略 计算机配置,组策略命令,小编告诉你电脑组策略怎么打开
  4. 人活一辈子到底为了啥?(人生苦短 我要学人工智能)一万年太久,只争朝夕。
  5. HP ProOne G2 20-in 一体机开后盖换电池记事
  6. 计算机发展史观后感50字,《计算机:一部历史》读后感_1300字
  7. photoshop cs4 注册
  8. STM32--DSP库使用(1)
  9. 虚拟机安装ubuntu怎么全屏_ubuntu虚拟机怎么设置全屏显示?
  10. 使用python对图片进行压缩