Skip to content

Commit 007db4e

Browse files
authored
Merge pull request #3 from liuzqk/maintenance/public-package-metadata
Clean up ZeroEngine package metadata and DataToolkit hooks
2 parents d239cb8 + 61e3139 commit 007db4e

40 files changed

Lines changed: 1184 additions & 505 deletions

File tree

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Bug report
2+
description: Report a reproducible ZeroEngine package bug
3+
title: "[Bug]: "
4+
labels: ["bug"]
5+
body:
6+
- type: input
7+
id: package
8+
attributes:
9+
label: Package
10+
description: Package name, for example com.zerogamestudio.zeroengine.pathfinding2d.
11+
validations:
12+
required: true
13+
- type: input
14+
id: version
15+
attributes:
16+
label: Version or commit
17+
description: Package version or Git commit hash.
18+
validations:
19+
required: true
20+
- type: input
21+
id: unity
22+
attributes:
23+
label: Unity version
24+
placeholder: 2022.3.62f1
25+
validations:
26+
required: true
27+
- type: textarea
28+
id: repro
29+
attributes:
30+
label: Reproduction steps
31+
description: Provide the smallest steps that reproduce the issue.
32+
placeholder: |
33+
1. Create/open a Unity project
34+
2. Install ...
35+
3. Run ...
36+
4. Observe ...
37+
validations:
38+
required: true
39+
- type: textarea
40+
id: expected
41+
attributes:
42+
label: Expected behavior
43+
validations:
44+
required: true
45+
- type: textarea
46+
id: actual
47+
attributes:
48+
label: Actual behavior
49+
validations:
50+
required: true
51+
- type: textarea
52+
id: logs
53+
attributes:
54+
label: Logs or screenshots
55+
description: Paste Unity console errors, stack traces, or screenshots if useful.
56+
validations:
57+
required: false
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Feature request
2+
description: Request a focused ZeroEngine package improvement
3+
title: "[Feature]: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: input
7+
id: package
8+
attributes:
9+
label: Package
10+
description: Package name or area.
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: workflow
15+
attributes:
16+
label: Workflow
17+
description: What game development workflow should improve?
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: current
22+
attributes:
23+
label: Current limitation
24+
description: Why are existing APIs or tools insufficient?
25+
validations:
26+
required: true
27+
- type: textarea
28+
id: proposal
29+
attributes:
30+
label: Proposed shape
31+
description: Describe the smallest useful API, editor tool, or behavior change.
32+
validations:
33+
required: false

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
## Summary
2+
3+
-
4+
5+
## Packages Touched
6+
7+
-
8+
9+
## Verification
10+
11+
- [ ] Ran focused Unity EditMode tests
12+
- [ ] Checked affected package manifests
13+
- [ ] Updated docs or README when behavior changed
14+
15+
## Notes
16+
17+
Describe any migration, compatibility, or downstream project impact.

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Changelog
2+
3+
ZeroEngine is developed as a multi-package repository. Package versions are
4+
tracked in each package's `package.json`.
5+
6+
## Unreleased
7+
8+
- Added root project documentation.
9+
- Added contribution, support, and security guidance.
10+
- Added MIT licensing.
11+
- Normalized package repository metadata for UPM Git dependencies.
12+
13+
For package-specific changes, inspect the package README, package version, and
14+
Git history for the relevant `com.zerogamestudio.*` directory.

