Odyc.js is a tiny JavaScript library designed to create narrative games by combining pixels, sounds, text, and a bit of logic. Everything is built through code, but without unnecessary complexity: your entire game can fit in a single file.
🔗 Get started → https://odyc.dev
This is a monorepo with the following structure:
- packages/odyc/ - The main library package
- apps/examples/ - Development and demo applications
- tests/odyc-e2e/ - End-to-end testing suite
We welcome contributions to Odyc.js! Whether you're fixing bugs or adding features your help is appreciated.
- Fork and clone the repository
- Install dependencies:
npm install - Install browser dependencies:
npx playwright install - Build the library:
npm run build - Run tests:
npm run test
- Build library:
npm run build - Type check all workspaces:
npm run lint - Run e2e tests:
npm run test(watch mode) ornpm run test:once - Format code:
npm run format - Check formatting:
npm run format:check
- Development mode:
npm run dev(watches for changes and rebuilds) - Type checking:
npm run lint - Build library:
npm run build - Run unit tests:
npm run test(watch mode) ornpm run test:once - Run all checks:
npm run prepublishOnly(lint + build + test)
- Create a branch for your feature or fix
- Make your changes following existing patterns
- Add tests for new functionality
- Ensure all tests pass:
npm run test:once - Check code quality:
npm run lint && npm run format:check - Submit a pull request with a clear description of your changes
Tests are located in the tests/odyc-e2e/ workspace. See tests/odyc-e2e/README.md for detailed testing guidelines.