Code Monkey home page Code Monkey logo

tides-of-revival's Introduction

Tides of Revival

Tides of Revival, or Tides for short, is, put as succinctly as possible, a Massive ImSim. Well, it isn't that yet. But that's the ambition.

Tides of Revival Logo Available on itch.io

Here are some bullet points to describe the game:

  • Single-player RPG set in a huge fantasy world played from an FPS perspective.
  • The world suffers millenia-long cycles, consisting of two so-called "tides": Chaos and Prosperity. You are starting the game just as the Chaos tide is winding down - people are beaten, the world is unknown, monsters are out there, but the chance to kickstart the way to Prosperity is now!
  • "Offline" generated, prebaked world. Created once on our dev machines and then shipped as part of the game, just as though you'd downloaded a big AAA RPG.
    • This will allow us to create a world that is larger and more detailed and interconnected than any AAA studio could feasibly make.
    • You will play the same game, the same world, as everyone else, hopefully allowing for a community to spring up and find cool locations or ways to play the game.
  • A focus on immersion and believability. We try to stay away from game design "plot holes", and known truths, and instead think through the game from first principles. We're willing to bet that players are ready for and desiring NPCs that are smart: beyond trivial state machines and "must've been the wind".
  • Dynamic dialogue and a world that changes with and without you.

For a more indepth discussion: https://www.youtube.com/watch?v=yoJ7ayDuaJQ

Hills

To get Tides to what we want it to be, we work on it in terms of releases, called Hills. A hill is not just an improvement in terms of features and amount of content, as though we simply continued to churn on the game along some vector towards a goal in the far distance. It is also an opportunity for us to choose a specific, temporary direction, and a promise that we will create something solidified and game-like.

Towards the end of each hill we will allow ourself the time, energy, and fun, to polish it up into something that is a playable whole, even if it means some of it will get torn down again as we start working towards the next hill. One hill at a time! (But with some foresight).

On a technical level, we will also allow ourselves a bit of engineering slack and to build up some tech debt, when implementing new experimental, exploratory systems and features. By adding hacky code that's easy to tear down, we aren't needlessly spending time thinking of the perfect architecture before we know what the problem is. In between two hills, we can spend some time looking at existing debts and decide which ones are ripe for paying off.

For more on the concept of Hills: https://www.youtube.com/watch?v=BD_zbXHgI8E

List of Hills

These are the currently planned hills. As you can see, it is quite a ways to go until we get anywhere close to our end goal. But hey, one step at a time!

Hill Name Status Release Description
Death from Darkness โœ… 2023-01 One brave person must light the way to a village on the other side of the valley. But make sure you stay in the light, or die...
March of the Ants โœ… 2023-11 Your farmstead is under attack by vicious ants. Use your bow to protect it for as long as possible.
A Fort Wasn't Built in a Day ๐Ÿƒโ€โ™€๏ธ 2024-08 A nice place for a fort has been discovered. Protect it during the months it takes for the builders to finish constructing it.
All Roads Lead to Various Places โฒ๏ธ 2025-06 Protect builders and caravans as they start traveling between villages. See the web of roads grow as you make the lands safer.
The Revival Begins โฒ๏ธ 2026-02 Bandits and wild creatures roam the lands. Only by you leading the Revival will villages start to grow and roads improve.

As you can see, the hill that we are currently working on is called A Fort Wasn't Built in a Day. Here are the planned technical additions we plan to make during course of its development:

  • AI: Goals, actions, sensors
  • Day/night cycle
  • Flecs Explorer improvements
  • IMGUI
  • Jolt physics debug/viz
  • Modular buildings along splines
  • Pathfinding with Recast and Detour
  • Render architecture
  • Shadows (sun)
  • Simple atmosphere model
  • Terrain stitching
  • The Debuginator
  • The-Forge based renderer

Follow the Development

Join the Development

It's impossible to build a game like Tides without a team. There is an incredible amount of things to do in a lot of different areas and dimensions. We value kindness, diversity, and avoiding stress. Poke me (Anders) on any of my channels if you're interested. :)

Only the source is stored on Github. All content is stored on a private SVN for cost and licensing issues. Let us know if you want to try building and running the game and we can help you out!

tides-of-revival's People

Contributors

aldarrion avatar dweiller avatar gmodarelli avatar jlaumon avatar srekel 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

Watchers

 avatar  avatar  avatar  avatar  avatar

tides-of-revival's Issues

(tracking issue) Most important Zig issues affecting Tides of Revival

Note: This issue was created simply to provide a way for us to communicate to the Zig project about our most important Zig issues. We have provided them this link on their Third Party Tracking Issues (what is important to other people?) page

Debugging

This definitely is at the top of my list. There are numerous issues for us developing Tides of Revival, all using Windows (11 I believe), with VS Code/Visual Studio/ZLS/VS Code Zig plugin, building against the msvc_abi (though it was equally bad under the default gnu abi as far as I can remember).

Many variables optimized away:

This is true for both const and var variables. (both should be inspectable)

image

Stepping "over" through the code with F10 doesn't actually indicate the line, sometimes it seemingly stops on lines it doesn't execute.

ziglang/zig#19443

Sometimes stepping over with F10 steps into (as though you'd pressed F11.

โ˜๏ธ

Data seemingly sometimes wrong (best case garbled so you know it's not the actual value, worst case untrustworthy)

โ˜๏ธ

Can't inspect various variables and consts

They don't show up in the watch window but are often very useful to be able to inspect.
ziglang/zig#15095
ziglang/zig#20259
ziglang/zig#20258

No "prettyprinting" in watch window

image

I just learned that for lldb and gdb there are "pretty printers". For windows/VS debugging I guess there'd need to be natvis counterparts. Strong requirement for good debugging on Windows.

Const vs Var

Major issue, maybe not, but certainly with the type of code we write, the requirement to be const correct is a detriment to our speed more so than an aid in preventing bugs. Now, I don't think removing the requirement is necessary, but I do think thee Zig team should focus on making it possible for tooling (e.g. the VS Code plugin/ZLS/autofmt) to fix it automatically.

Short Vector Primitives

This one probably goes by many names and the exact solution isn't super important but I do think this would be quite helpful. ziglang/zig#7295

With this, there would still be multiple math libraries out there but instead of all solving the same basic tasks in different ways, they could expose higher order functionality.

Compile times

I know this is a top-prio so just noting here for cheering it on. For games having millisecond-long compiletimes is a game changer to having second-long, not to mention minute-long compile times.

Hot reload

I again, I know this is a priority, just saying it would be super sweet. Hopefully it doesn't come with too many restrictions.

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.