# Lantern & Pike

Lantern & Pike is an independent game studio focused on atmospheric, systems-driven adventures with small worlds, memorable characters, and meaningful player choices.

This repository contains the development workspace for **Hollow Harbor**, a narrative exploration game set in a storm-battered fishing town where each night resets—but the town remembers what you changed.

## Features

- Branching quests shaped by player decisions
- Dynamic weather and day/night cycles
- NPC schedules, relationships, and persistent memories
- Exploration, fishing, crafting, and light puzzle-solving
- Keyboard, mouse, and controller support
- Configurable graphics, audio, accessibility, and gameplay settings
- Local save profiles with automatic backups
- Developer console and debug overlays for internal builds

## Requirements

- Git
- Godot 4.3 or later
- Windows 10+, macOS 12+, or a modern 64-bit Linux distribution
- GPU with Vulkan 1.0 support
- 4 GB RAM minimum; 8 GB recommended

## Installation

Clone the repository:

```bash
git clone https://github.com/lantern-and-pike/hollow-harbor.git
cd hollow-harbor
```

Import the project into Godot:

1. Open Godot.
2. Select **Import**.
3. Choose `project.godot` from the repository root.
4. Select **Import & Edit**.

To launch from the command line:

```bash
godot --editor project.godot
```

## Usage

Run the game from the Godot editor by pressing `F6` for the current scene or `F5` for the full project.

You can also start the game directly:

```bash
godot --path .
```

Common development commands:

```bash
# Run automated tests
godot --headless --path . --script res://tests/run_tests.gd

# Start with debug overlays enabled
godot --path . -- --debug-ui

# Load a specific test scene
godot --path . res://scenes/testing/harbor_test.tscn
```

Default controls:

| Action | Keyboard and Mouse | Controller |
| --- | --- | --- |
| Move | `WASD` or arrow keys | Left stick |
| Interact | `E` | South face button |
| Use tool | Left mouse button | Right trigger |
| Open inventory | `Tab` | North face button |
| Open journal | `J` | View/Select button |
| Pause | `Esc` | Menu/Start button |

## Configuration

Project defaults are stored in `config/default.cfg`. User-specific settings are created automatically on first launch and stored in the platform-specific Godot user data directory.

Example configuration:

```ini
[display]

window_mode="windowed"
resolution_width=1920
resolution_height=1080
vsync=true
max_fps=120

[audio]

master_volume=0.85
music_volume=0.70
effects_volume=0.90
mute_when_unfocused=false

[gameplay]

text_speed=1.0
camera_shake=0.75
autosave=true
autosave_interval=300

[accessibility]

subtitles=true
subtitle_size="medium"
high_contrast_interactions=false
reduce_flashing=false
hold_to_confirm=false

[development]

debug_ui=false
skip_intro=false
log_level="info"
```

Command-line arguments override configuration values for the current session:

```bash
godot --path . -- \
  --window-mode fullscreen \
  --resolution 2560x1440 \
  --log-level debug
```

Do not commit local settings, save files, generated imports, or exported builds. These paths are excluded through `.gitignore`.

## Project Structure

```text
.
├── assets/         Art, audio, fonts, and source assets
├── config/         Default and environment-specific configuration
├── scenes/         Game scenes and reusable scene components
├── scripts/        Gameplay, UI, systems, and editor scripts
├── tests/          Automated tests and test fixtures
├── localization/   Translation catalogs and dialogue resources
├── project.godot   Godot project definition
└── README.md
```

## Contributing

Hollow Harbor is currently developed by a small private team. External pull requests are not being accepted, but bug reports with reproduction steps, logs, and system information are welcome.

Before submitting changes, ensure the project launches without import errors and all automated tests pass.

## License

Source code is licensed under the MIT License unless otherwise noted. Art, music, writing, characters, and other game assets are © Lantern & Pike and may not be redistributed or used in other projects without written permission.