Skip to content

September minutes #147

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Sep 12, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 134 additions & 0 deletions website/content/blog/2024-09-11-meeting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
---
title: Board Meeting Minutes
date: "2024-09-11"
excerpt: The year in review
tags: foundation
author: MonoGame Foundation
image: /images/blog/cover/monogame_foundation.png
ogImage: /images/blog/cover/monogame_foundation.png
---

## Attendee's

- Dean Ellis - President
- Dominique Louis - Treasurer
- Simon Jackson - Corporate Secretary
- Tom Spilman - Banking Matters
- Marko Jeremic - Board Chairman
- Thomas Altenburger - Board Member

## Agenda

- Content Pipeline enhancements.
- Release improvements.
- Bounties updates.
- Full-time appointment.
- Releases are go.

## Content Pipeline enhancements.

A common thread we come across from veterans or users of other tools focuses on the Content Pipeline, basically "Why do I need this thing at all". While we have tried to remain informative as to the benefits of preparing, compressing, and formatting content in advance for platforms, there are still those who would prefer not to.

So, in the spirit of the Foundation's desire to keep things moving, we have taken the bold decision to improve direct access to content for those that need it, and rather than force users (as was always the case in the past) to duplicate code or implement complicated strategies for handing content, we have kicked off an initiative to simplify content loading from files by hiding the complexity behind the very same methods used to load content from the content pipeline.

