mxashlynn / Parquet

Mechanics and models for queer 2D building, crafting, and narrative sandbox games.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Parquet

This class library implements mechanics and models for a 2D sandbox game focused on building, crafting, and narrative, more or less in that priority order.

A game built with this system offers many of the features of contemporary quest-driven building games but in a simple, top-down world and without combat.

Version 0.4 Warning

Code and documentation are incomplete and under rapid development. Expect frequent breaking changes. Maybe don't use this yet; when the Alpha milestone has been hit the project should be much more usable.

Design and usage will be fully documented once the Beta milestone has been reached.

Development milestone deadlines are tentative right now. Because this is one of several side projects that I maintain in addition to my fulltime dayjob, it will be a long time before Parquet is ready.

Goals

This project has two goals:

  1. To provide a foundation for games developed in C# stacks;
  2. To provide a learning exercise for the lead developer.

Due to goal 2, no attempt has been made to design the most elegant, efficient, general-purpose, or powerful library possible. What has been attempted is a cleanly-coded, clearly-documented, easily maintainable class library.

Features

Parquet targets the following features:

  1. A peaceful 2D top-down overworld map that may be explored.
  2. Simple free-form building mechanics allowing player characters to create homes in the world.
  3. Resource collection mechanics allowing players to upgrade their homes and tools.
  4. A simple crafting system allowing players to unlock new tools and building materials.
  5. Interactive noncombatant NPCs.
  6. A quest system encouraging players to build particular building types.
  7. Dialogue and narrative delivery.
  8. Data-driven design with all game models customizable from CSV files.

Repository Structure

The solution contains several related projects. Each C# namespace gets its own folder.

  • Documentation
    • How to use the library and its tools.
  • ExampleData
    • Configuration files used in developing and testing the library.
  • ParquetClassLibrary
    • The library itself. The root namespace contains classes for working with Models and Statuses.
    • Beings, including player characters and NPCs.
    • Biomes, sets of characteristics that Regions may share.
    • Crafts, recipes and mini-games that produce Items.
    • Items, objects that Beings may carry, including parquets.
    • Parquets, the basic units of play.
    • Properties error strings, icons, and other static content.
    • Regions, collections of parquets and Beings which together make up the game world.
    • Rooms, built from parquets and recognized at runtime.
    • Scripts, used to define Being Interactions and Item effects.
  • ParquetRunner
    • A simple smoke test.
  • ParquetUnitTests
    • Unit tests for ParquetClassLibrary.

Requirements

To work with this repository you will need:

Contributors

About

Mechanics and models for queer 2D building, crafting, and narrative sandbox games.

License:MIT License


Languages

Language:C# 100.0%