Initial commit: Godot idle game project setup with basic player movement

This commit is contained in:
MegaProxy 2025-08-06 21:52:35 +00:00
commit ef38f19f04
7 changed files with 130 additions and 0 deletions

22
.gitignore vendored Normal file
View file

@ -0,0 +1,22 @@
# Godot 4+ specific ignores
.godot/
*.tmp
# Assets folder (temporarily ignored)
assets/
# Imported translations (automatically generated from CSV files)
*.translation
# Mono-specific ignores
.mono/
data_*/
mono_crash.*.json
# System/IDE-specific ignores
.DS_Store
.idea/
.vscode/
*.swp
*.swo
*~

46
CLAUDE.md Normal file
View file

@ -0,0 +1,46 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
This is a Godot 4.3 idle game project. The game uses Godot's Forward Plus rendering method and is configured for 1280x720 resolution.
## Commands
### Running the Game
- Open the project in Godot 4.3 Editor
- Press F5 or click the Play button to run the main scene
- Press F6 to run the current scene
### Development Workflow
Since this is a Godot project, most development happens through:
1. The Godot Editor for scene editing and visual work
2. External text editor/IDE for GDScript files in `scripts/`
3. Asset pipeline through `assets/` subdirectories
## Architecture
### Scene Structure
- **Main.tscn**: Root scene that instantiates all game elements
- **Player.tscn**: CharacterBody2D-based player with movement controls
- Scenes reference scripts via `res://scripts/` paths
- Scene UIDs are auto-generated by Godot (e.g., `uid://b4ncr5x8y7kmt`)
### Script Organization
- All GDScript files go in `scripts/`
- Scripts extend appropriate Godot node types (Node2D, CharacterBody2D, etc.)
- Player movement uses built-in input actions (ui_left, ui_right, ui_up, ui_down)
### Asset Organization
```
assets/
├── sprites/ # 2D graphics and textures
├── sounds/ # Audio files (music, SFX)
└── fonts/ # Font files
```
## Important Notes
- The project uses placeholder graphics (PlaceholderTexture2D) for prototyping
- Movement speed is defined as a constant in Player.gd (SPEED = 300.0)
- The `.godot/` directory is auto-generated and should never be edited manually
- Scene files (.tscn) use Godot's text format and can be edited manually if needed, but prefer using the Godot Editor

19
project.godot Normal file
View file

@ -0,0 +1,19 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the properties are organized in sections here.
[application]
config/name="IdleGame"
run/main_scene="res://scenes/Main.tscn"
config/features=PackedStringArray("4.3", "Forward Plus")
config/icon="res://icon.svg"
[display]
window/size/viewport_width=1280
window/size/viewport_height=720
[rendering]
renderer/rendering_method="forward_plus"

10
scenes/Main.tscn Normal file
View file

@ -0,0 +1,10 @@
[gd_scene load_steps=3 format=3 uid="uid://b4ncr5x8y7kmt"]
[ext_resource type="Script" path="res://scripts/Main.gd" id="1_0xvmr"]
[ext_resource type="PackedScene" uid="uid://dxqwp3y8r4ktm" path="res://scenes/Player.tscn" id="2_1yx8k"]
[node name="Main" type="Node2D"]
script = ExtResource("1_0xvmr")
[node name="Player" parent="." instance=ExtResource("2_1yx8k")]
position = Vector2(640, 360)

18
scenes/Player.tscn Normal file
View file

@ -0,0 +1,18 @@
[gd_scene load_steps=4 format=3 uid="uid://dxqwp3y8r4ktm"]
[ext_resource type="Script" path="res://scripts/Player.gd" id="1_hqxmv"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_1"]
size = Vector2(64, 64)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1"]
size = Vector2(64, 64)
[node name="Player" type="CharacterBody2D"]
script = ExtResource("1_hqxmv")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = SubResource("PlaceholderTexture2D_1")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_1")

7
scripts/Main.gd Normal file
View file

@ -0,0 +1,7 @@
extends Node2D
func _ready():
print("Game started!")
func _process(_delta):
pass

8
scripts/Player.gd Normal file
View file

@ -0,0 +1,8 @@
extends CharacterBody2D
const SPEED = 300.0
func _physics_process(_delta):
var direction = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
velocity = direction * SPEED
move_and_slide()