Week #4
Post-MVP optimization and automation #
Deliverables #
Code repository: GitHub
Project TaskBoard: Trello
Interactive board of ideas: Miro
CI/CD configuration: web version and OS autobuild
Deployed game version: deploy
In this week we should update our project to ensure quality through testing, automate processes, and prepare for future deployment.
Testing and QA #
Testing strategy #
Base testing system:
Feature developer is locally testing a new game update and pushes
In case of success, pushes changes to the optional branch
Makes pull request to the main branch
Linting of the incoming code occurs
In case of success, pushes changes to the main branch
Additionally system for ML model:
Dataset creation
Dataset is divided into teaching, validation and test
Here you can see ML tests
Evidence of test execution #
C# Linter log and result #
WebGL Lint & Build & Deploy result #
OS build #
CI/CD #
Description #
CI/CD s a technology for testing and delivery of new features/modules of the project being developed. We use this technology and build special .yml files, which can:
Lint all C# code
Build game for any existing operationg system
Deploy web version as a website
Tools used #
GitHub Pages - GitHub module which can deploy project as a website
csharpier - C# linter library
Game.ci builder module - Feature to build Unity project in any OS
Challenges faced #
Too hard to manage C# code issues
Since C# is a OOP-structured language with syntax structure.
Even if the code is written bad, but in compliance with the syntax rules, that won’t count as an issue.
Project delivery (CI)
Since project total size is too big to game.ci builder, there is need to minimize it with archiving
Without Decompression fallback setting, there is no possibility to unpack our project
Project deployment (CD)
- Due to the fact that we badly worked out the window parameters, depending on the browser, the game UI can change
CI/CD configuration files #
Web lint & build & deploy #
Windows, MacOS and Linux builds #
Deployment #
Staging deployment #
Build WebGL Version in Unity:
- Open
File → Build Settings
and switch the platform to WebGL. - Disable unused or incompatible plugins/features for WebGL.
- Export the build as a pre-release archive.
- Open
Deploy to GitHub Pages (gh-pages branch):
- We use a separate Git branch to host the staging version.
- We use GitHub Actions to automate the upload build to this branch.
Access Staging Build:
- The staging version is accessible at:
https://iu-capstone-project-2025.github.io/SignGame/WebGL/
- The staging version is accessible at:
Vibe check #
Our members is steadily progressing with the Unity project ans work as a team. The core gameplay loop is in place, and WebGL builds are successfully generated and deployed to GitHub Pages for both staging and production environments.
We usually meet (3 times in a week) and discuss our successes and problems
Everyone is contributing consistently
Tasks are well-distributed across game development, ML, DevOps and Design areas.
Weekly commitments #
Individual contribution of each participant #
Danil Valiev #
All CI/CD content
Main branch rulesets
Repository cleaning
Valeriia Kolesnikova #
Restoting HP nearly checkpoint, removing const HP saving
Obtaining damage vizualize
Storekeeper vanishing animations
Interaction mechanic change:
Checkpoint: option to activate checkpoint replaced from bind E nearly to stay nearly checkpoint a few seconds
Storekeeper: option to open shop replaced from bind F nearly to stay nearly storekeeper a few seconds
Sviatoslav Fediaev #
Patrolling enemies in a small radius
Design of the new enemy with Stanislav
Assisting in the new player spell attacks
Egor Savchenko #
Map logic and first action
Moving platform logic
Merging all members work into a main branch
Stanislav Delyukov #
Main menu music OST applied
Design of the new enemy with Sviatoslav
Nikita Stepankov #
Finalize ML model work
Start work in integration model into C# code
Fanis Zinnurov #
Spell code optimization
New water spell
Changed enemy status realizing
- Now the effects are in an enemy state. It allows to interact with them (elemental reaction)
Reworked spell logic
- Now spells works as ScriptableObject
Plan for the next week #
In Week 5, we plan to:
Release Week 4 bugfix
Start work with music assets
Start work with boss location and boss himself
Realize total game progress saving
Confirmation of the code’s operability #
We confirm that the code in the main branch:
- [✓] In working condition.
- [✓] Run via docker-compose (or another alternative described in the README.md).
Innopolis University | Capstone project | Summer 2025