🏹 Practice for Godot with making 2D Survivors Game.
🗡 Reference : Create a Complete 2D Survivors Style Game in Godot 4 by Firebelley Games
🗡 More Information about References
⚙ (2024-01-08)
Main Menu
- Main Menu 추가
- Play, Options, Quit Button이 있음
- 시작 화면이 Main -> Main Menu로 변경 됨
⚙ (2024-01-05)
Music
- Music 추가
⚙ (2024-01-03)
SFX
- Victory jingle, Defeat jingle 추가
⚙ (2024-01-01)
SFX
- UpgradeCard Click 및 Hover Sound 추가
⚙ (2023-12-31)
SFX
- SoundButton 추가
- RestartButton과 QuitButton 교체
⚙ (2023-12-30)
SFX
- SFX를 위한 Sound 파일 추가
- RandomStreamPlayer에 Pitch Random 옵션 추가
- Experience Vial을 먹으면 5가지 중 랜덤한 소리가 남
- Player가 공격받으면 5가지 중 랜덤한 소리가 남
⚙ (2023-12-29)
SFX
- SFX를 위한 Sound 파일 추가
- RandomStreamPlayer 추가
- Enemy가 공격받으면 5가지 중 랜덤한 소리가 남
⚙ (2023-12-28)
Vignette
- Vignette 추가
- Player Health가 변화할 시 Player Damage 효과 추가
⚙ (2023-12-25)
Player
- 이동속도 감소
- VelocityComponent 추가
Upgrade
- Player MovementSpeed Upgrade 추가
⚙ (2023-12-24)
Theme
- Button Style 추가
⚙ (2023-12-23)
End Screen
- End Screen Animation 추가
⚙ (2023-12-21)
Experience Bar
- Experience Bar 테마 수정
⚙ (2023-12-19)
Upgrade
- Upgrade Card에 in, Hover, discard Animation 추가
- Upgrade 선택 창에 약간의 Background 추가
⚙ (2023-12-18)
Theme
- NameLabel을 담기 위한 Theme Update(AlternatePanelContainer)
- Upgrade Panel Theme의 디자인 수정
⚙ (2023-12-17)
Theme
- PanelContainer를 위한 Theme 추가
- 이제 Upgrade Panel에 푸른색 Panel이 적용됨
⚙ (2023-12-13)
Upgrade
- Sword Damage Upgrade, Axe Damage Upgrade 추가
- Upgrade Manager의 upgrade_pool을 WeightedTable로 변경
- Axe Upgrade를 하지 않으면 Axe Damage Upgrade가 나타나지 않도록 수정
Floating Text
- Floating Text에 format 추가
- 이제 정수가 아닐 경우 소수점 첫째자리까지 표시함
⚙ (2023-12-12)
Hit Flash Component
- HitFlashComponent 추가
- Enemy의 체력이 변화하면 반짝이는 효과를 넣어줌
Enemy
- HitFlash 효과 추가
⚙ (2023-12-09)
Floating Text
- FLoating Text 추가
- Enemy에게 주는 Damage가 표기됨
⚙ (2023-12-07)
Theme
- Theme 생성
- Font 추가
⚙ (2023-12-06)
Experience Vial
- Animation 추가
⚙ (2023-12-05)
Wizard Enemy
- Animation 추가
⚙ (2023-12-04)
Weight Tabel
- Enemy들의 스폰율을 조절하는 Weight Table Script 추가
- 이제 여러 Enemy들의 출현 빈도를 조절할 수 있음
⚙ (2023-12-03)
Enemy
Wizard Enemy 추가
Velocity Component
Enemy들의 이동을 관리하는 Velocity Component 추가
Max speed와 Acceleration을 조절할 수 있음
⚙ (2023-12-01)
Enemy
- Enemy Death Animation 구현 (DeathComponent 이용)
- 이동하는 방향에 따라 Sprite가 자연스럽게 반전됨
⚙ (2023-11-30)
Enemy
- Enemy 이동 Animation 추가
Death Component
- Enemy Death Animation 구현을 위한 Death Component 구현
⚙ (2023-11-29)
Player
- Animation 추가
- 이동하는 방향에 따라 Sprite가 자연스럽게 반전됨
⚙ (2023-11-28)
Ability
- Ability 최대 선택가능 횟수 추가(Sword: 5, Axe: 1)
- AxeAbility의 쿨다운 증가 (2s -> 3.5s)
⚙ (2023-11-27)
Upgrade
- Axe Ability가 Upgrade UI에 나옴
- Upgrade UI를 통해 Axe Ability가 적용됨
- 이제 UpgradeCard가 최대 2개씩 중복없이 나옴
- Axe는 Ability 분류임 -> 기본공격이 아닌 Upgrade로 추가를 하는 방식
⚙ (2023-11-26)
Ability
- Axe Ability 추가
- AxeAbility Scene과 AxeAbilityController 추가
- Axe가 Enemy를 공격함
- Axe가 플레이어 주위로 회전하며 이동함 (Tween 이용)
⚙ (2023-11-25)
Enemy Manager
- 벽 바깥에서 Enemy가 생성되는 현상 수정
⚙ (2023-11-24)
TileMap
- 벽 타일맵, 바깥 배경 TileMap 추가
- 이제 벽 타일맵 바깥으로 Entity들이 이동할 수 없음
⚙ (2023-11-23)
Difficulty
- 시간이 지남에 따라 Enemy Spawn rate 증가
- 5초마다 difficulty 상승
⚙ (2023-11-22)
Player
- HealthBar 추가
- 현재 체력을 표시함
UI
- EndScreen 추가
- VictoryScreen과 DefeatScreen을 출력함
⚙ (2023-11-20)
Scene Tree
- Scene Tree 정리
- Tree에 Entities, Foreground Node2D 생성
- Entities에는 Player와 Enemy가, Foreground에는 Ability가 위치함
Player
- Health 추가 (HealthComponent 이용)
- 0.5초 간의 무적시간이 있음
⚙ (2023-11-18)
Upgrade
- Upgrade UI로 나온 UpgradeCard를 누르면 실제로 해당 Upgrade가 적용되도록 변경
⚙ (2023-11-17)
Upgrade UI
- Upgrade UI로 나온 UpgradeCard를 누르면 실제로 누른 Upgrade가 Dictionary에 들어감
- Upgrade UI가 사라지고 게임은 다시 진행됨
⚙ (2023-11-16)
Upgrade UI
- UpgradeScreen, UpgradeCard 추가
- LevelUp시, Dictionary에 넣어진 upgrade 정보가 화면에 나옴
- 게임은 Pause상태가 됨
⚙ (2023-11-15)
Resources
- ability_upgrade script를 가지고 있는 sword_rate Resource 추가
- id, name, discription을 export variable로 가짐
Upgrade Manager
- Upgrade Manager 추가
- Experience Manager의 LevelUp 신호를 받아 Upgrade가 진행됨
- upgrade pool 중 하나를 랜덤으로 골라 Dictionary에 집어넣음
⚙ (2023-11-14)
Experience Bar
- Experience Bar 추가
- Vial을 먹은 만큼 추가된 Experience Bar가 화면에 보임
⚙ (2023-11-13)
Components
- HitboxComponent와 HurtboxComponent 추가
- HitboxComponent : SwordAbility를 구성, Layer, Damage 설정
- HurtboxComponent : BasicEnemy를 구성, Mask, Damage를 HitboxComponent에서 전달받아 HealthComponent의 Damage()를 실행시킴
- 두 Components를 활용해 Damage 기능 추가
- 이제 BasicEnemy가 SwordAbility 두 방에 사라짐
⚙ (2023-11-09)
Experience Vial
- Experience Vial 추가
- Player와 일정 거리 안에 있으면 사라짐
- Experience Manager, GameEvents(Autoload) 추가
- Player가 Experience Vial을 먹으면 현재 Experience 수치가 Console에 표시됨
Components
- Composition 기법 활용
- HealthComponent와 VialDropComponent 추가
- HealthComponent : 체력 기능을 활용할 수 있음
- VialDropComponent : 죽고 나서 vial을 떨어뜨릴 수 있음
⚙ (2023-11-08)
Change Acceleration
- GameCamera : 카메라가 조금 더 빠르게 Player에 따라붙음
- Player : 약간의 가속효과 추가, 이동속도 감소
- Enemy : 이동속도 감소
Enemy
- 이제 Enemy끼리 완전히 겹쳐지지 않음
Motion Mode Setting
- Player, Enemy의 Motion Mode를 Grounded -> Floating으로 변경
Time
- ArenaTimeManager, ArenaTimeUI 추가
- 이제 진행 시간이 UI로 표시됨
⚙ (2023-11-07)
Ability
- 이제 Sword Ability가 Enemy를 없앰
- 이제 Sword Ability가 Enemy 주변에서 적절하게 회전되어 공격함
Enemy Manager
- Enemy Manager 추가
- 이제 Basic Enemy가 플레이어 주변에서 자동으로 생성됨
⚙ (2023-11-06)
Ability
- Sword Ability Animation 추가
- 이제 Sword Ability가 Player 주변의 가까운 Enemy에서 나옴
⚙ (2023-11-04)
Ability
- Sword Ability 추가
- 1.5초마다 검이 나오기만 함 (공격기능 미구현)
⚙ (2023-11-03)
Enemy
- Basic Enemy(Rat) 추가
- Player를 추적하는 기본적인 Movement 추가
- Player와 Enemy가 충돌하지 않도록 Layer 설정
⚙ (2023-11-02)
Player
- 기본적인 Movement 추가
Map
- TileMap, TileSet 추가
Game Camera
- GameCamera 추가
- 이제 GameCamera가 Player를 따라다니며 화면을 움직임