Giter VIP home page Giter VIP logo

dreamtowards / ethertia Goto Github PK

View Code? Open in Web Editor NEW
150.0 150.0 15.0 411.05 MB

A Sandbox Survival Game with Vulkan, PhysX, C++20. aims to be "Minecraft + GTAV + VRChat"

Home Page: https://docs.ethertia.com

License: Other

CMake 0.81% C 13.65% Objective-C 0.39% C++ 83.30% GLSL 0.04% GSC 0.01% Python 0.50% Lua 0.01% Shell 0.05% Makefile 0.94% Starlark 0.02% Meson 0.01% Go 0.01% Batchfile 0.03% JavaScript 0.01% Perl 0.01% Dockerfile 0.01% Assembly 0.05% Objective-C++ 0.17% Kotlin 0.01%
cplusplus game-engine gamedev isosurface voxel vulkan

ethertia's People

Contributors

dreamtowards avatar kmroiosn avatar snownf avatar thaumstrial avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

ethertia's Issues

策划案整理 目标方向

内容与方向:

  1. 建筑&灵活
    这是我们的最大特色,世界上有各类游戏 但大多不能破坏建造。如果我们游戏只有程序 没有地图。玩家自动生成/下载/制作地图。他们可以发布自己的地图,做他们想做的,那是我的希望。建造朋友之间的小城镇 火车地铁,加入剧情模组 做他们的剧情。在与世隔绝的壮阔海岛生存。
  2. 生存
    yep我们喜欢生存。种田 养殖 挖矿 合成 洞穴家 烹饪,探索 ..
  3. 交互
    vr的支持,动作追踪 自定义人物。开载具 聚会,去剧场 演唱会 电影。和好友胜地旅游 探索。

技术上:
重要的是内容 质量 '灵魂',而不是什么具体的技术。
这里用C++开发 不依赖现有游戏引擎 图形用OpenGL,依赖一些良好的外部库

  1. 为什么不用UE或Unity, Godot等游戏引擎
    用引擎: "精力是有限的 如果你不把精力放在内容而是程序系统上,你可能还没做出来就破产了。" 这是对的 善用工具高效达成目标。但是,反观现在的大型游戏总是有他们自己的引擎 R星的RAGE引擎,Ubisoft的CryEngine,最终幻想的CrystalT, Luminous引擎。有时我觉得 如果用UE Unity,做了半天 其实我不知道我到底做了什么,我觉得Unity就像一款游戏,我还是在玩。如Chrono所说 就像用一些电影制作器 选一些预设做出来的电影。
    然而如果用我们自己的程序系统,他是紧凑的,他是有名头 有希望的。我们可以依赖于它。他是有意识的 知道自己在做什么 底层逻辑,而不是analogy类比模仿。
    当然有很多凭借UE Unity做出的成功游戏,VRChat,miHoYo。他们凭借引擎基础和自己的内容,快速地做出了优秀的效果。祝他们好运。但对于我们 引擎也是一个信仰支撑,我们要紧凑 可控 灵活 控制所有。

  2. 图形用 OpenGL ? Vulkan ? DirectX ? Metal ?
    目前用OpenGL。虽然Vulkan / DX12是时上潮流,但在开发资源有限的情况下 尚没必要,性能差距不会太大 核心方法(shaders)也不会变太多 而复杂度却会大大增加。OpenGL也可以让更多人接受 mod及开发人员。所以以后或许会用Vulkan,但现在似乎还无必要。
    由于跨平台,而且在意api设计风格,暂不会考虑平台依赖/独享的dx metal。
    无论如何,图形的核心应该是 概念与图形算法shaders,框架其实也不依赖太多。

  3. 你说的建筑功能的预期效果?用什么方法/技术 实现它?
    如果你记得Minecraft,是的 它每一个方块都可以被破坏与放置 没有一个例外。如果你记得GTAV 他的细节程度 与物理功能性。
    如果将他们结合。我知道你在想什么 ”这不可能 荒谬“。如果你可以在洛杉都的山里挖个洞穴造家 重造城市;建造新的岛,生存。探索新地形。
    技术上,

  4. 我们用传统Uniform Grids体素 造地形。(区块存的是unifg而不是octree 因为复杂度和不必要性. 之所以用unifg而不是sdfs csg 虽然后者可以精细,但前者有操作直觉和操作灵活度 which is 相当重要的)
    1. 平滑地形 用 SurfaceNets的isosurface算法。作出平滑地形 (SN比marchingcubes的顶点数量少3-12倍 且原生支持LoD,DC需要梯度数据不适用UnifGrid结构体素)。
    2. 自定义轮廓 方块 柱子 octree雕刻等。也都是自动材质渲染。

  5. 小摆件/装饰性物品 比如火把 灯 桌子这些有自定义网格和材质的模型。可作为实体或Voxel烘培。

  6. Spline生成模型 比如铁轨 马路 栏杆

The license needs work

https://github.com/Dreamtowards/Ethertia?tab=License-1-ov-file#readme

The part in english: // Copyright (c) Eldrine Le Prismarine (https://elytra.dev/~pris) and other core Contributors.
// Do not distribute without permit! this is not an open source license.

is fine. If it is not an open source license, then explain what it is. What is the intent with putting this all on github if you don't want people to fork it and use it.? I've actually not seen someone put it all out there and want to trust that the proprietary license txt is enough guidance legally on what someone can or cannot do with this. Why not add a GPLv3 license and then you really can expect that other than indie game devs, no one working for any company will try to take code because lawyers don't understand GPL copyleft and business people don't like the copyleft provision. An alternative is something like the JUCE license https://juce.com/legal/juce-5-license/ ... really it's a EULA, which maybe another approach (but you need a lawyer to structure contracts the right way).

0.0.3.1 op viewmatrix, unity+blender-mc like camera operation in editor mode

现在需要一个独立于player的,独立控制的camera 操作器。

因为如果像mc或大部分游戏那样 依赖于gameplay的player或target-entity才能操作camera,那么在调试时 / 暂停游戏时 是不是就不能/难以操作camera了?

因此希望能独立于gameplay地 单独地操作camera,特别是在Editor中,game暂停的情况下


如何安排开发目标? 每个版本针对一种功能 还是全面功能开发?

如题, 我在思考, 应该如何组织开发目标/版本内容

应该像这样 0.1.0: 建筑, 0.2.0 游戏性/生存 0.3.0 渲染,这样的专门针对性更新吗?这样的话 可以根据功能重要性来安排 aka要事第一,比如我们最大特色是 建筑和自由性,所以我们把最重要的 建筑放在最早/第一位。但是这样的缺点是 我们并不能在一开始就做得好 比如我们可能一开始会把建筑做的一团糟 根本体现不出什么 结果这还是核心功能 一旦发布这岂不是让人大失所望。

还是说 应该全面平均缓步更新?我觉得这可能更可行 毕竟上面那样 一种功能并不能一下做得足够好的 这是要依赖于程序系统和开发团队。mc早期就是‘平均’缓步更新。虽然这样可能缺少针对性/目标性,但是更可行 可以出一个成品

[Bug] OSX run failed

I just tried the pre-released version. And I got some errors, see below, with my macbook pro.

Reason: tried: '/Users/dreamtowards/Documents/YouRepository/Ethertia/run/bin/darwin-x64/libBulletDynamics.3.25.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/dreamtowards/Documents/YouRepository/Ethertia/run/bin/darwin-x64/libBulletDynamics.3.25.dylib' (no such file), '/Users/dreamtowards/Documents/YouRepository/Ethertia/run/bin/darwin-x64/libBulletDynamics.3.25.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/dreamtowards/Documents/YouRepository/Ethertia/run/bin/darwin-x64/libBulletDynamics.3.25.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS@rpath/libBulletDynamics.3.25.dylib' (no such file), '/Users/dreamtowards/Documents/YouRepository/Ethertia/run/bin/darwin-x64/libBulletDynamics.3.25.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/dreamtowards/Documents/YouRepository/Ethertia/run/bin/darwin-x64/libBulletDynamics.3.25.dylib' (no such file), '/Users/dreamtowards/Documents/YouRepository/Ethertia/run/bin/darwin-x64/libBulletDynamics.3.25.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/dreamtowards/Documents/YouRepository/Ethertia/run/bin/darwin-x64/libBulletDynamics.3.25.dylib' (no such file), '/usr/local/lib/libBulletDynamics.3.25.dylib' (no such file), '/usr/lib/libBulletDynamics.3.25.dylib' (no such file, not in dyld cache)

CPU: Apple M2Max
RAM: 64g
OS: Ventura 13.2.1

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.