Coder Social home page Coder Social logo

monofoxe's Introduction

logo

What am I looking at?

This is Monofoxe - a game engine based on the Monogame Framework. Its main goal is to greatly simplify working with Monogame and to provide basic set of tools enabling you to just create a new project and make a damn game without removing low-level access to the framework. Monofoxe took a lot of inspiration from Game Maker, so it should be a bit familiar to some folks.

nuget View changelog

Download last stable release

View Docs

Join Monofoxe Discord

Getting started

  • Download and install Visual Studio 2019 or 2022.

  • Download MonofoxeSetup.exe from the latest release. Installer bundles Visual Studio 2019 and 2022 templates. Monofoxe is distributed via nugets, so templates aren't mandatory. It's also a good idea to install project templates for Monogame.

  • Install Monofoxe templates, and from Visual Studio New Project menu create new Monofoxe Crossplatform project.

  • Make sure you have either WindowsDX or DesktopGL project selected as default one, and you're good to go!

You can also check out the basic feature demos or the Docs to learn how to use Monofoxe.

What can it do?

Everything Monogame does, plus:

  • Graphics pipeline and automated batch\vertex buffer management.
  • Easy animation from sprite sheets.
  • Texture packing.
  • Sprite groups and dynamic graphics loading.
  • Input management.
  • Useful math for collisions and other game stuff.
  • Timers, alarms, cameras, state machines, tilemaps, foxes!
  • Coroutines.
  • FMOD audio support (As a standalone library).
  • Hybrid EC.
  • Scene system (with layers!).
  • Tiled maps support.
  • Enhanced content management via Nopipeline.
  • Hot reload (VS2022 and Rider only)
  • Lightweight collision detection.

Coming in the future:

  • Animated tiles and infinite tilemaps from Tiled.
  • Particle system.
  • Documentation.

Can I use it in my p...

Yes, you can. Monofoxe is licensed under MIT, so you can use it and its code in any shenanigans you want. Free games, commercial games, your own the-coolest-in-the-world engines - no payment or royalties required. Just please leave a credit. ; - ) (Though, if you will be using FMOD, it has its own license, which is much less permissive than mine.)

Should I use it?

Well, up to you. Currently I am developing Monofoxe alone, and can't really provide huge support, or anything. This is mostly an engine for myself and my games - I am not naive enough to think, that everyone will suddenly rush and drop Unity/Game Maker/whatever in favor of Monofoxe. But you can try. ( - :

I've suddenly started loving foxes and want to contribute

That's the spirit. Check out if I need any help on my Quire board. Stuff under Open for taking category is, well, open for taking. You can also contact me via email ([email protected]), on Twitter or on Discord.

Don't forget to check out Codestyle.cs before contributing!!!

Foxes who helped

don't forget to pet your foxes

monofoxe's People

Contributors

chaifoxes avatar deecellar avatar fdrobidoux avatar martenfur avatar mepurubun avatar ne1gh-rr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

monofoxe's Issues

Monofoxe.Playground

Had to create "C:\Program Files (x86)\Monofoxe Engine\v2-dev\NoPipeline". Still doesn't work though.

zaebalo

spelling error in Readme

When you listed the features in your readme, you misspelled your name in the link to NoPipeline, resulting in a 404 error if you try to just use the link. Hope this helps!

async/await/Task based coroutines

Allow starting/running coroutines using Task instead of IEnumerable. requires setting a synchronizationcontext on which actions will be scheduled

Pipefoxe can't parse Tiled text properties

Pipefoxe fails to parse custom text properties in Tiled maps. For example, the following object in a Tiled map fails to parse:

<object id="7" name="Sign" type="Interaction" x="260" y="80" width="40" height="20">
  <properties>
    <property name="InteractionText">* This is a sign.
* That's about it.</property>
  </properties>
</object>

I've tracked down the possible culprit in XmlHelper.cs:25.

While other's custom properties use this value attribute, the custom text property does not, instead placing the value inside of itself, as seen in the example. This causes Pipefoxe to throw an exception while parsing.

No Mac OS build

I would be interested in a build for mac OS becauseI use Mac as my primary development OS. Would this be something you are considering in the future?

Touch input in Input.cs

I started to implement a touch interface in Input.cs, and ran into issues:

Your implementation of unified buttons makes the touch input code harder than it needs to be for the different use cases.

May I ask permission refactor the code to a more traditional ...State and old...State setup on the back-end.

The existing API would not change, a hash table of buttons would be faster on lookup, but given the limited size of concurrent inputs, the gains would be non-existent.

The code will speed up since 6 heap allocations will be avoided altogether, replaced by fixed stack references.


In one of your code comments, you stated you did not like the 3 distinct access methods. I agree wholeheartedly.

I disagree with your approach to unifying the inputs: You have simply pushed the problem to the end user in a unified manor.

Dynamic bindings:

Define common fixed actions as booleans(buttons) Fire, jump, left, right, forward, back, up, down, crouch, back... and axes as floats(or threshold buttons mapped to above actions), mouse delta or gamepad. Please note the disparity between keyboard, mouse delta and gamepad in this respect.

Allow a user(or programmer) to specify the mappings as needed.
This allows for the user to provide mappings.

VS 2022 - Non-traditional install location

I installed Visual Studio in a non-traditional location (on a storage drive instead of on the OS drive). The templates were not added to Visual Studio 2022. Is there an easy way to retrieve them?

Any support for .NET CLI?

Um, hi!
This isn't really an issue but I was wondering if there was any way to create a template via the .NET Command Line?
I'm fairly new to MonoGame so there's probably something that I'm doing wrong.
Cheers, Logan B.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.