Giter Site home page Giter Site logo

resaki1 / taal Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 4.9 MB

Taal is an open-source 3D browser game built with react-three-fiber that aims to combine the strategic depth of games like Anno and Civilization with an infinitely expansive, procedurally generated cubic world.

Home Page: https://taal.web.app

License: MIT License

HTML 1.35% TypeScript 93.00% CSS 0.75% SCSS 2.13% JavaScript 2.77%
3d-game-development anno browser-game-engine civilization gaming multiplayer open-source open-world procedural-generation react

taal's Introduction

Taal: Civilizations Unleashed

Taal is an ambitious open-source 3D browser game that combines the strategic gameplay mechanics of games like Anno and Civilization, without being bound to a limited world by being set in an infinitely large, procedurally generated world of cubed tiles โ€” all within your web browser.


Explore the world of Taal by checking out the demo!

Screenshot of Taal


Technologies

  • Framework: React (TypeScript) with Vite
  • 3D Rendering: react-three-fiber
  • State Management: Zustand
  • Hosting: Currently Firebase (will probably change in the future)

How to Contribute

Contributions to Taal are highly encouraged! Whether you're a developer, designer, or a gaming enthusiast, your input is valuable. There is a list of beginner-friendly issues labeled as Good First Issue to help you get started. Feel free to start discussions, propose new features, or directly open pull requests. Your creativity and expertise are welcome!


Project Direction

Taal's development is an exciting journey with an evolving vision. While I currently plan to incorporats elements inspired by Anno and Civilization, its future could potentially include:

Realistic Simulation: Aim to simulate real-life as accurately as possible, including:

  • A large, detailed tech tree
  • Creation of a unique religion that can spread (similar to Civilization)
  • Introduction of a custom currency, dynamic market prices, and economic systems
  • AI-controlled cities for trading and strategic interactions
  • Multiplayer functionality for collaborative and competitive gameplay experiences

However, the direction of Taal is not set in stone. I am open to new ideas and perspectives. Your creativity might lead us in unexpected and innovative directions. Feel free to contribute your thoughts and proposals!


Get Involved

Your creativity, feedback, and ideas are really welcomed here. Join the Taal community today, and let's build an incredible gaming experience together!


Installation

To start Taal locally, clone the project and then run:

cd taal
npm i
npm start

taal's People

Contributors

dependabot[bot] avatar resaki1 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

taal's Issues

Add way to manually deactivate buildings

deactivating a building deactivates all of its outputs
there should be a visual indicator that a building is deactivated (darkened and/or a visual indicator above it)

Bug: Map disappears

At a specific distance from the origin, the map randomly disappears (except for the water). This seems to be the case for all four directions.

Settings

Add a settings modal. For now, this should include:

  • Settings button -> opens settings modal/page
  • unlock camera movement (#24)
  • Rendering distance

Settings should be stored in global state and persisted between reloads

Improve terrain

Right now, the terrain is randomly generated, but it pretty much looks the same everywhere.

There should be multiple levels of perlin noise maps (e.g., one for general terrain height, one for continents & oceans, etc.), similar to Minecraft.

dynamic shadows

Currently, the shadows are only in the initial playing area. When moving to a new area, there are no shadows (probably because the sun's position is not updated)

Limit camera movement

Right now, the camera can be moved freely. This should be limited.

  • Should be limited for "normal" players
  • Devs should be able to unlock the movement
  • Maybe add a setting which can be toggled
  • Activate unlocked movement per default in DEV environment

Add CI/CD pipeline

Should contain:

  • install dependencies
  • build project
  • lint code

Optional:

  • some basic tests

Implement punishment when resources are negative

There must be some "punishment" when a resource drops below 0

  • imo it would make the most sense if buildings (including their outputs) are deactivated so that the total output is not negative anymore

Create logo

Create application logo for:

  • favicon
  • manifest.json (PWA)

3D building models

Create 3D models for existing buildings (and replace the third-party house model with a self-made one)

Implement UI

  • create general UI theme
  • implement new UI for existing elements

Add fog

Add fog so that the edges of the map are not visible

Refactor Code

  • check if any code can be moved to separate, reusable components
  • remove unused code

Add more resources and buildings

  • - stone
  • - - quarry
    • built on stone or next to it?
  • - food
  • - fishing hut
  • - farm
  • - hunting cabin
  • - wool
  • - farm
  • - leather
  • - hunting cabin
  • - clothing
  • - weaver
  • - needs wool, leather or cotton
  • - coal

Add teleportation

  • display current coordinates
  • add way to teleport to other coordinates

Fix deletion of outposts

There are two issues when deleting outposts:

  • all tiles in its radius are not unlocked anymore, even if another outpost is close
  • nothing happens to the buildings in the radius of the deleted outpost
  • when the last outpost is deleted, no new buildings can be placed and players are stuck

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.