MonoGame / MonoGame.Samples

A few cross-platform game samples using MonoGame.
www.monogame.net
Other
564 stars 299 forks source link

Add 3D Sample #9

Open tomspilman opened 10 years ago

tomspilman commented 10 years ago

We need to add a sample that exercises the non-SpriteBatch side of rendering. Things to work out:

totallyeviljake commented 10 years ago

What happened to that sample with the space ship that ran across a checkerboard play area. There were some random 3d shapes. This sample had an fbx file with it too. @CartBlanche do you remember this one??

SimonDarksideJ commented 10 years ago

@totallyeviljake That was the chase camera example, or are you referring to the reach sample. Neither were complete project so I wouldn't have thought they would qualify for the new samples repo. @theZMan did share the marble maze sample as well but it needs a fair amount of work. Even larger @CartBlanche has offered the upgraded racing car sample, which works but has serious shader issues. When I get time I'll start some new branches with the current state of those samples and people can fork them to their hearts content and move them forward.

tomspilman commented 10 years ago

When I get time I'll start some new branches with the current state of those samples and people can fork them to their hearts content and move them forward.

Just submit PRs for the samples to the new develop branch here. It doesn't have to be finished to merge and it lets people work on it from one central location.

nkast commented 10 years ago

Finding the old XNA samples gets harder those days! I think those two are the ones mentioned. http://xbox.create.msdn.com/en-US/education/catalog/sample/chasecamera http://xbox.create.msdn.com/en-US/education/catalog/sample/picking

Or start one a simpler one like Primitives3D? http://xbox.create.msdn.com/en-US/education/catalog/sample/primitives_3d

tomspilman commented 10 years ago

It also doesn't have to be an existing XNA sample. We could roll our own sample that shows off what we want to show being cross platform.

SimonDarksideJ commented 10 years ago

I'm actually less inclined to have just samples. I think I'd prefer to see complete titles like Spacewar / racing game / marble madness / rocket commander even. They seem to promote better quality than a quick fix. So long as they are fairly well documented in their construction.

The only old XNA pure sample I think probably fits with the new repo would be the Reach sample because of all the elements it demonstrates (I think I still have that lying around somewhere)

SimonDarksideJ commented 10 years ago

As requested I've submitted two samples to the develop branch for new samples. Both are primarily running on WindowsGL and need updating to other platforms. Both have shader issues, noted in their commits.

Also Neon Shooter, since updating to 3.2 no longer draws to the screen however this may be due to it's full screen render code using shaders as I've seen that before in other samples including spacewar.

Will publish the other samples I had in the works when I get a chance to the develop branch.

CartBlanche commented 10 years ago

Hi Gents, sorry I've only just stumbled across this, even though I was mentioned in it 3 days ago.

My suggestion for the samples, based on lessons learnt with the previous lot, would be to port or create game samples, rather than code samples, like we did previously. I think devs seeing a game working, will think about scavenging bits from it for their own games.

Meaning 3D game samples (only 2 or 3 max) like http://xbox.create.msdn.com/en-US/education/catalog/starterkit/shipgame, http://xbox.create.msdn.com/en-US/education/catalog/lab/marble_maze or updating http://xbox.create.msdn.com/en-US/education/catalog/sample/robot_game and http://xbox.create.msdn.com/en-US/education/catalog/sample/racing_game may be potentially good candidates, though not trivial ports.

2D wise, again only 2 or 3 Platformer (already done), http://xbox.create.msdn.com/en-US/education/catalog/starterkit/ninjacademy, http://xbox.create.msdn.com/en-US/education/catalog/sample/blackjack (should be done for some platforms) http://xbox.create.msdn.com/en-US/education/catalog/sample/spacewar, http://xbox.create.msdn.com/en-US/education/catalog/sample/roleplaying_game(should be done for some platforms) and possibly updating a retro sample like http://xbox.create.msdn.com/en-US/education/catalog/sample/vector_rumble (which was mostly done, but has suffered some bit rot since then).

