사용기술
backend (latest stable version library or framework)
-nestjs / -ts
-postgreSQL
frontend ("")
-ts
-SPA
-모든 비밀번호는 db에 암호화 저장
-SQL 주이베 대해 보호 되어야 한다.(?)
-서버쪽 인풋데이터에 대한 유효성 검증로직
3.유저
-42 oauth login
-유저의 이름은 유일하며 브라우저 표시
-아바타 추가 (없으면 기본아바타)
-유저는 two-factor authentication (google authenticator or sending a text message to their phone)
-유저는 다른 유저를 친구로 셋팅 가능
-유저의 현재상태 (online, offline, in a game, etc)
-유저 프로필(wins, losses, ladder level, achievements etc)
-유저 의 match history(ladder... etc)
*로그인 한사람은 모두 consult가능해야한다?
4.채팅
-유저는 channels(chat room) 생성가능(public, private, protected by password)
-direct message
-block (유저가 block한 유저의 메시지 안보여줌)
-새 채널 만든 유저는 channel owner됌
-channel owner는 해당방 password(셋팅, 수정, 삭제)
-channel owner는 channel adminnistrator이고, 다른 유저를 administrator로 만들기가능
-adminstrators들은 해당 방 내 유저를 ban or mute가능 (제한된시간)
-chat interface 통해서 pong게임에 다른 유저 초대 가능
-chat interface 통해서 다른 유저의 프로필에 접근 가능해야함.
5.게임
-한유저는 다른 유저와 실시간 게임 가능해야함
-matchmaking system = 유저는 queue 자료구조를 따라서 다른 유저와 자동 매칭된다
-2d 든 3d든 모양상관없이 original pong 모양이면 됌.
-game must be responsive(반응형웹?)
-제3의 유저는 다른 유저들의 게임환경을 관찰할 수 있음
*unexprected disconnection or lag 등 네트워크 이슈에 대해 최고의 유저환경을 제공해야함