Giter VIP home page Giter VIP logo

dynaverse's Introduction

Dynaverse

差不多把 Croquet 相关的论文都读完了。这是迄今为止我所知道的与 Metaverse 有关最疯狂/伟大的想法。

开始着手组建有能力追逐这些目标的团队。

最近在读《游戏引擎架构》,里头提到「典型游戏团队的结构」,这是导致我写下这则备忘录的主要原因。

愿景

在动态媒介(Dynamic Media) 创造出的自由空间里, 人们彼此之间的协作与理解被深度促进

使命

构建 互联网规模、深度协作、动态可生长的 Metaverse

关于 Dynaverse

语词的意义是其使用者共同的观点赋予的 -- 维特根斯坦

我是在个人计算社区的传统背景下使用 dyna 一词:

  • Dynabook
  • Dynamic Media
  • dynamic object-oriented programming
  • Dynamicland

已注册域名: dynaverse.live

live: live programming

团队构成(正在组建中...)

  • 图形学 (Teapot)
  • 通信协议 (TeaTime)
  • 引擎设计
  • 3D 建模
  • 创意
  • 写作
  • ...

欢迎你的加入!

我们希望团队成员深入个人计算(Personal Computing)的历史(Smalltalk/Alan Kay 是很好的入口),深入了解 Croquet 项目。

我们期待你是以下项目(之一)的狂热爱好者:

  • Smalltalk
  • 图形学
  • LISP

基础工作

  • Squeak/Smalltalk
    • Morphic
      • 递归渲染树
    • Tweak
      • Island
      • Asynchronous Messaging
      • Players and Costumes
      • Tile Scripting
    • Croquet
      • Teapot
        • 半保留的模型(semi-retained model)
        • 对象是递归的计算机,每个对象都保留完全访问 OpenGL 库的能力
      • TeaTime
        • 复制版本对象(replicated versioned objects)
        • 同步事件而不是状态
  • Qwaq 源码
  • Lively
    • 在浏览器环境里构建 live programming 环境
  • OMeta/Ohm
    • 脚本语言(Python/JavaScript/Lua/Smalltalk)
  • WebGPU/WebGL/WebAssembly/...

与主流的交叉点

  • OpenXR/WebXR
  • threejs/aframe
  • glTF
  • Blender
  • ...

Logo

考虑以下元素

  • 梯子画云
  • 齿轮与细胞
  • 雅典(Athens)

推荐阅读

参考项目

FAQ

在哪儿讨论?

github issue

目前的项目状态是怎样的?

还处在准备阶段,我目前致力于梳理出相关资料,感兴趣的同伴可以据此起步。

希望围绕 Alan Kay、Smith... 过去的工作,形成一个有深度的讨论社区。 Alan Kay 将他的大部分工作成果,都归源于当时他所处的那个讨论团体。

你目前在做什么?

我目前在写一篇文章《Dynaverse: A Metaverse for Children of All Ages》, 向 Alan Kay 在 1972 年写的 A Computer for Children of All Ages 致敬。

首先,致力于勾勒出愿景,描述在这个想象的世界中,人们如何生活、学习、娱乐、工作、创造...

之后,讨论为了实现以上场景,需要设计怎样的体系架构。 论述为何当前的技术是足以实现它的,为何现在是合适的时机。

最后,做出成本预估。

如何入门Smalltalk

一些推荐资料:

如何阅读 Croquet 源码

建议以建构主义式的学习方法(Smalltalk的设计深受其影响)

去跟对象(Objects)玩耍,把它们看作你房间里的玩具,推一推它,堆在一起试试...

目前的文档不多(Croquet Programming 1.0B几乎是仅有的),可以通过测试(tests)代码去理解对象。

技术选型

暂定:

  • WebXR
  • WebGPU
  • Lively

dynaverse's People

Contributors

wwj718 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

dynaverse's Issues

Proposal: 当前打造 Dynaverse/Metaverse 世界的一点看法

Dynaverse: 万物皆动,名称不错!

完全同意如今的所谓“元宇宙”概念只不过是把游戏的关卡(故事)设计放入到游戏世界中而已,想跳出去,穿越到另一个公司的游戏世界里,对不起,鄙公司才是正宗元宇宙,为了保护用户您的安全,老实待着。

但是对于 Croquet 我有不同的看法。不过,首先让我阐述自己关于元宇宙的一些想法。

在我眼里,元宇宙也许是下一代互联网的标志。如今的互联网打通了信息交互的通道,随着个人创作的盛行以及VR/AR的出现,进而才有了metaverse概念的出现。

不过如同最开始互联网Web浏览器的出现一样,从最简陋的文本Web浏览器(lynx),到图形界面的Web浏览器,再到有脚本交互多媒体Web浏览器。而这次则是metaverse 浏览器,其根本是协同创作展现不同虚拟世界,在不同的世界中自由创作与穿梭。

Web浏览器的网址是网页的地址,而metaverse 浏览器的网址则是各个虚拟世界的网络地址。
Web浏览器的超链接在metaverse 浏览器中则是虚拟世界里面的传送门。