Would be awesome to have a simple voxel game example, but we might need to speak to GarethIW about that, if he fancies sharing his knowledge, after his game ships.

Anyway some things to think about going forward.

SimonDarksideJ commented 10 years ago

Hi @CartBlanche Most of those are covered so far and agree on most of them.

spacewar already done along with a 2D vector shooter but in the develop branch MarbleMaze I got from Andy, so will put that up soon in the dev branch Racing Game I got from you (mostly) working so will publish that as well Will look in to the others.

So many memories

I was going to try rocket commander but it's still in XNA 3 so would need upgrading to 4.0 first

theZMan commented 10 years ago

I'm pretty sure I had nothing to do with MarbleMaze :-)

Based on the Microsoft samples we came to the conclusion that starter kits are actually fairly useless as teaching aids unless you are trying to clone that game type and even then they have to be so simplified for beginners that people still have to ask additional questions. Or you go so advanced like the racing game that I do not believe anyone has ever got any use from it other than the guy who reskinned it and called it his own. These things need more than a 1 page HMTML doc to ship with them. They are however great demos that MonoGame is stable and has a wide enough API.

The feature example starter kits work REALLY well for 'how do I do X' problems but then fail for 'how to I do X in my game' because beginners are usually not good enough to change the context. Personally I still use the feature samples all the time on XNA for those cases where there's something like networking that I only 2 once every 2 years. So these are important and have a long term value.

So really you need a mix, or something different that Microsoft never found.

Voxels are popular but there's nothing simple about it IMO... I think something that big is better left as its own project rather than shipping as a sample.

The most important thing for all the MonoGame samples is they should always run on all the possible platforms and illustrate the horrible corner cases where there may be issues.

On Mon, Apr 28, 2014 at 4:32 AM, Simon (Darkside) Jackson < notifications@github.com> wrote:

Hi @CartBlanche https://github.com/CartBlanche Most of those are covered so far and agree on most of them.

spacewar already done along with a 2D vector shooter but in the develop branch MarbleMaze I got from Andy, so will put that up soon in the dev branch Racing Game I got from you (mostly) working so will publish that as well Will look in to the others.

So many memories

— Reply to this email directly or view it on GitHubhttps://github.com/Mono-Game/MonoGame.Samples/issues/9#issuecomment-41548043 .

theZMan commented 10 years ago

One more thing that we discussed with Microsoft about the samples. They are all different... Microsoft used external contractors to write each one and every one has a different style so there is no way to progress from one to another. Since I did Marblets and SpaceWar you will see consistency between them somewhat but none of the others. They also didn't have any of the feature samples or even the empty game template so we didn't even use code from those in the starter kits... again this kills beginners as they have no clue what is going on.

All of us are experienced enough to work around these flaws so its hard for us to notice.

On Mon, Apr 28, 2014 at 6:41 AM, Andy Dunn zman@thezbuffer.com wrote:

I'm pretty sure I had nothing to do with MarbleMaze :-)

Based on the Microsoft samples we came to the conclusion that starter kits are actually fairly useless as teaching aids unless you are trying to clone that game type and even then they have to be so simplified for beginners that people still have to ask additional questions. Or you go so advanced like the racing game that I do not believe anyone has ever got any use from it other than the guy who reskinned it and called it his own. These things need more than a 1 page HMTML doc to ship with them. They are however great demos that MonoGame is stable and has a wide enough API.

The feature example starter kits work REALLY well for 'how do I do X' problems but then fail for 'how to I do X in my game' because beginners are usually not good enough to change the context. Personally I still use the feature samples all the time on XNA for those cases where there's something like networking that I only 2 once every 2 years. So these are important and have a long term value.

So really you need a mix, or something different that Microsoft never found.

Voxels are popular but there's nothing simple about it IMO... I think something that big is better left as its own project rather than shipping as a sample.

The most important thing for all the MonoGame samples is they should always run on all the possible platforms and illustrate the horrible corner cases where there may be issues.