- [`Content.Load<Texture>("asset name");`](https://github.com/MonoGame/MonoGame/issues/8481)
- [`Content.Load<SoundEffect>("asset name");`](https://github.com/MonoGame/MonoGame/issues/8482)
- [`Content.Load<Song>("asset name");`](https://github.com/MonoGame/MonoGame/issues/8483)
- [`Content.Load<Video>("asset name");`](https://github.com/MonoGame/MonoGame/issues/8484)

The flow will basically be like this:

1. Try to load the `.xnb` as normal, if the Content.Load<Texture2D> call fails, then:
2. Then search the Content directory (or sub-directory) provided by assetName for files other than .xnb which can be loaded without an importer (i.e. BMP, PNG, JPG, JPEG should be enough and are supported)
3. Try to use (for example) `Texture2D.FromStream(_graphicsDevice, file, DefaultColorProcessors.PremultiplyAlpha);` on that file (assuming premultiplied alpha here because it is MGCB's default)
4. Continue as normal.

::: note For later
At this time, shaders and models will still have to use the Content Pipeline as there are many dependencies involved in handling these kinds of content. We will address them in time, but for now, they will have to wait.
:::

The benefit of this approach is to also ease the burden as projects evolve and developers may want to switch to the content pipeline (or other methods) at a later date, and rather than cause dramatic reworkings of code, instead, the content will simply need to move and the code stays the same.

::: important
If you have a suggestion on how to improve this or add more flexibility at runtime, **NOW** is the time to have your voice heard by commenting or making suggestions in the issues above.
:::

### Release Improvements

Like the Content Pipeline improvements above, the same view has also been turned to the way we release MonoGame today via NuGets. We recognize this might not be a 100% fit for all as NuGet does impose some limitations, especially for offline use.

To this end, we have also kicked off two other streams of work:

- [Update build pipeline to generate a "Complete" Source package for releases](https://github.com/MonoGame/MonoGame/issues/8485)

Currently, the Source package that GitHub automatically generates ONLY contains the MonoGame source, it does not include submodules or dependencies.
This change will generate a zip that includes **ALL** source, including submodules and dependencies so that it can be dropped in a project and referenced.
Source access will allow a project to be completely self-contained and build the framework on demand.


- [Update build pipeline to generate a "Binaries" Source package for releases](https://github.com/MonoGame/MonoGame/issues/8486)

Currently the Binaries package that GitHub automatically generates ONLY contains the MonoGame binaries, it does not include submodules or dependencies.
This change will generate a zip that includes **ALL** binaries and dependencies so that it can be dropped in a project and referenced.
Perfect for automation or offline scenarios where snapshot builds of dependencies are needed without modification. (instead of NuGet)

Hopefully, this will open up new avenues for advanced projects and pipelines.

::: important
If you have a suggestion on how to improve this or add more flexibility at runtime, **NOW** is the time to have your voice heard by commenting or making suggestions in the issues above.
:::

### Bounties, Bounties, Bounties

Work continues on all existing bounties, but these updates were at the top of mind for discussion.

- DX12 / GDK support is a go
The work for the DX12/GDK update is now complete, required dependencies for the "platform" are being merged into the public MonoGame this week. Once in, the private Xbox repo will be published with the new updates, then finally the public MonoGame / GDK updates can be published. Expect this amazing release imminently (more imminently than previously imminent, meaning very soon (tm))

- The final gap in updating the Content Pipeline dependencies is complete
The [Basis Universal](https://github.com/MonoGame/MonoGame/pull/8456) bounty was the final milestone in generating true cross-platform capabilities needed for an updated Content Pipeline. All that remains now is the work to stick it all together. But even that will not be the end, as once the NativeAoT work is complete, it will open up even more avenues for enhancement.

- NativeAoT platform is 99% done!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding the NativeAot being 99% done.. Does that need clarification that is does not mean anyone can even use it yet. Some people will only read the titles after all.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well two things.... maybe give a one sentence summary of what the NativeAoT is.

Then add something like:

The NativeAoT platform is nearing completion and will be usable in the coming XXXXX.

This has been a major undertaking for none other than MonoGame Founder `Tom Spilmann` and he reports it is almost complete. We need to get this 100% correct as it marks a huge leap forward in native access to platforms and opens the door to a better Switch platform, Vulkan for iOS/Android and more, as well as other inherent benefits. Stay tuned.

### Full Time maintainer - full steam ahead

Now that we have had an official meeting and preceded over a vote on the subject, we have given the go-ahead for a full-time member to take on the role of "MonoGame Maintainer" whose duties will include:

- General admin, site maintenance, community engagement
- Socials management - Patreon, LinkedIn, Twitter, Facebook
- PR reviews and clean-up
- Issue fixing, reviews and clean-up
- Bounty posting, review, and chasing bounty holders
- Taking on specific bounties and progress
- Docs reviews and maintenance

::: note
This is not an exhaustive list as we are still grinding out the details, but the main task is to pick up the slack from the part-time, sometimes lacking efforts from the existing board members to dedicate time to these efforts in between their busy work life and precious free time. We do our best, but we have never been able to 100% focus on these tasks.
:::

It was also agreed to appoint none other than `Dominique Louis` will take on the role as he will have the time now to take on the role. We wish Dom all the best in taking on this mammoth challenge (especially if you only look at the issue backlog, shudder).

The final details to award this role are still being worked out, but the Foundation has to be able to afford this appointment and it likely will not be at "market rates" as this is a non-profit organization after all.

## Updates releases and schedules

One month on from the `3.8.2` release and we are already making plans for next month's release, assuming the recent PR merges warrent it. We were very serious about keeping pace and we are tightly focused on it.

::: Important
We will endevour to keep the 2-monthly schedule for releases, but **ONLY** if there is sufficient change to warrant a release, but we will give due notice and reasons should a release not be forthcoming. If you want releases at this pace, we need your support to keep making changes and moving forward.

Essentially, if you want/need something, then **Get a PR ready and submit it!** (with the appropriate suggestion issue to outline the change of course :D)
:::

Before you know it, MonoGame `4.0` will be on our doorstep ince sufficient large changes are in play, which from this months meeting, you should be able to draw your own conclusions.

## Get Involved

[Contributions are welcome through:](https://monogame.net/donate/)

- Code.
- Help in the Community discord and beyond (we also love blog posts).
- [Patreon](https://www.patreon.com/bePatron?u=3142012), several tiers are available.
- PayPal.
- The MonoGame store (coming soon) with MonoGame branded gear and merchandise.