而要打通不同的虚拟世界,在不同的虚拟世界之间进行穿梭,那么需要更多的关于世界(数据)的约定(规范):

  • 世界数据约定 World Data
    • 环境 Environment
      • 空气 Air(成份 component, 毒性 poisonous), 气压Air pressure, 温度Temperature, 湿度 Humidity, 重力 Gravity...
      • 陆地 Land: 平面 Plane, 球形 Spherical
        • 世界的大小 Size of Land: (x,y,z)
      • 液体 Liquid: (maybe only need the material melting point table)
    • 事物 Thing
      • 物质的元素表 Periodic Table of Elements
        • 密度 density
        • 熔点 liquefaction temperature(melting point)
        • 气化温度 vaporization temperature(becoming gas)
        • ...
      • 物品 Material(Non-living)
      • 生物 Living
        • 植物 Plant
        • 动物 Animal: Player: Human&Computer(NPC)
  • 世界数据安全与授权认证 World Data Security&Auth
    • 基于 OpenPGP 的公开密钥数据加密 Data Encryption via OpenPGP
    • 基于签名链的零信任体系 Zero Trust System Base on Signature-Chain
    • 无密码身份验证架构 Passwordless Auth Schema
      • 无缝传送到其它游戏世界服务器 Ingame Transport to another server seamlessly

要想打通不同的虚拟世界,成为业界标准,那么metaverse 浏览器项目本身必须是开放和开源的,并且是简单的:易于开发和使用的。这样的项目永远也不是一家公司所能打造出来,例如,互联网永远不可能作为一家公司的消费品出现。互联网在非商业研究文化中孵化了数十年. 当一个价值万亿美元的产业围绕它发展时,核心协议中嵌入了一套核心价值观(去中心化、人人平等),并且今天仍然被认为是值得为之奋斗的理想。

如今互联网常规的登录认证方式是以密码为主,但是该方式存在极大的问题,首先安全性依赖于口令,其次是口令的唯一性:不同的站点登录需要不同口令,
而且口令不能记录(审计)用户行为(任何有数据库权限的人员都能随意篡改用户行为)。而目前2FA以及WebAuthn认证机制做到的也只是提高了安全性。
并不能有效解决唯一性和审计问题。

其次metaverse 浏览器需要适应各种不同的计算环境(跨平台,跨设备),而不是象普通游戏那样,必须满足最小配置方能运行。
换句话说,底层的渲染引擎应该也是自适应的(当然不仅仅是渲染,物理引擎和AI生物引擎也应该是自适应的),能够自动切换渲染类型以便适应不同的计算环境(甚至可以将3D作为2D渲染):

  • 像素类型(集成显卡)
  • 动画类型(中低端显卡)
  • 真实类型(中高端显卡)

不过,目前我还没有看到类似的游戏(渲染)引擎能完全满足我的需求。

好了现在回到 Croquet,在我看来它充满了浓浓的学术研究味,它是在为未来做实验研究准备,而不是为现在,从它的使用环境来看:

  • Hardware is fast
  • 3D Graphics hardware is really, really fast and getting
    much faster.
  • Croquet has been focused on high bandwidth collaboration
    from its inception

这怎么让现在互联网的大多数人愉快的玩耍,尤其是欠发达地区,这符合互联网人人平等的宗旨?当然作为研究是没啥的。

就语言来说,越通俗的,使用的人越多的,找到人的可能性越大,越生僻的越难找到人!现代面向对象语言从 Smalltalk 中吸取养分,Smalltalk因缺乏标准而没落,不过,就研究来说选 Squeak 无可厚非。

当然,在Croquet以及 dynamicland 中许多好的理念可以吸收,利用。但是直接用,那么就不是在做一个现阶段让人人都能玩得起的东西。

就游戏来说,目前尝试协同创作的沙盒游戏最成功的是像素《我的世界》,它欠缺的就是分享世界比较麻烦,而且在《我的世界》中穿越不同的世界也都不可能。
在我看来Roblox的创作方式还是太复杂,Roblox成功之处在于它的作品分享以及商业模式。

而在开源中,最成功的目前是《minetest》,类似《我的世界》,而与之不同的是,它的目标是希望作为开发各类像素沙盒游戏的引擎,而非游戏。它的一个重要特点是跨平台设备,不挑机器显卡。脚本引擎用的是lua。利用它,可以快速做一些原型验证。

我目前正在基于《minetest》,开发《minetest教育版》对标的是《我的世界教育版》,为啥用《minetest》,就是因为它不挑机器显卡,再老的机器也能跑,这样对贫困山区的教育也会有帮助。当前已经完成了一个集时间管理和挑战为一体的功能模组: Quiz. 我正在思考的是如何用文本描述的方式去创建世界(而不是在游戏世界里堆砖),以此来降低创建世界门槛,让教案更符合教师的习惯,更便于阅读修改.

如果希望快速玩原型验证,minetest是一个不错的起点,尽管它的内部存在大量待解决的问题:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.