MonoGame Feature Wishlist

  1. Honestly, the thing that causes me most problems is the shaders. I only develop for iOS/Android. I wish I could just pass in some GLSL code and have this work - instead of having to compile the HLSL which gives me a lot of problems. In the future if I require Windows support I wouldn’t mind writing HLSL separately for that.

If I know my hardware/targeted platforms support features - I can’t have it just work because Monogame doesn’t support it due to “Platform x” not having the capabilities. Also sometimes I have GLSL that works fine but when I translate it to HLSL it doesn’t run/compile in monogame - even though it works fine in XNA. For an example: I have had issues with vertex texture fetch.

  1. Support for hardware instancing something I would really like along with an upgrade to OpengGLES 3.0 features. I would hope this is higher priority than Metal support.

There are a few other things, but the issues above give me the most problem.

Is there any plan to support VR?

That as been the goal since the beginning… supporting a GLSL FX file. Making it happen is tricky and few have helped make it happen. You can see the latest on this here: 2MGFX does not work on non-Windows platforms · Issue #2167 · MonoGame/MonoGame · GitHub

I believe OP was referring to raw GLSL using plain old OpenGL calls to load and compile as opposed to offline compilation with the Pipeline.app. I personally only need OpenGL as well so I looked into making an Effect subclass to wrap the calls but there just isn’t enough exposed.

There are two general problems with shader compilation at runtime.

  1. Some platforms don’t support compiling shaders at runtime on the target device.
  2. Shader compilers are generally really slow for non-trivial shaders.

These issues may never be fixed entirely which is why MonoGame and XNA (and even Unity) choose for offline compilation as the default path. This decision is made with portability to all the target platforms in mind.

We discussed this over in this other thread:

http://community.monogame.net/t/so-vr-ar

Methods for drawing lines, rectangles, circles etc.

1 Like

I was the technical reviewer for the Apress MonoGame book and based on that I feel more press, documentation, and samples would go a long way. I prefer Monogame over Unity and would definitely like for it to get more attention. Amazon released their game engine recently and I still couldn’t find a reason to switch over.

Is there something like a Patreon project for monogame?

It’s not a feature by himself but if MonoGame surpass the features of XNA some kind of an official wiki (in wikipedia style) would be nice.
There is some documentation on github, some on this site and you can find many in internet.
Problem is that some are outdated, incomplete, in diffrent format, some assume you already did the previous 42 parts of the tutorial, …
With a wiki MonoGame would have a documentation which is up-to-date, has a consistent format, linked to related topics on the same site.
I know it’s a lot of work but everyone can help. unity has also a wiki

We have tried a wiki…

GitHub - MonoGame/MonoGame: One framework for creating powerful cross-platform games.

That was the MonoGame wiki for 3 or 4 years and it was always a total mess. It was always out of date, the information was good and bad, formatting totally different from page to page, etc.

I used to think a Wiki is great for docs, but that and a ton of other experiences told me it was not.

The docs are now here:

http://www.monogame.net/documentation/?page=main

… the benefits so far:

  • They are versioned with the code… so a feature change can me matched with a doc change.
  • Docs get reviewed like any other code change.
  • We finally have reference docs.

The big problem is that no one cares to write good docs. No matter where we put them… the lack of good docs is because no one writes them. And we have tried for over a year now to get people to help:

In that time maybe 2 or 3 people have helped with docs here and there, but no big efforts for big chunks of getting started documentation.

IMO until myself or one of the other core contributors decides to spend 3 months only writing docs… it will never get done. No one else really wants to help in that capacity.

1 Like

Oh, I didn’t know about the history of MonoGame documentation :frowning:
I’m new to MonoGame and already searched for some information about it (also checked links above). The most I learned from that site: http://rbwhitaker.wikidot.com/xna-tutorials
If a wiki did’t worked, maybe a structure like this gather more helping people. Some given main topics in which helping people can contribute some small tutorials/explanation to s specific topic.
The new documentation is close to that structure. Maybe add some main topics and a visual
hint that these are not written yet (like in Wikipedia). Easier and faster way to edit them would be nice too.

If I learned some more and released my first mono game I’m confident that I will write some docs.

EDIT:
Something else to add, as a XNA extension: a pitch argument in Texture2D.SetData, like:

> public void SetData<T> (    
>      int level,    
>      Nullable<Rectangle> rect,        
>      T[] data,          
>      int startIndex,      
>      int elementCount,         
>      int pitch 
>  )

index i of array “data” is shifted by “pitch” after each row of rectangle “rect”

something like cudaMemcpy2D ( CUDA Library Doc.

One feature I would like to recommend is template releases for each platform in VB. I personally use the language and am currently running my VB game using a custom (and un-updated) template (which is windows only).

On top of my suggestion I have to ask, are there any disadvantages for programming in VB rather than C#? Thanks!

2 Likes

We’re working towards that now. The plan for 3.6 is to have a new cross-platform project template generator that lets us more easily support a bunch of cross platform templates (see Add project creation tool by hach-que · Pull Request #4295 · MonoGame/MonoGame · GitHub).

We hope to support VB as much as possible along with F# and C#. The only complexity will be if VB is supported on some platforms like iOS, Android, PS4, etc.

In general no.

You could say using VB with MonoGame is more difficult as most all of our users are C# developers, so that puts you at a little disadvantage. Having to manually convert C# sample code and tutorials to VB as you go.

Performance wise VB and C# generate similar IL for most features and perform about the same in most cases. There might be a small edge in performance in C# as it gets more attention than VB and has some performance features like unsafe code which are not available in VB.

If your game is not heavily dependent on performance and you don’t mind most all the tutorials and samples being for C#… then VB is totally fine.

1 Like

Is there currently a way to use .fx files / shaders? More specifically is there a way to pass textures into a shader? Thanks!

(I’ve been trying to do this and always get a a solid green screen)

-Extended sampling options when creating spritefonts, something similar to photoshop’s “Smooth, crips, strong, none” font sampling settings would be awesome.
-I know I mentioned in another post but for sake of having it at one place: better support of processing HDR image content, currently I wasn’t able to compile .hdr using pipeline tool (had to use XNA). Since .hdr is getting outdated (and there are some problems with gamma and offset) I wish for .exr. But I completely realize this is big “can of worms” since https://github.com/openexr/openexr gave me quite decent headache.

Both are supported by the library we use for image importing. If you can open an issue on GitHub about it with at least one or two examples of .HDR and .EXR images we can look to fix the issues and support it.

I was using like old year pipelinetool from download section on site, I should keep closer look at git, newest version looks wonderful so far and exr successfuly compiled. My bad, sorry.

@Tom I guess the first item should be crossed off the list :smiley:

I converted all the templates to VB in 4.5 with an installer even though no guarentee they all work…I cant test the Mobiles or the Windows Universal and havent enough experience to use the pipeline extension but when i converted it did however compile so i believe the template is working and fully functional…

@Damien_James_Gibsoncan you post a link to a gist (gist.github.com) of the vb project file. I should be able to tell you if everything is in order.