Sign in to follow this  
ChristianFrantz

transition from 2d to 3d

Recommended Posts

So last night I successfully finished my space invaders game :D all together I've made pong, breakout, and space invaders. I want to get into 3d programming now and I think I have a pretty good grasp on c#. Would I be better off sticking with XNA or using a different library for 3d? Or should I stick with a few more 2d games? I'm just excited and eager to start on 3d lol

Share this post


Link to post
Share on other sites

Make more complex 2d games like super Mario. stuff like that actually requires the programmer to plan his design before coding. This is much more true in 3d

Share this post


Link to post
Share on other sites

Do you think the game will be better in 3d?It will spend your more time and energy,and you should consider about this issue.

What's more,great 2d games are also welcomed by lots of players.

Share this post


Link to post
Share on other sites

I would definitely recommend sticking with XNA, since when you decide to take other platforms for a spin, all you need to do is just to do a conversion to MonoGame and suddenly your game can run on Andorid - Playstation Vita, iOS on to pof XBOX, WP8 and PC.

 

I can totally understand your desire to switch to 3D.

 

If I can slightly point you in the right direction, I would very strongly recommend staying off the games that need 3D characters - it is way too much work to get them created in the first place, properly textured, animated in 3dsmax and then get the same done in a 3D engine. Save that for some later game.

 

If you can think of a 3D game you'd like to make that does not involve 3D characters, then you just saved yourself an incredible amount of work.

 

Thing along the lines of:

- military theme - tanks don't need animation (you just use the rotation matrix)

- space theme - internet is full of free spaceship models and free spaceground backgrounds

- racing game - you would need some physics API here, though

- flight simulation - no characters here, but large-scale terrain rendering will keep you busy for a year or two :-)

Share this post


Link to post
Share on other sites

I don't know if youre familiar with the game Cube World, but I really like the graphics it has. Eventually my plan is to make a multiplayer game using those types of graphics. The game will include mining for resources, creating enemies from a spawn point, and sending them to the enemies "castle" which the player can improve by mining and cutting down trees. I know I have a long way to go before I ever get that far but I need to start somewhere :P I actually have no idea where I would even start with 3d game making because I feel like there are so many options and I really need to start out with the easiest option

Share this post


Link to post
Share on other sites

I am not familiar with Cube World, but it sounds awefully similar to MineCraft.

 

Which, in fact, is a Good Thing (TM), because:

 

1. Zero overhead with creation of art assets - no need to handle importing of meshes, finding artists and standing above them with the long stick :-)

2. You create the Cubes as meshes in code - very simple - lots of sample code around

3. No gfx effects [at all] are needed - look at the pathetic visual quality of Minecraft

Share this post


Link to post
Share on other sites

I actually have no idea where I would even start with 3d game making because I feel like there are so many options and I really need to start out with the easiest option

This is actually simple, though perhaps laboursome at first:

1. Grab some XNA sample that has some 3D camera

2. Create a XZ plane with Y=0 that will temporarily serve as a level terrain - just repeat some texture at first - just to get sth on screen as fast as possible - this is very important, because internally, the gameplay logic will be 2D (e.g. only X and Z position, since ypos=0). Later you can add the terrain, where the ypos will vary.

3. Understand the camera and how it works - make sure you can , at any time, in your main class get the camera loc and orientation and its view matrix

4. Start rendering some cubes above the ground.

5. Promote few cubes into "Enemies" and start moving them along a series of waypoints (e.g. "Patrolling") - create a FiniteStateMachine for that with states like ("Stand", "Still", "Walking","Dead")

 

That should keep you busy for a while smile.png

Share this post


Link to post
Share on other sites

I would definitely recommend sticking with XNA, since when you decide to take other platforms for a spin, all you need to do is just to do a conversion to MonoGame and suddenly your game can run on Andorid - Playstation Vita, iOS on to pof XBOX, WP8 and PC.

It's not quite that simple...

 

From the MonoGame website:

 

 

system requirements

FOR DEVELOPMENT
  • iOS - Mac OS X, MonoTouch, MonoDevelop
  • Android - Mac OS X or Windows, Mono for Android, Mono Develop or Visual Studio
  • MacOS X - Mac OS X smile.png, MonoMac, OpenTK, MonoDevelop
  • Windows - Windows, Mono, OpenTK, MonoDevelop or Visual Studio
  • Linux - Linux, Mono, OpenTK, MonoDevelop

To develop a game for iOS and Mac, you'd need a Mac. To develop a game for iOS or Android, you need MonoTouch or Mono for Android, products from Xamarin that cost an arm and a leg.

It's not really a "suddenly your game can run everywhere" sort of thing, unfortunately.

Edited by willpowered

Share this post


Link to post
Share on other sites

I googled Cube World, and while that game does look fun, I think it would still be pretty tough to program an Action RPG Voxel destructable Terrain multiplayer game coming straight off of 2D Pong.

 

using cubes is a good start though.  You could try and make a Geometry wars type game.  Or if you want to look into 3D Modeling (check out Wings3D) Free cross-multiplatform modeler which I use (easier to use then Blender, but can't do animation which is an advanced subject anyways).

 

If you want to use models that don't animate you can think about things like spaceships, pirate ships, tanks, buildings.....

Share this post


Link to post
Share on other sites

I must have missed those $300 licenses recently. That kinda sucks. Still, it is not the fault of the MonoGame Team...

 

However, if your game does not generate even those $300 combined on PC, XBLIG and WP7/8, then I don't really see a point in getting it to run on iOS/Android either :-)

Share this post


Link to post
Share on other sites

Imagine the blocks in Minecraft and them put a 9x9 grid on them. Thats the size I want my blocks to be. There will be mining, but not as intricate as the mining in Minecraft. The maps won't be random either so Im going to need to create a map editor and make them myself. It will be first person, and the enemies you spawn are basically going to be spheres with some effects to look like a wisp from Warcraft 3, unless I can figure out a better alternative and one that allows there to be over 500 enemies on the screen at a time. I have the whole layout of the game written down, I just need to learn how to program in 3d first so I can apply that to the game I want to make. I'm estimating that itll take over 3 years before I can actually make what I want to :P but Im willing to learn

Share this post


Link to post
Share on other sites

I just made a camera and triangle in 3d using the code from the book Learning XNA 4.0 and I couldnt understand any of the code. I don't know if the author didnt explain it well enough or Im just retarded but its really confusing lol

Share this post


Link to post
Share on other sites

You certainly didn't expect to understand everything on the first go, now did you ?

 

I certainly wouldn't try to understand ALL of the required 3D math at first.

 

With camera - just experiment a lot with the methods XNA provides for the camera - so that you can at least use it. While it helps to understand it in detail, it is not really necessary at first.

 

What you really need to understand is the Euclidean space, know the orientation of all 3 axis and understand the concept of translation and rotation - just use the XNA's built-in functionality. That is certainly enough to get you going.

 

 

Also, to make the orientation in the empty 3D space feasible, I would, as a very first excercise, put some cube (or whatever else) at Position 0,0,0. That way, you will always have an orientation point to relate to.

 

That being said, I read few books that tried to explain some problem space and even though I knew that problem space very well, I did not get it from that book. Knowing is not enough to teach...

Share this post


Link to post
Share on other sites

Thanks for all the advice!! Ill have to look at other books and tutorials and see which one makes the most sense to me. I understand the x,y,z coordinate system pretty well so I dont think that should be too much of a problem

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this