Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
L
ldefense
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Packages
Packages
Container Registry
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Gavin An
ldefense
Commits
d155dc71
Commit
d155dc71
authored
Jun 26, 2026
by
Gavin An
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
게임의 개념 수정
parent
701f48a4
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
47 additions
and
37 deletions
+47
-37
docs/README.md
docs/README.md
+39
-29
docs/agents.md
docs/agents.md
+1
-0
project.godot
project.godot
+0
-1
src/entities/units/mage/mage_unit.gd
src/entities/units/mage/mage_unit.gd
+1
-1
src/entities/units/mage/mage_unit.tscn
src/entities/units/mage/mage_unit.tscn
+3
-3
src/map/stages/stage_1_map.tscn
src/map/stages/stage_1_map.tscn
+3
-3
No files found.
docs/README.md
View file @
d155dc71
실험용.
L-Defense 게임 개요
플랫폼: Mobile
-
게임의 개념과 목적
*
소환사가 하나의 스테이지(무대)에서 유닛들을 소환해서 무한정 생성되는 몬스터들을 잡아서 극한까지 가는 게임
*
게임이 끝난다고 해서 모든것이 초기화 되는 것이 아니라, 소환사의 레벨을 올릴 수 있어 성취감도 느낄 수 있음
*
(추후)멀티플레이가 가능하며, 비슷한 소환사의 레벨대와 경쟁할 수도 있음(내가 처치한 몬스터는 상대방의 스테이지에 보내어 경쟁)
*
소환사가 하나의 스테이지(무대)에서 무작위 유닛들을 소환해서 무한정 생성되는 몬스터들을 잡아서 극한까지 가는 게임
*
게임이 끝난다고 해서 모든것이 초기화 되는 것이 아니라, 소환사의 레벨을 올릴 수 있어 성취감도 느낄 수 있음
*
스테이지마다 몬스터의 최대 개수는 200마리, 200마리가 넘어가면 게임 오버.
*
영웅, 유닛의 개념이 있음. 영웅은 플레이어블. 유닛은 배치.
*
몬스터를 죽여서 얻은 골드를 영웅을 키우는 데 쓸 것이냐. 유닛의 증가 또는 유닛 강화에 쓸 것이냐는 플레이어의 몫
*
나는 영웅을 키워서 컨트롤을 통해 스테이지 클리어 vs 컨트롤 필요없이 유닛을 키워서 탄탄하게 스테이지 클리어
*
(추후)멀티플레이가 가능하며, 비슷한 소환사의 레벨대와 경쟁할 수도 있음(내가 처치한 몬스터는 상대방의 스테이지에 보내어 경쟁)
-
소환사 개념
*
AOS 게임처럼 유닛을 소환하는 소환사 개념이 존재.(디펜스 게임의 주인공 느낌)
*
소환사는 게임 시작 전에 선택할 수 있음
*
소환사는 레벨 개념이 존재하며, 레벨마다 각 특성을 찍을 수가 있음.
*
최대 레벨은 30
*
소환사는 고유 소환사 스킬이 있음. 쿨타임은 꽤 긴 편.
*
AOS 게임처럼 유닛을 소환하는 소환사 개념이 존재.
*
소환사는 게임 시작 전에 선택할 수 있음.
*
소환사는 레벨 개념이 존재하며, 레벨마다 각 특성을 찍을 수가 있음.
*
레벨 개념은 스테이지가 종료 되어야 반영 됨.
*
소환사는 고유 소환사 스킬이 있음. 쿨타임은 꽤 긴 편.
*
최대 레벨은 100
-
영웅 개념
*
영웅은 플레이어가 실시간으로 직접 컨트롤 가능한 유일한 유닛.
*
영웅은 일정 골드를 통해 하나만 뽑을 수 있음. 무작위 확률로 하나가 나옴.
*
영웅의 레벨은 돈으로 올릴 수 있음. 스킬 레벨업 또한 돈으로 올릴 수 있음
*
생성과 동시에 HUD UI에 영웅의 초상화가 뜨고, 영웅의 스킬 2개를 사용할 수 있음.
-
유닛 개념
*
유닛 생성시 마다 골드가 소모되며, 모두 무작위 확률로 생성
*
생성된 유닛은 스테이지의 격자에 각각 배치 가능. 고정되어 있으며 자동 공격함.
*
체력 / 공격력 / 공격속도 / 이동속도
*
유닛의 등급은 일반 / 고급 / 희귀 / 전설 / 신화 / 유일 등급
*
일반 ~ 희귀까지는 고유 스킬이 없고 일반 공격만 가능(근거리 / 원거리 구분 존재)
*
전설 ~ 신화는 고유 스킬 존재.
*
유일(영웅) 등급은 레벨이 존재하며 고유 스킬이 2개 존재
*
전설 등급 이상 유닛이 생성 되었을 때 알려주는(강조하는) 알림이 뜸
-
몬스터 개념
*
체력 / 이동속도 / 리젠 시간 각각 차이
*
매 10라운드마다 보스몹 출현. 보스몹은 유닛의 공격이 가능함.
*
체력 / 이동속도 / 리젠 시간 각각 차이
*
매 10라운드마다 보스몹 출현. 보스몹은 유닛의 공격이 가능함.
-
스테이지 개념
*
여러개의 스테이지가 존재 함. -> 평원 / 사막 / 고원 / 용암지대 / 설원 등
*
스테이지 마다 고유의 유닛 및 몬스터에 버프 / 디버프를 줌
-
유닛 개념
*
유닛 생성시 마다 골드가 소모되며, 모두 무작위 확률로 생성
*
유닛은 RTS 게임처럼 각각/부대로 컨트롤 가능함
*
PC에선 RTS 게임처럼 공격 / 이동 / 홀드 가능함
*
체력 / 공격력 / 공격속도 / 이동속도
*
모바일에선 클릭해서 이동하면 고정되는 것이 기본
*
유닛의 등급은 일반 / 고급 / 희귀 / 전설 / 신화 / 유일 등급
*
일반 ~ 희귀까지는 고유 스킬이 없고 일반 공격만 가능(근거리 / 원거리 구분 존재)
*
전설 ~ 신화는 고유 스킬 존재.
*
유일(영웅) 등급은 레벨이 존재하며 고유 스킬이 2개 존재
*
전설 등급 이상 유닛이 생성 되었을 때 알려주는(강조하는) 알림이 뜸
*
여러개의 스테이지가 존재 함. -> 평원 / 사막 / 고원 / 용암지대 / 설원 등
*
스테이지 마다 고유의 유닛 및 몬스터에 버프 / 디버프를 줌
*
스테이지의 크기는 10 x 10
-
HUD UI 구성
*
하단 중앙에 유닛 생성 버튼 존재
*
상단 중앙에 스테이지 수 / 현재 골드 양 / 몬스터의 양
*
(추후) 좌측에 유일 등급의 초상화가 존재. 영웅 개념
*
하단 중앙에 유닛 생성 버튼 존재
*
상단 중앙에 스테이지 수 / 현재 골드 양 / 몬스터의 양
*
좌측에 내가 선택한 영웅 초상화가 존재.
-
씬의 구성
*
게임 시작 화면 -> 소환사 선택 화면 -> 스테이지 선택 화면 -> 게임 시작
*
게임 시작 화면 -> 소환사 선택 화면 -> 스테이지 선택 화면 -> 게임 시작
docs/agents.md
View file @
d155dc71
...
...
@@ -27,6 +27,7 @@
3.
**3D 노드 사용:**
3D 디펜스이므로 2D 노드(
`Node2D`
)가 아닌 3D 노드(
`Node3D`
,
`CharacterBody3D`
,
`Path3D`
,
`PathFollow3D`
)를 사용할 것.
4.
**자원 관리:**
`preload()`
를 적극 활용하고, 복잡한 데이터는 커스텀
`Resource`
를 만들어 관리할 것.
5.
**독립성 유지:**
노드는 상위 노드를 직접 참조(
`get_parent()`
)하지 말고, 반드시
**시그널(Signal)**
을 통해 통신할 것.
6.
**주석 철저:**
코드를 작성하고 반드시 주석을 상세히 작성할 것.
## 4. 커스텀 CLI 명령 (에이전트 전용)
에이전트는 아래의 명령을 수행하여 프로젝트를 관리할 수 있습니다.
...
...
project.godot
View file @
d155dc71
...
...
@@ -27,7 +27,6 @@ window/size/viewport_width=1280
window/size/viewport_height=720
window/size/mode=3
window/stretch/mode="canvas_items"
window/stretch/aspect="keep"
window/handheld/orientation=4
[physics]
...
...
src/entities/units/mage/mage_unit.gd
View file @
d155dc71
...
...
@@ -114,7 +114,7 @@ func _spawn_projectile(fire_position: Vector3) -> void:
proj
.
set
(
"damage"
,
unit_data
.
damage
)
proj
.
set
(
"target"
,
_target_monster
)
proj
.
set
(
"speed"
,
18.0
)
# 불덩이는 크고 묵직하므로 조금 느린 속도(18.0m/s)로 날아가게 설정
proj
.
set
(
"color"
,
Color
(
1.0
,
0.35
,
0.1
,
1.0
))
# 붉은 주황색 계열의 색상 지정
#
proj.set("color", Color(1.0, 0.35, 0.1, 1.0)) # 붉은 주황색 계열의 색상 지정
# 셰이더 및 GPUParticles3D가 사전 구성된 불덩이 비주얼 효과 씬(.tscn)을 전달합니다.
var
fb_effect
:
=
preload
(
"res://src/entities/projectiles/fireball/fireball_effect.tscn"
)
...
...
src/entities/units/mage/mage_unit.tscn
View file @
d155dc71
[gd_scene format=3 uid="uid://br3p733g43o5f"]
[ext_resource type="Script" uid="uid://bbduakccdnoye" path="res://src/entities/units/mage/mage_unit.gd" id="1_mage_script"]
[ext_resource type="PackedScene" path="res://src/entities/units/mage/mage.tscn" id="2_mage_scene"]
[ext_resource type="PackedScene"
uid="uid://5ebt3f4yxl4d"
path="res://src/entities/units/mage/mage.tscn" id="2_mage_scene"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_body"]
radius = 0.4
...
...
@@ -12,9 +12,9 @@ radius = 0.4
height = 1.2
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ring"]
albedo_color = Color(0.
9, 0.25, 0.15
, 1)
albedo_color = Color(0.
09803922, 0.9019608, 0.09803922
, 1)
emission_enabled = true
emission = Color(0.
9, 0.25, 0.15
, 1)
emission = Color(0.
09803922, 0.9019608, 0.09803922
, 1)
emission_energy_multiplier = 2.0
[sub_resource type="TorusMesh" id="TorusMesh_selection"]
...
...
src/map/stages/stage_1_map.tscn
View file @
d155dc71
[gd_scene
load_steps=2 format=3
]
[gd_scene
format=3 uid="uid://doj12ce3mmosn"
]
[ext_resource type="MeshLibrary" uid="uid://
ddc7y16q0whgv
" path="res://src/map/tile_mesh_library.tres" id="1_mesh_lib"]
[ext_resource type="MeshLibrary" uid="uid://
cynw1xywjqb77
" path="res://src/map/tile_mesh_library.tres" id="1_mesh_lib"]
[node name="Stage1Map" type="GridMap"]
[node name="Stage1Map" type="GridMap"
unique_id=875122487
]
mesh_library = ExtResource("1_mesh_lib")
data = {
"cells": PackedInt32Array(65531, 65531, 0, 65531, 65532, 0, 65531, 65533, 0, 65531, 65534, 0, 65531, 65535, 0, 65531, 0, 0, 65531, 1, 0, 65531, 2, 0, 65531, 3, 0, 65531, 4, 0, 65532, 65531, 0, 65532, 65532, 1, 65532, 65533, 1, 65532, 65534, 1, 65532, 65535, 1, 65532, 0, 1, 65532, 1, 1, 65532, 2, 1, 65532, 3, 1, 65532, 4, 0, 65533, 65531, 0, 65533, 65532, 1, 65533, 65533, 1, 65533, 65534, 1, 65533, 65535, 1, 65533, 0, 1, 65533, 1, 1, 65533, 2, 1, 65533, 3, 1, 65533, 4, 0, 65534, 65531, 0, 65534, 65532, 1, 65534, 65533, 1, 65534, 65534, 1, 65534, 65535, 1, 65534, 0, 1, 65534, 1, 1, 65534, 2, 1, 65534, 3, 1, 65534, 4, 0, 65535, 65531, 0, 65535, 65532, 1, 65535, 65533, 1, 65535, 65534, 1, 65535, 65535, 1, 65535, 0, 1, 65535, 1, 1, 65535, 2, 1, 65535, 3, 1, 65535, 4, 0, 0, 65531, 0, 0, 65532, 1, 0, 65533, 1, 0, 65534, 1, 0, 65535, 1, 0, 0, 1, 0, 1, 1, 0, 2, 1, 0, 3, 1, 0, 4, 0, 1, 65531, 0, 1, 65532, 1, 1, 65533, 1, 1, 65534, 1, 1, 65535, 1, 1, 0, 1, 1, 1, 1, 1, 2, 1, 1, 3, 1, 1, 4, 0, 2, 65531, 0, 2, 65532, 1, 2, 65533, 1, 2, 65534, 1, 2, 65535, 1, 2, 0, 1, 2, 1, 1, 2, 2, 1, 2, 3, 1, 2, 4, 0, 3, 65531, 0, 3, 65532, 1, 3, 65533, 1, 3, 65534, 1, 3, 65535, 1, 3, 0, 1, 3, 1, 1, 3, 2, 1, 3, 3, 1, 3, 4, 0, 4, 65531, 0, 4, 65532, 0, 4, 65533, 0, 4, 65534, 0, 4, 65535, 0, 4, 0, 0, 4, 1, 0, 4, 2, 0, 4, 3, 0, 4, 4, 0)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment