Skip to content
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

Add 3D Sample #9

Open
tomspilman opened this issue Apr 25, 2014 · 21 comments
Open

Add 3D Sample #9

tomspilman opened this issue Apr 25, 2014 · 21 comments

Comments

@tomspilman
Copy link
Member

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

  • What sample should this be?
  • Can we support PlayStation Mobile?
@totallyeviljake
Copy link

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
Copy link
Collaborator

@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
Copy link
Member Author

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
Copy link

nkast commented Apr 27, 2014

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
Copy link
Member Author

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
Copy link
Collaborator

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
Copy link
Collaborator

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
Copy link
Contributor

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
Copy link
Collaborator

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
Copy link

theZMan commented Apr 28, 2014

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 <
[email protected]> 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//issues/9#issuecomment-41548043
.

@theZMan
Copy link

theZMan commented Apr 28, 2014

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 [email protected] 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 <
[email protected]> 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//issues/9#issuecomment-41548043
.

@totallyeviljake
Copy link

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
Copy link
Contributor

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

@totallyeviljake
Copy link

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
Copy link
Member Author

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
Copy link
Collaborator

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
Copy link
Member Author

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
Copy link

theZMan commented Apr 28, 2014

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 [email protected]:

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//issues/9#issuecomment-41599565
.

@tomspilman
Copy link
Member Author

  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
Copy link
Contributor

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
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants