Projects(27)
-
[SimpleChat] #1. 간단한 1:1 채팅 프로그램 만들기 (with Java Socket)
1. 시작하게 된 계기개인적으로, 옛날부터 네트워크 활용 경험이 부족한 것이 약점이라고 생각해왔습니다. 개발 공부는 만들고 싶은 것을 만들면서 Top-down 형태로 공부해나가라는 말을 많이 봤죠. 저 또한 이에 동의하며, 거창한 건 아니더라도 간단한 기능부터 점차 살을 붙여가며 개발해볼까 합니다. 2. 뭐부터 시작해야하지?..하지만 의욕과 달리, 처음부터 난관에 부딪혔습니다. 자바 언어를 활용해 응용 프로그램을 만들어 본 경험도 없고, 책도 없었습니다. 다행히 저에겐 구글이라는 방대한 지식 창고가 있고, 최근에 고용한 `Claude`라는 멋진 비서가 있죠. Claude에게 간단한 채팅 프로그램을 만들기 위해 뭐부터 시작해야 하는지 물어봤습니다. 저는 아래와 같이 Claude가 알려준대로 학습을 진행해보..
2024.12.12 -
[Charon] #Final. 간단한 보스몹 만들기 + 카메라 셰이킹(with 시네머신)
어찌보면 여기까지가 이 프로젝트의 마지막 구현일 수 있겠네요. 오늘은 간단하게 만든 보스몹에 대해 얘기해보겠습니다. 보스몹은 게임에서 플레이어에게 위압감과 함께, 목표를 심어주는 역할을 합니다. 하지만, 제가 만든 보스몹은 그에 반해 너무 초라하네요...ㅎㅎ😂 시간 관계상 간단한 2가지 패턴만 적용시키기로 했었습니다. 1. 보스몹 "진광" 보스몹 "진광"의 패턴은 플레이어와의 거리에 따라 두 가지밖에 없습니다. 플레이어와의 거리가 멀 경우, 회전베기 동작을 두 번하며 플레이어에게 접근합니다. 플레이어와의 거리가 가까울 경우, 거대한 검을 소환하며 땅을 내려찍습니다. 일반 적 몬스터와 다르게, 다음 특별 사항 또한 존재합니다. 넉백 효과와 타격 애니메이션이 적용되지 않습니다. 공격을 시전 중일 때에는 무적..
2023.04.05 -
[Charon] #11. 다양한 적(Enemy)의 이동, 공격 구현하기
일반적인 게임에서는 플레이어를 방해하는 적(Enemy)들이 존재합니다. 이들은 플레이어를 공격하거나, 플레이어가 게임 진행을 원활하게 진행하는 것을 방해하는 목적을 가지고 있습니다. 이 게임에서도 적들이 존재하며, 각각 어떻게 구현했는지에 대해 얘기하는 시간을 가져보려고 합니다. 1. AI Navigation 기능을 통한 적의 맵 내 이동 기본적으로 적들은 맵 내에서 이동 가능한 지역만을 돌아다녀야 합니다. 이동 불가능한 지역을 뚫고 간다던가, 목표 지점을 앞에 벽이 있는데도 옆으로 돌아가지 않고 계속 벽을 향해 이동한다면 게임 진행이 안 될 것입니다. 또한, 자기가 이동 중인 방향을 바라보며 이동해야 하며, 방향 전환을 위해 회전을 했는데 어설프게 회전하는 것도 게임에 대한 몰입을 깰 것입니다. 이러한..
2023.04.05 -
[Charon] #10. "카론의 노" 무기 공격 및 스킬 구현하기
플레이어가 공격을 하거나 스킬을 사용하면, 그에 따라 화려하고 멋진 이펙트와 사운드가 나면서 유저가 게임에 더욱 몰입할 수 있게 해줍니다. 이펙트는 아티스트분들이 제작하여 주지만, 저는 아티스트가 없기 때문에 Unity Asset store에서 구매하여 사용하였습니다. 문제는 제가 이펙트를 적용하여 게임을 제작해 본 적이 없다는 것이지요. 공격 및 스킬 이펙트를 모션과 어떻게 싱크를 맞춰 자연스럽게 보이게 할 것이며, 피격 판정 또한 어떻게 하면 자연스럽게 들어갈까가 고민사항이었습니다. 이 부분에 대한 경험이 없다보니, 구글링도 해보고 유튜브도 찾아봤지만 죄다 아티스트를 위한 이펙트 제작 정보만 있었습니다... Unity Asset Store에 샘플 프로젝트라도 있었으면 뜯어봐서 참고해봤을텐데 찾진 못했..
2023.04.04 -
[Charon] #9. 대시(Dash) 선입력(Input Buffer) 기능 추가하기
1. 선입력(Input Buffer)이 필요한 이유 게임에서 로직의 실행 단위는 프레임(Frame)입니다. 게임을 하다보면 FPS(Frames Per Second)란 수치를 볼 수 있는데, 1초에 몇 프레임이 실행되는지를 나타냅니다. 좋은 고사양 장비인 경우에는 200 프레임 이상의 수치를 보여주곤 합니다. 우리 게임에서 대시 애니메이션이 30fps이 조금 넘습니다. 이것은 선입력을 통한 버퍼가 없다면, 플레이어가 저 짧은 시간 내에 타이밍을 맞추어 입력을 해야 한다는 의미가 됩니다. 대시를 하는데 그 정도의 집중력을 쓰게 되면 피로도가 빨리 쌓이게 되겠죠. 철권과 같은 격투 게임은 커맨드(Command)라는 게 존재하는데, 입력 버퍼가 존재하기에 편안하게 콤보를 입력할 수 있습니다. 우리 게임에도 이러..
2022.11.16 -
[Charon] #8. 플레이어와 카메라 사이의 오브젝트 투명화하기
졸업 작품을 마무리하는 시즌이라 바빠서, 개발에만 몰두하다 보니 글을 쓸 시간이 없었네요. 마감이 다가오니, 효율적이고 좋은 소스 코드를 짜는 것과 시간 안에 마무리 하는 것 사이에서 타협을 해야 했습니다. 그러다 보니, 이게 좋은 방법인가를 고민할 겨를이 많이 없어 하드 코딩도 어느 정도 들어간 것 같습니다. 시간이 나면 차차 다시 고민해보며 리팩토링을 해보고 싶네요. 글을 안 쓴 지 오래 되었다 보니, 어디서부터 글을 써야할 지 모르겠더군요,,, 그래서 일단 최근에 한 것 중 글을 독립적으로 쓸 수 있는 부분부터 써보도록 하겠습니다. 1. 쿼터뷰(isometric view) 시점의 문제점 이 게임은 3D 로그라이크 핵 앤 슬래시 게임으로, 쿼터뷰 시점을 가지고 있습니다. 위에서 살짝 대각선 방향인 부..
2022.11.16