All Projects → godotengine → godot-website

godotengine / godot-website

Licence: MIT license
The code for the official Godot Engine website. A static site built using Jekyll.

Programming Languages

HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to godot-website

Luascript
Lua language support for Godot Engine
Stars: ✭ 240 (+43.71%)
Mutual labels:  godot, godot-engine
Godot Realistic Water
Godot - Realistic Water Shader
Stars: ✭ 235 (+40.72%)
Mutual labels:  godot, godot-engine
Godot card engine
A plugin for Godot to create card based games
Stars: ✭ 160 (-4.19%)
Mutual labels:  godot, godot-engine
Godot Card Game Framework
A framework which comes with prepared scenes and classes and scenes to kickstart your card game, as well as a powerful scripting engine to use to provide full rules enforcement.
Stars: ✭ 210 (+25.75%)
Mutual labels:  godot, godot-engine
Awesome Godot
A curated list of free/libre plugins, scripts and add-ons for Godot
Stars: ✭ 3,092 (+1751.5%)
Mutual labels:  godot, godot-engine
Voxel Core
Voxel plugin for the Godot game engine!
Stars: ✭ 148 (-11.38%)
Mutual labels:  godot, godot-engine
Godot Kickstarter 2019
Create your Own Games with Godot, the Free Game Engine: sources from the January Kickstarter project from GDQuest
Stars: ✭ 194 (+16.17%)
Mutual labels:  godot, godot-engine
Pixelorama
A free & open-source 2D sprite editor, made with the Godot Engine! Available on Windows, Linux, macOS and the Web!
Stars: ✭ 2,535 (+1417.96%)
Mutual labels:  godot, godot-engine
Godot Kotlin Native
Kotlin bindings for Godot Engine
Stars: ✭ 186 (+11.38%)
Mutual labels:  godot, godot-engine
Godot Beginner 2d Platformer
Learn to create a 2d platform game with the Godot game engine. This is a beginner programming tutorial.
Stars: ✭ 183 (+9.58%)
Mutual labels:  godot, godot-engine
Godot Gdscript Toolkit
Independent set of GDScript tools - parser, linter and formatter
Stars: ✭ 214 (+28.14%)
Mutual labels:  godot, godot-engine
Whiskers
A Visual Dialogue Editor made using the Godot Engine
Stars: ✭ 229 (+37.13%)
Mutual labels:  godot, godot-engine
Chart Gd
Animated charts for Godot Engine
Stars: ✭ 151 (-9.58%)
Mutual labels:  godot, godot-engine
godot-local-notification
Godot module for local notifications (android and iOS)
Stars: ✭ 111 (-33.53%)
Mutual labels:  godot, godot-engine
Godot Syntax Themes
Syntax themes for the Godot Engine script editor
Stars: ✭ 140 (-16.17%)
Mutual labels:  godot, godot-engine
Godot Ci
Docker image to export Godot Engine games. Templates for Gitlab CI and GitHub Actions to deploy to GitLab Pages/GitHub Pages/Itch.io.
Stars: ✭ 168 (+0.6%)
Mutual labels:  godot, godot-engine
Godot Ink
Ink integration for Godot Engine.
Stars: ✭ 129 (-22.75%)
Mutual labels:  godot, godot-engine
Pgsgp
Play Games Services plugin for Godot Game Engine 3.2 - Android
Stars: ✭ 130 (-22.16%)
Mutual labels:  godot, godot-engine
Godot Jigglebones
An addon that brings jigglebones to Godot Engine 3.0.
Stars: ✭ 175 (+4.79%)
Mutual labels:  godot, godot-engine
hydro
Hydro is a Godot Engine module which allows rigid bodies to behave realistically in water.
Stars: ✭ 39 (-76.65%)
Mutual labels:  godot, godot-engine

Godot Engine Website

Welcome to the source code for the Godot Engine website. This is a static website, generated offline using Jekyll.

Contributing

Contributions are always welcome! Godot website, just like Godot engine, is open source.

However, when contributing to the website, it is important to keep in mind that it acts as a public face of Godot organization and community. Thus, substantial changes must be discussed ahead of time. You don't necessarily need to open a formal Godot improvement proposal like you do with engine features, but starting an issue on this repository or joining the discussion on the Godot Contributors Chat is a good idea.

Browser support

When working on new features, keep in mind this website only supports evergreen browsers:

  • Chrome (latest version and N-1 version)
  • Edge (latest version and N-1 version)
  • Firefox (latest version, N-1 version, and latest ESR version)
  • Opera (latest version and N-1 version)
  • Safari (latest version and N-1 version)

Internet Explorer isn't supported.

Development

Building

To build the website locally, follow these steps:

  1. Install Jekyll prerequisites.
    • Make sure bundle is available from the command line.
  2. Clone this repository.
  3. Install the necessary dependencies: bundle install.
  4. Build the site: bundle exec jekyll build.
    • Append --config _config.yml,_config.development.yml to use the development config with your build.

