Skip to content

NCTO-23 client server system for multiplayer#14

Merged
alexis-belmonte merged 109 commits intomainfrom
NCTO-23-client-server-system-for-multiplayer
Mar 13, 2026
Merged

NCTO-23 client server system for multiplayer#14
alexis-belmonte merged 109 commits intomainfrom
NCTO-23-client-server-system-for-multiplayer

Conversation

@alexis-belmonte
Copy link
Copy Markdown
Contributor

@alexis-belmonte alexis-belmonte commented Feb 10, 2026

Jira ticket

https://naucto.atlassian.net/browse/NCTO-23?atlOrigin=eyJpIjoiMWQ1MWVjZDI2M2ZlNGNkNWE0NzlhYWY4ZTlmZmNmZmQiLCJwIjoiaiJ9

What does your MR do?

  • Implements the backbone logic for multiplayer support. (WIP)
  • Introduces a Swagger/OpenAPI + TypeScript client generation pipeline, migrated to @hey-api/openapi-ts.
  • Cleans/updates/fixes test suites that were mismatching with their implementations.
  • Hardens Docker/Compose setup, splits dev vs. prod, and miscellaneous infrastructure fixes.

Overview

  • Multiplayer: Implemented openHost, closeHost, leaveHost, joinHost, and lookupHosts with proper game session attach/detach logic, DTOs, multiplayer-specific exceptions, and missing Swagger annotations.
  • WebRTC: Introduced a common WebRTC config structure for consumers (collab, multiplayer), an AppConfig injectable, and relocated the signaling module to a cleaner path.
  • Swagger & TS client: Added a standalone Swagger generator (tool/), generate:swagger / generate:client npm scripts, and a GitHub Actions CI pipeline. Migrated from openapi-typescript-codegen to @hey-api/openapi-ts — eliminating the old post-generation patch script.
  • Prisma: Added PQ driver adapter, improved error verbosity, cleaned up fields and removed deprecated feature flags.
  • Docker: Split dev/prod configs, fixed mount points, networking, .dockerignore, and added a cleanup script.
  • Meta: Enforced LF endings globally, added @webrtc path alias, switched from tsx to ts-node, re-introduced pg driver, upgraded package set, integrated several main merges.
  • Auth/User: Fixed @Inject usage, an auth regression blocking frontend login, and duplicate member generation.
  • Tests: Fixed spec files post-merge, improved coverage across modules, introduced a Jest CI pipeline.

How to test it

Test as usual against the frontend, it should work just fine.

Screenshot

Not applicable.

Notes

Still WIP. The collaborative service/controller hasn't been updated yet to use the new WebRTC config structure — likely a follow-up PR.

….g. creating/joining a project during collaboration, hosting/joining a game, etc.
@alexis-belmonte alexis-belmonte changed the title Ncto 23 client server system for multiplayer NCTO-23 client server system for multiplayer Mar 7, 2026
@alexis-belmonte
Copy link
Copy Markdown
Contributor Author

Blocks #17

@Inject(ConfigService) private readonly configService: ConfigService
) {
this.defaultBucket = this.configService.get<string>("S3_BUCKET_NAME");
this.defaultBucket = this.configService.get<string>("AWS_DEFAULT_BUCKET");
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's not aws anymore and use the backend .env on our discord or update it

Copy link
Copy Markdown
Collaborator

@Notgoyome Notgoyome left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

type: UserListResponseDto
})
@ApiResponse({ status: HttpStatus.UNAUTHORIZED, description: "Unauthorized" })
@ApiQuery({ type: UserFilterDto })
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ooh it was the issue nice 👍

@alexis-belmonte alexis-belmonte merged commit f850d38 into main Mar 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants