Flow Week 3분반
- KAIST의 마스코트인 넙죽이를 조종해서 목적지에 도착하는 간단한 안드로이드 게임입니다.
- 카카오 계정을 이용해 회원가입 및 로그인할 수 있습니다.
- 숙명여자대학교 소프트웨어융합전공 박예나
- KAIST 전산학부 김성혁
- OS : Android (minSDKversion: 23, targetSDKversion: 31)
- Language : Kotlin, node.js, MySQL
- IDE : Android Studio, Visual Studio code
- Target Device : Galaxy S7
- 사용자의 카카오 계정을 사용해 로그인할 수 있습니다.
- 이전에 로그인했다면, 자동으로 로그인합니다.
- 이 로그인 정보를 이용해 사용자를 식별하고 정보를 저장합니다.
-
메인 화면에서는 다음 세 개중 하나를 고를 수 있습니다.
- BASE
- 앱에 기본으로 들어있는 레벨을 플레이 할 수 있습니다.
- RATING
- 경험치 랭킹을 확인할 수 있습니다.
- STORE
- 레벨 에디터와 스토어에 접근할 수 있습니다.
- BASE
-
본 게임의 방식은 간단합니다. 방향키를 눌러 넙죽이를 골인 지점에 가도록 하면 됩니다.
- 넙죽이의 이동은 ConstraintLayout에 배치된 넙죽이의 layout_margin 값을 수정하는 것으로 구현되었습니다.
-
단, 제한 시간과 온도가 존재합니다.
- 제한 시간이 다 되면 실패하게 됩니다.
- 온도는 게임 성공과 실패에 영향을 주지는 않지만 점수로 취급됩니다. 낮을 수록 좋습니다.
-
레벨에 배치된 아이템을 획득하면 온도가 변합니다.
- 초록색 구는 친환경 아이템으로, 획득하면 온도가 내려갑니다.
- 빨간색 구는 온난화 아이템으로, 획득하면 온도가 올라갑니다.
-
FREEZE 버튼은 레벨 당 딱 한 번만 사용할 수 있습니다. 이 버튼을 누르면…
-
골인 지점에 제한 시간 내에 도착하면 레벨을 클리어하고 온도를 볼 수 있게 됩니다.
- 사용자는 직접 레벨을 제작해 서버에 업로드 할 수 있습니다.
- 사용자는 레벨에 들어갈 모든 요소를 직접 배치하고 관리할 수 있습니다. 레벨 에디터는 RecyclerView, Dialog Activity 등의 여러가지를 이용해 구현되었습니다.
- 사용자의 레벨은 json 파일로 변환되어 서버에 전송됩니다. 전송은 HTTP 방식으로 이루어집니다.
- 사용자는 다른 사용자가 제작한 레벨을 다운로드해 플레이하고, 경험치를 획득할 수 있습니다.
- 사용자는 RecyclerView로 구현된 레벨 리스트를 통해 레벨의 이름과 제작자를 확인할 수 있습니다.
- 사용자가 레벨을 클리어하면, 경험치를 획득하고 클리어 기록이 저장됩니다.
- 사용자의 경험치는 서버의 DB에 저장됩니다. 어떤 사용자가 어떤 레벨을 클리어 했는지는 사용자의 기기의 DB에 저장됩니다.
- 사용자가 다운로드 받은 레벨은 사용자의 기기에 저장됩니다.
- 사용자가 이후에 온라인에서 레벨을 클릭하더라도, 기기에 저장되어 있다면 다시 다운로드하지 않습니다.
- 사용자가 획득한 경험치를 바탕으로 순위가 매겨집니다.
- 순위표에서는 등수와 이름, 경험치를 확인할 수 있습니다.
- 순위표는 RecyclerView로 제작되었고, DB에서 경험치가 가장 높은 상위 사용자들을 불러와 보여주는 방식으로 동작합니다.
서버는 node.js로 개발되었습니다. 서버에서는 MySQL DB와 통신하여, 사용자가 요청한 데이터를 제공하거나 DB에 작성합니다.
- 구현된 기능은 다음과 같습니다.
- 사용자의 경험치를 불러오고 저장합니다.
- 사용자의 경험치 랭킹을 보여줍니다.
- 업로드된 레벨의 목록을 보여줍니다.
- 전송된 레벨을 저장합니다.
- 서버에 저장된 레벨을 전송합니다.