Skip to content

A game engine built on MonoGame with a focus on ease-of-use for simple pixel art games.

License

Notifications You must be signed in to change notification settings

11clock/Clockwork

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clockwork (old version)

A C# game engine built on MonoGame with a focus on ease-of-use for simple pixel art games.

Its structure is based on a hybrid of GameMaker and HaxeFlixel, taking the best of both to create an ideal pixel art workflow.

Status

Abandoned, since I am rebuilding it from the ground up.

Features

Current

  • Core Game Loop
  • Virtual Resolution (consistent ingame resolution across all screens)
  • Content Libraries
  • Scenes & Objects
  • Sprites & Images, Drawing
  • Sprite Animations
  • Keyboard & Mouse Input
  • Delta Time (fixed update loop for consistent behavior)
  • Mouse Detection On Game Objects
  • RNG
  • Alarm Clock (delayed method calls)
  • Collision Checking (only bounding box and position for now)

Planned

Soon

  • Drawing Text
  • Camera
  • Basic Audio
  • More Game Control (fullscreen, changing window size post-launch)
  • Gamepad Input

Later

  • Scene Enhancements, Groups
  • Tile Maps: Ogmo
  • Aseprite Metadata As Resource (converting Aseprite metadata into sprites and animations)
  • Animation: Individual Frame Delays (have some frames last longer than others without needing to register them multiple times)
  • Animation: Callbacks
  • Shape Collision Checking (rectangles, lines, circles, polygons)
  • Collision Mask (replaces bounding box, allows more collision shapes)
  • Tile Maps: Tiled
  • Project Configuration XML
  • Drawing Shapes

Under Consideration

  • Multi-Frame Collision Masks, Attaching Them To Sprites
  • Sprite As Resource, Editor
  • Animation As Resource, Editor
  • Nested Objects (objects as components)
  • Content Library Management (group content into different libraries and load and unload them as needed)
  • Correcting Imperfect Pixel Scaling
  • Custom-Made Content Pipeline
  • Multiple Cameras

Not Planned

  • FMOD: Proprietary audio library, integrate it into your project yourself if you want to use it.
  • Physics: This engine is focused towards pixel art, where advanced physics usually aren't needed. I don't recommend using a physics engine if your game doesn't require it. If you really do need it, integrate an existing library on your own.
  • Level Editor: Level editing needs can vary heavily from game to game (or not require a level editor at all), and many advanced GameMaker users ended up just making their own editors. I will compensate with support for a couple of popular 3rd party tilemap editors, though (Ogmo and Tiled), and tools to help you easily integrate your own.
  • 3D

Why?

I grew up with GameMaker and loved working with it for the 10 or so years that I used it, but I have become increasingy frustrated by its limitations, particularly with its built-in scripting language. Also, because GameMaker is a sandboxed environment, it lends itself to be difficult to extend. I desire the flexibility of a more robust, feature complete language like C#, and running my own engine gives me the ability to extend it in whatever way I want.

I have tried other engines like Godot, Unity, and HaxeFlixel, but either I run into core issues, or the engine itself doesn't have an ideal workflow for pixel art like I had with GameMaker. I will use such engines for other types of games, but for pixel art I need a better solution.

Unfortunately, not everything from GameMaker translates well to C#, and there were parts of the engine's architecture that I did not like working with. To alleviate this, I will be taking some inspiration from the HaxeFlixel game engine as well.

About

A game engine built on MonoGame with a focus on ease-of-use for simple pixel art games.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages