This is a meta-project for creating EE Tutorial/Example projects.
It contains:
- Collection of project ideas that could turn into useful tutorials
- Already published tutorials (as submodules)
- Source code of Work-in-Progress tutorial projects
Important:
This repository uses git'ssubtree
andsubmodule
features for managing its contained projects.
Using the provided scripts and instructions is required to respect the repository's workflow.
The repository must be cloned with submodule recursion:
git clone --recurse-submodules -j8 [email protected]:EtherealEngine/ee-tutorials.git
If you already cloned the repository without recursive submodules
git submodule update --init --recursive
This repository provides a script to add new projects based on the engine templates:
./create <project-name> # Creates a new project based on the standard template
./create <project-name> static # Creates a new project based on the static build template
# NOTE: <project-name> is the name of the project without the `ee-tutorial-` prefix
ROOT
├─ 🗀 published # Finished tutorial projects are stored as submodules
│ ├─ 🗀 ... # A published tutorial submodule ..
│ └─ 🗀 ... # A published tutorial submodule ..
├─ 🗀 src # In-Development projects that might eventually be published
│ ├─ 🗀 ... # Source code of a Work-in-Progress tutorial project ..
│ └─ 🗀 ... # Source code of a Work-in-Progress tutorial project ..
├─ 🗎 create # Shell script to create new projects from the engine templates
└─ 🗎 readme.md # This file
This process allows to extract the project from this repository's git-tree without losing its history.
# Split the project's tree without losing its history
git subtree split -P ./src/<folder-name> -b <new-branch>
# NOTE: <new-branch> is a branch on this repository, not on the new repository that will contain the example
# Create the published project
mkdir ./published/<folder-name> && cd ./published/<folder-name>
git init && git pull [email protected]:EtherealEngine/ee-tutorials.git <new-branch>
# Create the repository with GitHub UI and add the resulting URL
git remote add origin <[email protected]:user/new-repo.git>
git push -u origin dev
# Cleanup the original code of the project
git rm -rf ./src/<folder-name>