A work-in-progress game and associated engine for a puzzle platformer as a spiritual successor to a college project.

Matt Kava 4f68c5b1d0 Squash commit. Adding draw commands for Text and Rectangle and cleaning up sprite batch extensions. Prepped for Spritesheet drawing. 2 years ago
Engine 4f68c5b1d0 Squash commit. Adding draw commands for Text and Rectangle and cleaning up sprite batch extensions. Prepped for Spritesheet drawing. 2 years ago
Essence 6714f3da32 Adding existing source code. 2 years ago
EssenceTools 6714f3da32 Adding existing source code. 2 years ago
.gitignore 9d5f7eec48 initial commit 2 years ago
Essence.sln 6714f3da32 Adding existing source code. 2 years ago
LICENSE 9d5f7eec48 initial commit 2 years ago
README.md 67f3d9897d README presentation. 2 years ago

README.md

Essence

A work-in-progress game and associated engine for a puzzle platformer as a spiritual successor to a college project.

Language / Framework

Written in C# using the MonoGame framework. A custom engine built off of MonoGame is being developed to handle the usual engine-ish bits (file I/O, drawing, user inputs, networking) as well to facilitate the game mechanics and logic.

Contributing

Currently only a solo project.

Breakdown

Engine Custom game engine extension using MonoGame as the heavy-lifter.

Essence Actual MonoGame-derived Game class and current location for all game mechanics.

EssenceTools Sets of tools for creating and maintaining game content external to the MonoGame pipeline.

Why?

The initial project was written in C# using the XNA Game Studio 4.0 framework. Since the XNA framework is no longer being developed and supported, there is no reason to stay on that platform and MonoGame is the community driven replacement for XNA, thus the conversion and having to recreate many of the components to fit the MonoGame-way.

Since the initial project was created during a college semester and for a class, the design of the code was not very clean or efficient. The goal of the class was to create a minimum viable project. This project intends to create a stable engine that can be used to make a better and more expansive game in a cleaner, more efficient process with overall better code and design.

Next Steps

In no particular order...

  • DrawCommands need to be created for all graphic needs and implemented (lines, text, sprites, spritesheets).
  • Refactor the Controller and ControllerGenerator to work fully (to and from XML) and ideally changable and savable user controls.
  • User Interface controls... events, drawing, proper parenting for draw commands.
  • Unit tests for all existing components. Implement TDD completely into dev/build process.
  • Creating a collection for handling of all entities currently being updated and drawn.
  • Levels and such...