On Mon, Apr 28, 2014 at 4:32 AM, Simon (Darkside) Jackson < notifications@github.com> wrote:

Hi @CartBlanche https://github.com/CartBlanche Most of those are covered so far and agree on most of them.

spacewar already done along with a 2D vector shooter but in the develop branch MarbleMaze I got from Andy, so will put that up soon in the dev branch Racing Game I got from you (mostly) working so will publish that as well Will look in to the others.

So many memories

— Reply to this email directly or view it on GitHubhttps://github.com/Mono-Game/MonoGame.Samples/issues/9#issuecomment-41548043 .

totallyeviljake commented 10 years ago

Chase Camera was definitely the 3d sample that I was remembering. That one had an FBX file with embedded textures. That was a great sample of how to load a simple mesh model from a production file format.

CartBlanche commented 10 years ago

Agreed @theZMan Being consistent across them, would be great for beginners.

totallyeviljake commented 10 years ago

The tutorials that I found the most helpful:

http://www.xnaresources.com/default.asp?page=TUTORIALS

These were great in that they built on eachother and were very simple. I even used one to argue a bug in MonoGame Android so long ago ...

tomspilman commented 10 years ago

Remember these are not tutorials. I don't think we want the mess of dozens of samples we used to have. We just need 2 or 3 quality samples and that is it.

SimonDarksideJ commented 10 years ago

So should we restructure the sample repo slightly. One root folder for "Sample Projects" and one for "Examples". Unity does a similar thing with theirs so people can choose which type to look at.

tomspilman commented 10 years ago

So should we restructure the sample repo slightly. One root folder for "Sample Projects" and one for "Examples".

I don't think we should have this distinction.

My concern is a year from now there will be a dozen various games, samples, examples, demos, tutorials, etc in this repo and we'll be back at the mess we had before.

2 or 3 focused sample games that show what one can do cross-platform with MonoGame... that is all we need.

theZMan commented 10 years ago

Sample games serve 3 purposes

  1. Starter Kit for new people
  2. Examples of what can be done
  3. Gives us test cases we can control.

Problem is these are at odds with each other. To do #3 you need to have breadth of APIs used - for #1 to be good you need simplicity and for #2 you need lovely graphics and sound and the APIs only matter that you can say its MonoGame.

In theory maintenance should not be a problem - the whole point is that anything conforming to XNA API should keep running so having lots of samples shouldn't be a big deal for maintenance purposes.

Feature samples only serve #1 and #3 but you need a lot more than 2-3 samples.

So whats the focus here?

On Mon, Apr 28, 2014 at 12:04 PM, Tom Spilman notifications@github.comwrote:

So should we restructure the sample repo slightly. One root folder for "Sample Projects" and one for "Examples".

I don't think we should have this distinction.

My concern is a year from now there will be a dozen various games, samples, examples, demos, tutorials, etc in this repo and we'll be back at the mess we had before.

2 or 3 focused sample games that show what one can do cross-platform with MonoGame... that is all we need.

— Reply to this email directly or view it on GitHubhttps://github.com/Mono-Game/MonoGame.Samples/issues/9#issuecomment-41599565 .

tomspilman commented 10 years ago
  1. Examples of what can be done

This is really all we should be aiming for. Nice looking examples of what can be done cross-platform with MonoGame. People can hack at them and learn some from them... but they are not tutorials or starterkits.

We only need 2 or 3 for now. Eventually we could add a couple more that really make MonoGame look good... beyond just copies of old XNA demos.

  1. Gives us test cases we can control.

We have something for this coming... we shouldn't consider the samples to be for testing or QA.

In theory maintenance should not be a problem

In practice it has been a problem and I worry it will get worse as we transition beyond the stock XNA API.

CartBlanche commented 4 years ago

I'm in the process of updating Ship Game to 3.8. Hoping the shader issue of the past can be fixed for this release.

SimonDarksideJ commented 4 years ago

Great stuff @CartBlanche , will work with you to get it into the latest template once you have it working.