CONTRIBUTING.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Contributing to ZeroEngine
2+
3+
ZeroEngine is a multi-package Unity repository. Keep changes scoped to the
4+
package and behavior you are improving.
5+
6+
## Development Notes
7+
8+
- Use Unity 2022.3 LTS unless a package explicitly documents a newer
9+
requirement.
10+
- Prefer package-local changes over framework-wide abstractions.
11+
- Keep runtime code in `Runtime/` and editor-only code in `Editor/`.
12+
- Include `.meta` files whenever Unity assets, folders, asmdefs, samples, or
13+
tests are added, moved, or deleted.
14+
- Do not edit generated Unity folders such as `Library/`, `Temp/`, or generated
15+
IDE project files.
16+
17+
## Package Metadata
18+
19+
Each package should keep a valid `package.json` with:
20+
21+
- `name`, `version`, `displayName`, `description`, `unity`, and `author`.
22+
- `license` set to `MIT`.
23+
- `repository.url` pointing to `https://github.com/liuzqk/zeroengine.git`.
24+
- `repository.directory` matching the top-level package folder.
25+
26+
## Testing
27+
28+
For runtime logic, add focused EditMode tests under the package `Tests/Editor/`
29+
folder. Use PlayMode tests only when Unity lifecycle, physics, scenes, prefabs,
30+
or coroutines are required.
31+
32+
The GitHub workflow builds a temporary Unity project and runs EditMode tests
33+
with GameCI. Local verification can use Unity Test Runner with the smallest
34+
relevant package test assembly.
35+
36+
## Pull Requests
37+
38+
- Explain the user-facing reason for the change.
39+
- List the package or packages touched.
40+
- Include the verification you ran.
41+
- Keep unrelated formatting and refactors out of the PR.
42+
43+
## License
44+
45+
By contributing, you agree that your contribution is provided under the
46+
repository's MIT License.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 ZeroGameStudio
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# ZeroEngine
2+
3+
[![Unity Tests](https://github.com/liuzqk/zeroengine/actions/workflows/tests.yml/badge.svg)](https://github.com/liuzqk/zeroengine/actions/workflows/tests.yml)
4+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
5+
[![Unity 2022.3+](https://img.shields.io/badge/Unity-2022.3%2B-black.svg)](https://unity.com/releases/editor/archive)
6+
7+
ZeroEngine is the shared Unity codebase I maintain for ZeroGameStudio projects.
8+
It is split into Unity Package Manager packages so a game can pull in only the
9+
systems it needs.
10+
11+
Most of these packages came out of production work on POB: runtime helpers,
12+
editor tooling, data systems, save logic, UI, analytics, and 2D platform
13+
navigation. The repository is kept public so those reusable pieces can be used
14+
and tested outside a single game project.
15+
16+
## Why I Keep This Separate
17+
18+
Unity projects tend to accumulate the same glue code over time: singleton and
19+
event helpers, pooled runtime objects, save data, quests, platform navigation,
20+
UI panels, editor data browsers, and debugging tools. Keeping these systems in
21+
packages makes it easier to reuse them across projects and to test them without
22+
mixing in game-specific content.
23+
24+
## Package Highlights
25+
26+
| Package | Purpose |
27+
| --- | --- |
28+
| `com.zerogamestudio.zeroengine.core` | Core helpers, logging, pooling, singleton patterns, and performance utilities. |
29+
| `com.zerogamestudio.zeroengine.data` | Data and stat systems for game configuration and runtime values. |
30+
| `com.zerogamestudio.zeroengine.data-toolkit` | Editor tooling for browsing, inspecting, and validating project data assets. |
31+
| `com.zerogamestudio.zeroengine.gameplay` | Reusable gameplay mechanics and trigger helpers. |
32+
| `com.zerogamestudio.zeroengine.narrative` | Quest and narrative runtime services. |
33+
| `com.zerogamestudio.zeroengine.pathfinding2d` | 2D platform navigation, graph generation, jump links, route costs, and diagnostics. |
34+
| `com.zerogamestudio.zeroengine.persistence` | Save and persistence infrastructure. |
35+
| `com.zerogamestudio.zeroengine.ui` | Runtime UI framework and toast notification systems. |
36+
| `com.zerogamestudio.analytics` | Self-hostable analytics and bug feedback SDK. |
37+
38+
There are also packages for AI, audio, combat, economy, input, localization,
39+
network, RPG, social, world, and editor dashboard systems.
40+
41+
## Installation
42+
43+
Add packages through Unity Package Manager using a Git URL with the package
44+
path you need:
45+
46+
```text
47+
https://github.com/liuzqk/zeroengine.git?path=com.zerogamestudio.zeroengine.core#main
48+
```
49+
50+
For example, a project `Packages/manifest.json` can pin several packages:
51+
52+
```json
53+
{
54+
"dependencies": {
55+
"com.zerogamestudio.zeroengine.core": "https://github.com/liuzqk/zeroengine.git?path=com.zerogamestudio.zeroengine.core#main",
56+
"com.zerogamestudio.zeroengine.pathfinding2d": "https://github.com/liuzqk/zeroengine.git?path=com.zerogamestudio.zeroengine.pathfinding2d#main",
57+
"com.zerogamestudio.zeroengine.ui": "https://github.com/liuzqk/zeroengine.git?path=com.zerogamestudio.zeroengine.ui#main"
58+
}
59+
}
60+
```
61+
62+
For production work I usually pin a tested commit hash instead of `#main`.
63+
64+
## Repository Layout
65+
66+
Each top-level `com.zerogamestudio.*` directory is a UPM package. Most packages
67+
follow the same structure:
68+
69+
```text
70+
com.zerogamestudio.zeroengine.<module>/
71+
Runtime/
72+
Editor/
73+
Tests/
74+
Samples~/
75+
package.json
76+
README.md
77+
```
78+
79+
Not every package has every folder; small runtime-only packages stay minimal.
80+
81+
## Testing
82+
83+
The repository includes a GitHub Actions workflow that builds a temporary Unity
84+
project and runs EditMode tests through GameCI.
85+
86+
For local work, open a Unity 2022.3 project that references the package under
87+
test, then run the relevant EditMode tests from Unity Test Runner. Keep new
88+
tests narrow and package-scoped.
89+
90+
## Support and Security
91+
92+
- Use [GitHub issues](https://github.com/liuzqk/zeroengine/issues) for
93+
reproducible bugs and focused feature requests.
94+
- See [SUPPORT.md](SUPPORT.md) for the information maintainers need.
95+
- See [SECURITY.md](SECURITY.md) for private security reporting guidance.
96+
97+
## Production Use
98+
99+
POB depends on multiple ZeroEngine packages, including analytics, core, data,
100+
data-toolkit, economy, gameplay, narrative, pathfinding2d, persistence, and UI.
101+
That is the main production feedback loop for this repository.
102+
103+
## Contributing
104+
105+
See [CONTRIBUTING.md](CONTRIBUTING.md) before opening issues or pull requests.
106+
Small, tested fixes are preferred over broad rewrites.
107+
108+
## License
109+
110+
ZeroEngine is available under the [MIT License](LICENSE).

SECURITY.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Security Policy
2+
3+
## Supported Scope
4+
5+
Security reports should focus on vulnerabilities in ZeroEngine package code,
6+
editor tooling, self-hosted analytics upload flows, and generated runtime
7+
configuration that could expose project data or execute unintended code.
8+
9+
Unity project-specific content, game assets, and downstream game logic are
10+
outside this repository unless the issue is caused by reusable ZeroEngine code.
11+
12+
## Reporting
13+
14+
Do not open a public GitHub issue for security concerns. Send a private report
15+
to the maintainers with:
16+
17+
- The affected package name and version or commit hash.
18+
- Reproduction steps.
19+
- Expected and observed impact.
20+
- Any relevant logs, stack traces, or minimal sample project details.
21+
22+
If a private security advisory is available on the GitHub repository, prefer
23+
that channel.
24+
25+
## Response Expectations
26+
27+
Maintainers will triage reports based on reproducibility, affected packages,
28+
and severity. Fixes should include focused tests when the behavior is
29+
testable without exposing sensitive data.

SUPPORT.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Support
2+
3+
Use GitHub issues for reproducible bugs, documentation gaps, and focused
4+
feature requests.
5+
6+
For bug reports, include:
7+
8+
- Package name and version or commit hash.
9+
- Unity version.
10+
- Platform.
11+
- Minimal reproduction steps.
12+
- Console errors or relevant logs.
13+
- Whether the issue reproduces in a clean Unity project.
14+
15+
For feature requests, describe the game development workflow being improved
16+
and why existing package APIs are insufficient.
17+
18+
Project-specific integration questions for private games may be closed if they
19+
cannot be answered from reusable ZeroEngine code.
Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
{
2-
"name": "com.zerogamestudio.analytics",
3-
"version": "1.2.2",
4-
"displayName": "ZGS Analytics",
5-
"description": "ZeroGameStudio 游戏分析 SDK,支持自建 ClickHouse 数据平台",
6-
"unity": "2021.3",
7-
"dependencies": {}
8-
}
2+
"name": "com.zerogamestudio.analytics",
3+
"version": "1.2.2",
4+
"displayName": "ZGS Analytics",
5+
"description": "ZeroGameStudio 游戏分析 SDK,支持自建 ClickHouse 数据平台",
6+
"unity": "2021.3",
7+
"dependencies": {},
8+
"license": "MIT",
9+
"repository": {
10+
"type": "git",
11+
"url": "https://github.com/liuzqk/zeroengine.git",
12+
"directory": "com.zerogamestudio.analytics"
13+
}
14+
}

0 commit comments

Comments
 (0)