MonoGame Feature Wishlist

Yes, it is.
spritebatch.Line, Circle, etc…

You should try first, then decide :slight_smile:

Installation is easy enough, I managed to do it myself also ^^

hmm, the monogame extended implementation is certainly interesting and probably works best for your case @eddeland

On the upside it’s integrated with spritebatch, so everything can be batched in one go and you can continue to work with it.

spritebatch.Begin()
spritebatch.Draw(tex, …)
spritebatch.DrawString(…)
spritebatch.DrawCircle(…)
spritebatch.End()

So the implementation is very easy to understand and use.

On the downside it’s not as performant as it could be since it uses spritebatch with a texture read per pixel and some rotation math each frame for each segment of a circle for example, BUT it’s still very fast in the overall context.

The per-frame cost is also constant, no caching is going on.

Overall I think it’s a good implementation, which certainly conforms to the default monogame drawing behavior and therefore I’d say it’s a good fit for almost every case.

The reason for prefering MonoGame over MonoGame.Extended is not that MonoGame.Extended is hard to install (since it isnt) but rather that it would feel nice to be able to say

“Now we are going to use MonoGame, a framework used to make Bastion, Transistor, Stardew Valley etc. and it’s easy to use and it has methods and classes for everything that we need”

and not having to say

“We also need this extra part to be able to draw circles, lines and other geometrical shapes”

It would feel more like a complete package if line-drawing and circle-drawing were added to MonoGame. I understand the idea of not adding a physics engine and other entity systems to MonoGame since MonoGame is a framework for drawing to the screen, checking input and playing audio. People may want to implement physics, entity systems and other stuff differently but to my knowledge there’s no reason not to figure out a “best way” to implement drawing of geometrical shapes that everyone could use.

You could also make a nuget package that installs Monogame + Monogame.Extended in one go, so it would be transparent/unnoticeable ?

Many shipped 2D games use Extended I think, but they talk of “Monogame”.

@eddeland All the code for MonoGame.Extended is separated across multiple packages, so for example the Tiled code is not part of the same project as the GUI code. Basically the idea is that MonoGame.Extended is "not an engine"™ allowing you to just include or copy the code you need. In your case you can just copy the one file and have students copy and paste it if you wish.

EDIT: I forgot to mention that I have been working on a SpriteBatch alternative for drawing shapes by using triangle or line primitives but the performance of SpriteBatch is hard to beat. So here’s the spill: at the end of the day its probably best to continue to use SpriteBatch for drawing textured quads (sprites and glyphs) and use a different class specifically for drawing geometric primitives such as PrimitiveBatch which can be found in FarseerPhysics. This however can cause a problem of the rendering order; using the painter’s algorithm either the sprites or the geometric primitives have to be rendered before or after each other. Use of the depth buffer and possible custom shaders might need to be needed if the painter’s algorithm is not suitable. It would be probably advantageous to use the GPU to do polygon triangulation for rendering, but MonoGame does not expose the geometry shader or the compute API for modern GPUs :cry:.

another idea will monogame make a app for smart tv ? will monogame ever run on smart tv so we can make or play games on the smart tv as a idea

If your smart tv is based on Android you can probably already run MG games compiled for Android. I haven’t tried myself but that just sounds reasonable. I don’t know much about other OS on smart tvs tbh.

OpenGL desktop video player? :slight_smile:

Would be extremely nice if you got the android graphics.isFullscreen=true to actually make it full screen, there is ZERO work arounds out there using monogame?

There is literally just 1 line of code that you need to add to your Activity1.cs file to make fullscreen hide the navbar…

how about providing that line

1 Like

as I said, once again the miracle line of code that is supposed to work never turns up, if your talking about changing the line in the theme/style, been there seen it bought the t-shirt, I’ve tried every combination nothing works, to force a full screen, yes getting rid of the status bars ok, but full screen no. As an FYI as well, setting graphics.Isfullscreen=true inside the constructor for a windows GL also won’t work, it has to be set inside either Initialize or OnLoad, only then you get a full screen window, is it even possible to force an android screen to 800x600 res? If it is I wish someone somewhere anywhere would just spill the beans and friggin say HOW!

WOAH horses, take a breather guys and come back tomorrow, we don’t need this kind of attitude on here. it helps nobody.

Let’s keep this thread on topic.

((View)g.Services.GetService(typeof(View))).SystemUiVisibility = (StatusBarVisibility)(SystemUiFlags.Immersive | SystemUiFlags.HideNavigation | SystemUiFlags.Fullscreen);

There is also the Myra UI, which I am finding quite easy to work with so far…

Xamarin just been bought by Microsoft, Xamarin studio no longer available, so? here’s the deal, Monogame, nice but still relies on opentk, those days are gone, no documentation via monogame ?
XMA, dead, I’m thinking Microsoft are trying to get all the cross platform shit together and giving it away via community?
As it turns out there is no way to put an android (NONE OF THEM) into a screen mode like, 640x480 or 800x600 or any other type, they are controlled by a thing called DIP (Density Independent Pixels), basically from what I understand your screen is a MIP map and android stretches or shrinks your background (2D) anyway it wants,
(DIP or DP) is handled in the activity file via xml and there are a bunch of options, I’m still learning so look it up yourselves, basically no matter what screen size you want it has to be handled via virtual pixels and android translates that to a full screen display, the res never changes
as an example of how it works, so no code, like I said I’m still trying to figure it out! in the simplest way to explain.
your android screen is 1024x768, could be 900x2000, you don’t know every device is deferent
you want to display 800x600 screen
your gonna run into 2 problems

  1. does your target changes resolution (some do)
  2. will it look the same on every android device? NO

The way android gets around it is to run your stuff in the background and display it on there virtual screen, your 800x600 will be displayed at what ever friggin res the tablet or phone decides! IOS and WINPHONE again does this (open the window and shout help WTF) wish there was a standard (whoops so mono not there yet), with Microsoft buying Xamarin it seems they are serious about doing that? might be DirectX across the board?
basically the reason monogame has not got the “graphics.IsFullscreen” working is cos they can’t
no way unless they mess with the activity file big time

I hope this helps some people and you can post some solutions?
Paul

can you make monogame work with torrent games also can you look into http://samsung-allshare.en.lo4d.com/ for samsung smart tv

Is support for Steam/GameCenter/GooglePlay/etc within the scope of MonoGame? Voted for Vulkan btw :slight_smile:

Ain’t samsung smart tv powered by android ?