For simplicity, these two commands are also available as a build.sh script in this repository.

Alternatively, you can also use the official Docker container for Jekyll. This container is designed to be run once to perform the build, so you don't need to compose and permanently store it in your Docker setup. If you're on Linux, execute the following command:

docker run --rm --volume="$PWD:/srv/jekyll" -it jekyll/jekyll:stable ./build.sh

On Windows (from CMD.exe):

docker run --rm --volume="%CD%:/srv/jekyll" -it jekyll/jekyll:stable ./build.sh

Building may take several minutes to finish.

Local server

As this is a static website, it can be served locally using any server stack you want.

  • It is possible to use Jekyll and bundle to immediately serve the pages upon building it. To do this, replace the final build step with bundle exec jekyll serve.
    • When using Docker, you need to add a new argument to the docker run command, -p 4000:4000, and change the shell script to build-and-serve.sh.

      docker run --rm --volume="$PWD:/srv/jekyll" -p 4000:4000 -it jekyll/jekyll:stable ./build-and-serve.sh

      or

      docker run --rm --volume="%CD%:/srv/jekyll" -p 4000:4000 -it jekyll/jekyll:stable ./build-and-serve.sh
  • You can also use Python, which is likely pre-installed on your system. To serve the pages with its local server, run python -m http.server 4000 -d ./_site.

After following either one of these steps the site will be available at http://localhost:4000.

Deployment

The project is built automatically by GitHub Actions whenever the master branch receives a new commit. The master branch itself should not be deployed, as it only contains the source files. The build version of the website is available as the published branch instead.

Note, that this is not relevant for local development. Locally you would build the website in place and then serve the _site folder. See the detailed instructions above.

Project structure

Content data and metadata

The following folders contain data files, used for generating more dynamic parts of the website, such as the blog, the showcase, the downloads page. These pages are written in Markdown and contain a metadata header used by the generator. Markdown files form Jekyll collections with the same name as their containing folder. To create a new Markdown document, you can start by copying an existing one and then change its content.

  • collections/_article contains articles for the blog. Each article is written in Markdown with a metadata header located at the top of the file. The following metadata fields are required for the article to be correctly displayed throughout the website: title, excerpt, categories, author, image, and date. The name of the file acts as a slug in the generated URL.

  • collections/_download contains the download instructions for Godot builds per platform. Each document is written in Markdown with a metadata header located at the top of the file. Download links are generated from the downloads field in the metadata. When adding a new platform, make sure to create a new tab for it in the /_layouts/download.html template.

  • collections/_showcase contains entries for the showcase. Each article is written in Markdown with a metadata header located at the top of the file. Showcase entries can be featured on the home page by setting the featured_in_home field to true. The image used is the one from the image field.

Some information is also stored in YAML files, acting as a file-based database for several meta properties.

  • _data contains various metadata files for the website:
    • authors.yml contains a list of authors used for the blog articles;
    • categories.yml contains a list of categories for the blog articles;
    • communities.yml contains a list of user communities for the /community/user-groups page.

Content pages and templates

The following folders contain entry points for almost every website page, as well as shared templates and assets. The templating language used in Jekyll is liquid.

  • _i18n contains translations for the website. The default language is English. Only static information is translated, with the blog and the showcase being displayed in English. Currently disabled and a work in progress.

  • _includes contains navigation and footer elements used by most pages. If you want to create an element to reuse in multiple pages, you can create a new include file here.

  • _layouts contains the wrapping content for the pages. Each layout inherits from _layouts/default.html which contains the main structure of the page, including the head and meta tags. Other layouts are used for specific pages, like the blog, download, and showcase pages.

  • assets contains static assets for the website. This includes the CSS, JS, and images used in the theme and layout. For media content used in articles and other pages check the storage folder. Some files may be obsolete and unused.

  • pages contains most of the pages for the website. The final URL for each page is specified in the metadata header using the permalink field. Generally, it should map to the file's path inside pages. Dynamic content pages are generated using Markdown collections and layouts.

File storage

  • storage contains media and other files uploaded for use in dynamic content pages, such as the blog, the showcase, the events. Some files may be obsolete and unused.

Build system

This project is build with Jekyll, with the build instructions located in Gemfile and _config.yml. When building locally, some configuration options may need to be different. To define those, _config.development.yml is used.

Content update guidelines

Updating Godot download version

When a new stable build of the engine is released, you need to add its number and date to the data/_versions.yml file. It has several lists, one for each maintained major version of Godot. Pick the correct one, and at the top of the list add something similar to the following:

  - name: "4.0.1"
    flavor: "stable"
    release_date: "17 March 2023"

After this change is merged and the website is built, everything referencing the engine version should be updated automatically, including download links for every platform.

Resources

  • Join the discussion on Godot Contributors Chat in the #website channel.
  • Please, consider the website usage stats when relying on modern web technologies (web standards support, file type support, etc).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].