본문 바로가기

프로젝트

(35)
[09] 230130 게임 개발 일지 - 탐지/채광 스킬 구현 (2) 탐지/채광 스킬에 추가 사항을 구현해 보았다. 기존 스킬 구현 사항에 대해 기획자 엉님과 얘기해보고 오류사항을 물어보고 추가 요구사항을 의논하는데, 약간의 소통 이슈가 있었다. 현재 채집 스킬에서 사용하는 용어가 혼동된 것이었는데, 채집 스킬 레벨, 채집 숙련도 레벨 이 두가지가 혼용되어 사용하여 요구사항을 이해하는데 소통 이슈가 있었다. 내가 개발한 내용을 상대방이 모두 파악하고 있지 않기 때문에, 개발 과정을 설명하거나 맞는지 검토할 때 항상 상대방이 이해하기 쉬운 용어를 사용하고, 기록하여 전달 할 때 헷갈리지 않도록 한 단어로 일관성 있게 사용해야 겠다고 느꼈다. 1. 숙련도 레벨/스킬레벨 에 따른 쿨타임 감소 설정 쿨타임 세팅은 서버스크립트가 아닌 클라이언트스크립트에서 설정이된다. 따라서 서버스..
[08] 230127 게임 개발 일지 - 탐지/채광 스킬 구현 두 번째 채집 스킬인 탐지 및 채광 스킬을 구현했다. 광물을 채집하기 위해서는, 먼저 탐지를 통해 광물을 발견해야 하고, 그 후 채광을 통해 광물을 캐야 한다. 탐지 전의 광물은 보이지 않으며, 채광스킬로 데미지를 입힐 수 없다. 이를 구현하기 위해 생각한 방법은 아래와 같다. 탐지 전 광물은 더미 광물로 구현한다. (투명, 데미지 입힐 수 x, 보상 x) 탐지 스킬을 쓰면 범위 내 더미 광물은 사라지고, 그자리에 채광 스킬로 데미지를 입힐 수 있는 진짜 광물이 스폰된다. 더미 광물의 종류에 따라 그 분류에 해당되는 진짜 광물들이 할당한 확률로 랜덤으로 스폰된다. 더미 광물로 구현한 후 진짜 광물을 스폰하게 한 이유는, 광물을 몬스터로 구현했기 때문에, 다른 스킬들 사용 시 데미지는 안들어가지만, 타격 ..
[07] 230126 게임 개발 일지 - 악세서리 착용 제한 + 벌목 스킬 구현 요즘 일지를 안쓴지 꽤 됐다... 부지런히 써야되는데... 매일 10분 늦게자더라도 게임 개발 한 후에 짧게라도 쓰는 습관을 들여야 겠다. 1. 악세서리 착용 제한 현재 게임에서 악세서리 장비 칸은 두칸이다. 장비 칸 index는 두 가지 구분이 가능하지만, 아이템의 type은 악세서리 하나로 동일하다. 우리 게임에서 악세서리에 할당한 장비는 채집도구, 목걸이 이다. 같은 종류의 악세서리 (채집도구 + 채집도구 , 목걸이 + 목걸이) 의 착용을 제한해야 된다. 어떻게 구분할지 좀 고민을 했던 것 같다. db번호 범위로 구분하고 싶진 않았지만... 결국 이것이 가장 편하고 변수를 적게 쓰는 방법인 듯 하여 이 방법으로 진행하였다. 조금 복잡하지만 더 좋은 방법이 생각이 나지 않아 장비 착용 시 실행되는 함..
[25] mutsa-SNS-2 6일차 - (2) Swagger api 정보 추가 swagger api에 대한 정보를 추가해 보았다. endpoint에 설명 추가 Api 이름과 설명 추가 Configuration SwaggerConfig @Configuration @RequiredArgsConstructor public class SwaggerConfig { private final TypeResolver typeResolver; @Bean public Docket api() { return new Docket(DocumentationType.OAS_30) //문서 설명 .apiInfo(new ApiInfoBuilder() .title("MutsaSNS Swagger") .description("로그인, 포스트, 댓글, 좋아요, 알림 기능") .version("1.0.0") .buil..
[24] mutsa-SNS-2 6일차 - (1) 알람 기능 test code 알람 기능의 controller의 test code를 추가하였다. 해당 test는 아래 두가지로 진행하였다. 알람 목록 조회 성공 알람 목록 조회 실패 - 로그인하지 않은 경우 AlarmControllerTest @WebMvcTest(AlarmController.class) class AlarmControllerTest { @Autowired MockMvc mockMvc; @MockBean AlarmService alarmService; @Test @DisplayName("알람 목록 조회 성공") @WithMockUser void alarm_get_success() throws Exception { when(alarmService.getAlarm(any(), any())) .thenReturn(Page...
[23] mutsa-SNS-2 5일차 - 알람 기능 추가 알람 기능을 추가해 보았다. 로그인 한 유저에게 달린 모든 댓글과 좋아요를 page형태로 return 자신이 자신의 글에 댓글과 좋아요를 달 시 알람 x 좋아요 취소후 재등록시 알람 x 1. Domain Alarm (Entity) @Builder @AllArgsConstructor @NoArgsConstructor @Getter @Setter @Table(name = "alarm") @Entity @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) public class Alarm extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id..
[06] 230108 게임 개발 일지 - 활 스킬 구현 제일 미뤄놨던 활 스킬을 구현할 차례가 왔다... 역시역시나 생각한 대로 좀 복잡했다. 활 스킬을 어떻게 구현할지 기획자 엉님과 의논 결과, 아래와 같이 구현하기로 했다. 바라본 방향에서 위 아래로 45도 이내에 가장 가까운 타겟을 잡아 자동으로 발사한다. 타겟이 없으면 그냥 바라본 방향으로 직선으로 화살을 날린다. 타겟을 잡을 때 오랜만에 수학공식을 쓰려하니... 기억이 나지 않는다... 좌표계 이동... 극좌표계... 삼각함수... 음... 이걸 다시 꺼내다니... 저번 통계쪽 계산할때도 그렇고 은근 쓸일이 있구나 하고 느꼈다. 타겟을 잡는 간단 로직은 아래와 같다. 원하는 픽셀 내의 몬스터를 갖고온다. 몬스터의 x,y좌표를 캐릭터의 x,y 좌표를 기준으로 좌표계 이동을 해준다. 캐릭터가 바라보고 있..
[22] mutsa-SNS-2 4일차 - 마이 피드 기능 test code 마이 피드 기능 test code를 추가하였다. 아래의 case를 테스트 해보았다. 마이피드 조회 성공 마이피드 조회 실패 - 로그인 하지 않은 경우 PostControllerTest @WebMvcTest(PostController.class) class PostControllerTest { @Autowired MockMvc mockMvc; @MockBean PostService postService; @Autowired ObjectMapper objectMapper; ... @Test @DisplayName("마이피드 조회 성공") @WithMockUser void myFeed_get_success() throws Exception { when(postService.getMyFeed(any(), any..