Week 12 • GitHub Collaborations: HTML5 Game Dev
To Do This Week
- Set Up Repositories:
- One team member creates a new GitHub repo and adds all members as collaborators.
- Clone the repo locally and verify push/pull access.
- Read & Review:
- Collaborating with issues and pull requests (GitHub Docs)
- Managing branches (GitHub Docs)
- GitHub Flow Overview
- Project Planning:
- Agree on basic game concept, roles (developer, designer, asset creator, integrator, etc.)
- Create README file with naming conventions, style guide etc
- Create development plan or map for the game
- Create a project board or issue list to assign tasks and track progress.
In-Class
Core Git Concepts
- Repository (Repo): Project folder with files and version history
- Clone: Local copy of a repository
- Commit: Saved snapshot of changes
- Push: Upload local commits to GitHub
- Pull: Download and merge changes from GitHub
- Fetch: Check for updates without merging
Branching and Structure
- Branch: Parallel version of the code
- Main Branch: Stable primary version
- Feature Branch: Branch for a specific task or feature
- HEAD: Current commit you are working on
Collaboration
- Pull Request (PR): Proposal to merge changes
- Merge: Combine branches
- Review: Feedback on a PR
- Fork: Copy of a repository
- Origin: Default remote repository name
- Upstream: Original repo you forked from
Conflicts and Fixes
- Merge Conflict: Conflicting changes that must be resolved
- Rebase: Move commits onto another branch
- Stash: Temporarily save changes
- Diff: Shows changes between versions
Project Management
- Issue: Task, bug, or idea
- Milestone: Group of related issues
- Project Board: Task organization board
- README: Project description file
Files and Tracking
- .gitignore: Files Git should ignore
- History / Log: Record of commits
Set-up README file
README files should be written in Markdown (README.md). Get AI help with this.
- Project Overview (what the game is, concept, goals)
- Team & Roles (who is responsible for what)
- Game Structure (levels, stages, and overall flow of the game)
- Core Systems (shared logic and architecture used by all levels)
- Folder Structure (how files and assets are organized)
- Setup Instructions (how to run and test the project)
- Git Workflow (how the team collaborates using branches and pull requests)
- Naming Conventions (rules for naming variables, files, and functions)
- Style Guide (visual design rules: color, UI, sprites, typography)
- Commit Guidelines (rules for writing clear and consistent commit messages)
- Game Design Rules (shared gameplay rules: controls, difficulty, interactions)
- Code Structure Rules (how code should be organized and written)
- Communication Protocol (how the team communicates and shares updates)
- Testing Guidelines (how to check that features work before sharing)
- Integration Rules (how individual parts are combined into the main project)
- Merge Conflict Strategy (how to resolve overlapping code changes)
- Assets Management (how images, audio, and files are named and stored)
- AI Usage Policy (how AI tools can be used and documented)
- Documentation Requirements (what students must explain about their work)
- Roadmap / Milestones (timeline and major development steps)
- Known Issues / Bugs (list of current problems to fix)
- License (how the project can be used or shared)
- Credits (who contributed and any external resources used)
Team Workshop:
- Break into teams and sketch game ideas, assign roles.
- Set up a team GitHub repo.
- Practice branching and making pull requests: create a ReadMe and index.html, and styles.css, make changes
- Consult HTML5 Game Mentor on your idea. Have a chat, get feedback and suggestions.
- Discuss and get help organize the development in task areas - distributed across three of you.
- Start modular development with different students working on different files or features.
- Share methods and schedule for updates from team members.
HTML5 Game Mentor: A helpful tutor for HTML5 Canvas and JavaScript game projects with GitHub.