본문 바로가기
개발자 도전기/[SW사관학교 정글] 개발일지

나만의 무기 | 프로젝트 소개 | 지인들과 내기를 위한 소셜 웹 게임

by 답수 2021. 10. 24.
728x90
SMALL

 

 

1. 주제

  • 소셜 웹 미니 보드 게임: 친구, 동료들과 실시간으로 온라인에서 멀티 게임을 즐길 수 있도록 하는 웹 서비스 기획
  • 지인들과 내기를 위해 짧은 러닝타임과 간단한 조작법의 게임들 개발 예정

 

2. 프로젝트 목표

| 안정적인 동시성 프로그래밍

  • 소셜 서비스인만큼 동시 접속자들이 게임을 진행할 때, race condition 등의 동기화 문제 없는 서버 구축

| 접근성

  • 누구나 쉽게 접근할 수 있도록 웹 기반 게임 개발
  • 쉬운 게임 룰과 조작법으로 게임에 대한 진입 장벽 낮추기

| Fun

  • 게임의 본질은 재미! 짧은 시간에 동료끼리 재밌는 추억을 공유할 수 있는 게임 구현

 

3. 주제 선정 배경

  • 커피나 점심 내기를 할 때 사다리 타기 등 복불복 게임만 하는 것은 식상함
  • 웹으로 쉽게 접근할 수 있고, 간단하게 즐길 수 있으면서 실력으로 승리를 쟁취할 수 있는 게임 제작

 

4. 최종 결과물 설명

| 웹 기반 게임 서비스

  • PWA를 활용하여 모바일 친화적인 UI/UX 제작
  • 지인끼리 짧은 순간의 재미를 위한 내기용 게임들 제작 예정 (5~6개)

| 동시성 프로그래밍 

  • 다중 사용자들이 동시에 클릭해야 하는 상황에 (e.g. 박터뜨리기) IO 요청 처리 빠르게 진행

| 최근 전적 및 승률 데이터 구현

  • 회원가입 후 게임 진행 시, 게임 결과 및 전적 데이터 보여주기
  • 게임 플레이 횟수와 승리 횟수에 따른 등급 부여 (e.g. 계란 - 계란후라이 - 계란말이 - 계란찜 - 치킨 ..)

| 결과 공유 기능

  • 공유 기능 추가로 게임 결과를 단톡방에 공유

 

5. 예상되는 기술 스택

| 기술 스택

  • 프론트엔드: react(type script)
  • 백엔드: node js(express, mongoose)
  • DBMS: mogoDB
  • 인프라: AWS, PWA

 

| 선정 이유

  • 동시 접속과 요청 빠른 처리에 적합
    - node js는 비동기 IO모델을 지원하며 single-thread 기반으로 동작하는 서버
    - 비동기 방식으로 요청을 처리하므로 요청을 처리하면서 다음 요청을 받을 수 있음

  • 5주의 개발 시간 고려
    - node js는 5만 개 이상의 모듈을 보유하고 있어서 개발 시간 단축에 유리
    - react, node js 모두 javascript 기반의 언어로 다른 언어에 비해 빨리 익히고 사용 가능

  • 내기 상황을 고려했을 때, 모바일 환경 비중이 높다고 판단하여 PWA 이용

 

6. 게임 (기획 중)

  • 박터뜨리기
  • 사다리 게임

 

 

* 와이어 프레임: https://ovenapp.io/project/lWlyFuSNW0vbVPN9tqwFoRWqJCADwlwu#Vmom0

728x90
LIST

댓글