I'm not sure why everyone has this crazy idea that starting with 2D is easier. Especially as an indie developer. Even with the free modeling programs, there is infinitely less work than drawing hundreds or thousands of sprites.
Unless you have severe math skill problems, using the latest APIs will allow you to jump directly into 3D. 2D development will end up having you use hacks and work-arounds to make everything fit together. Once you nail the foundation down for a 3D engine, you don't have to worry about limitations anymore either. And trust me, if you start with 2D, you'll find almost nothing but limitations.
With all of that said, 2D games are my favorite. I plan on seriously moving into 2D some day when I get better [wink]
Ewww.... I just played the original Diablo
You know, I think you're right.
However, if properly equipped, 2D probably would be easier to program. It's just that it's so outdated and no one really makes them anymore (professionally). But don't forget, technology advanced, so someone had to put in the effort to make a modelling program, which is like loading hundreds of sprites.
As far as gameplay is concerned, I'm pretty sure 2d would be easier to implement, but as a whole, I think you're right Jiia.
Gardon
However, if properly equipped, 2D probably would be easier to program. It's just that it's so outdated and no one really makes them anymore (professionally). But don't forget, technology advanced, so someone had to put in the effort to make a modelling program, which is like loading hundreds of sprites.
As far as gameplay is concerned, I'm pretty sure 2d would be easier to implement, but as a whole, I think you're right Jiia.
Gardon
Well, making 3D games is generally an order of magnitude harder for beginners, because adding the concepts of 3D math, model loading and rendering, control mechanisms, etc, to the list of things that you need to learn just starting out is quite an additional leap.
If you're new to games programming, don't start by making up your own game. Take a traditional, turn-based game that you know really well (like chess, draughts, poker, etc) and try to implement it as a computer game.
Find yourself a toolkit that you like and learn it. You'll need to get comfortable with art and code production pipelines. You might want to learn by starting at a low-level and picking up some basic toolkits (Python with PyGame, or C++ with SDL are awesome toolkits), or you might want to pick up a fully-fledged engine and run with that (Allegro is a personal favourite, and Torque 2D is mind-blowing).
The thing is, if you're starting, start small. Unless you're an experienced programmer and you know your production pipeline well enough that you don't need to refer to documentation, trying to tackle a larger project is going to slow you down.
The hardest thing in making a game is motivation. When you take on too ambitious a project, making little progress eats away at motivation at an astonishing rate.
Good luck, because once you start making games, it's very, very addictive. :)
If you're new to games programming, don't start by making up your own game. Take a traditional, turn-based game that you know really well (like chess, draughts, poker, etc) and try to implement it as a computer game.
Find yourself a toolkit that you like and learn it. You'll need to get comfortable with art and code production pipelines. You might want to learn by starting at a low-level and picking up some basic toolkits (Python with PyGame, or C++ with SDL are awesome toolkits), or you might want to pick up a fully-fledged engine and run with that (Allegro is a personal favourite, and Torque 2D is mind-blowing).
The thing is, if you're starting, start small. Unless you're an experienced programmer and you know your production pipeline well enough that you don't need to refer to documentation, trying to tackle a larger project is going to slow you down.
The hardest thing in making a game is motivation. When you take on too ambitious a project, making little progress eats away at motivation at an astonishing rate.
Good luck, because once you start making games, it's very, very addictive. :)
I disagree, I find 2D to be much easier to work with. Animation can be a pain but a good designer designs around his limitations anyway. With 2D I have "unlimited" detail and can come up with any visuals I want. With top-down 2D everything is easy and even fun to program. Isometric is something I'm not very interested in, one might as well use 3D for that. Fake voxels, on the other hand, are where the hacks come in. Most of my code consists of 'hacks and work-arounds'. It all depends on the look you want for your game, amateur developers ignore that too often. Their games lack harmony, everything's clashing with everything else on the screen.
Quote:
Original post by Jiia
I'm not sure why everyone has this crazy idea that starting with 2D is easier. Especially as an indie developer. Even with the free modeling programs, there is infinitely less work than drawing hundreds or thousands of sprites.
Unless you have severe math skill problems, using the latest APIs will allow you to jump directly into 3D. 2D development will end up having you use hacks and work-arounds to make everything fit together. Once you nail the foundation down for a 3D engine, you don't have to worry about limitations anymore either. And trust me, if you start with 2D, you'll find almost nothing but limitations.
With all of that said, 2D games are my favorite. I plan on seriously moving into 2D some day when I get better [wink]
You can use DX9 to make 2d games also. So that ease-of-entry that you get in 3d you will get in 2d as well. D3DX has a sprite class that *appears* to make it pretty trivial (though I haven't used it).
2d is (arguably) more technically limiting than 3d, but those limitations reduce the number of things you have to worry/think/design about, which in turns make the overall task easier. Which is why many experienced people tend to suggest starting with 2d. Because newer programmers tend to focus on the "renderer" as the "engine". Which is not true - there's much more code involved in the rest of the game engine than there is in the rendering code.
Writing a full game is more important than writing a nice renderer. If you want to be ambitious in a more useful way, make your game 2d, but abstract it in a way that you could just plug in a 3d renderer at some point with little or no effort. Then don't let yourself indulge in playing with 3d rendering (because it's fun) until you've written a save/load system, a user-configurable input system, a data-driven GUI, a solid AI, a 5.1-compatible sound system that supports occlusion/doppler/EAX, a scripting language and integration between scripting and GUI, a memory manager that has specialized allocators per resource type and provides external logging and replay for debugging memory fragmentation, a networking system that will enable a 16-player game to update at 60Hz... then you can think about starting figuring out how to redesign your resource system so that you can stream the world in as you run around.
The list goes on and on. And once you have proven that you're capable of those kinds of things, you can pretty much get hired anywhere. Whereas the guy who comes in with nothing but a graphics demo that has all the latest doodads and global illumination and a full GL/DX rendering pipeline will have a much harder time because game companies don't hire "renderer programmers".
Anyway, It's just my personal experience (YMMV) that all of those things have been MUCH MUCH more valuable to me professionally (and personally) than any of the rendering fun I've had on any platform.
But it definitely was more fun on a day-to-day basis to write shaders :)
PS: achilles_ is exactly right. Shaders are fun to write because you get lots of visual feedback of your progress. Writing a localization system is not as rewarding because you not only don't see it come online until the whole thing is finished, but you don't really realize what works and doesn't until the game ships. Definitely go for the momentum of progress as achilles_ suggests... but I still advise against being too graphic-focused.
So josh, do you think I should focus on 2d, and work on "the essentials" as you mentioned? I mean sprites are annoying to draw, but I guess it's easier than working 3 dimentionally.
But then again, I have to draw the sprites and tiles and everything. And I'm no artist.
What to do....
Big G
But then again, I have to draw the sprites and tiles and everything. And I'm no artist.
What to do....
Big G
I really think you need to just draw some shapes and move them around. Make it so they can shoot. Then add some walls, which will just be squares. Then add some other shapes that will run around and shoot at you. Add collision detection so things don't go through each other. You won't need sprites or animation.
Realize that your first game won't be groundbreaking. Nor will your second, or third, or fourth...just try to have fun.
Realize that your first game won't be groundbreaking. Nor will your second, or third, or fourth...just try to have fun.
-------------------------------See my tutorial site: Click here
Lol thanks again aaron.
I'm just so confused about what I want to see, vs. what I'm supposed to see at my current skill level.
Again, I just made a character (with great help from Aaron), and got him to walk, run, swing, go into a stance. But, he's in an isometric view, and I'd hate to have to make my own character in 2D mode, after seeing a cool looking 3d model
Dang I really don't know, I'll see what I can do...
Gardon
I'm just so confused about what I want to see, vs. what I'm supposed to see at my current skill level.
Again, I just made a character (with great help from Aaron), and got him to walk, run, swing, go into a stance. But, he's in an isometric view, and I'd hate to have to make my own character in 2D mode, after seeing a cool looking 3d model
Dang I really don't know, I'll see what I can do...
Gardon
Quote:
Original post by achilles_
Well, making 3D games is generally an order of magnitude harder for beginners, because adding the concepts of 3D math, model loading and rendering, control mechanisms, etc, to the list of things that you need to learn just starting out is quite an additional leap.
Math is the only thing I'll give you. But even that is becoming less important. You need a firm grip on how things work, but rarely will you be required to write your own gritty functions. Model loading is no more complex than bitmap loading. And modern day API's will even do it for you. Control mechanisms are much harder in 2D. It's more than twice as simple to convert an analog or WASD system into a direction vector or an angle than it is to some specific game value that represents north or north-west. Do you see where I'm getting? 3D development is natural. Things flow smoothly from one idea to another. There's no use for gimics.
Quote:
The hardest thing in making a game is motivation. When you take on too ambitious a project, making little progress eats away at motivation at an astonishing rate.
I totally agree. Even after making smaller projects, bigger projects still pose this problem. Watch tons of movies and play tons of games that are similar to your design. It works so well for me that I usually stop in the middle of it and open the IDE.
Quote:
Original post by JoshM
2d is (arguably) more technically limiting than 3d, but those limitations reduce the number of things you have to worry/think/design about, which in turns make the overall task easier.
I don't think the types of limitations it poses makes things easier. You have to find more solutions to simple problems. You have a fully qualified game world with very limited graphics representation. Your game world ends up being limited to work with the representation. That conversion is not required for 3D development.
Quote:
Writing a full game is more important than writing a nice renderer. If you want to be ambitious in a more useful way, make your game 2d, but abstract it in a way that you could just plug in a 3d renderer at some point with little or no effort.
That's easy to say. I would be impressed to see a 2D game engine written by someone just starting, which could be plugged into a 3D API. The entire engine would be catered to fixing all of the usual 2D translation problems. Now look at it the other way around. To plug a 3D game into 2D API, the only thing you need is a stable camera.
Quote:
Whereas the guy who comes in with nothing but a graphics demo that has all the latest doodads and global illumination and a full GL/DX rendering pipeline will have a much harder time because game companies don't hire "renderer programmers".
I'm not sure where you're going with this. My argument is that it's easier to work with 3D game worlds, not renderers. I'm also not saying that an extremely detailed 3D game won't take longer to build than a detailed 2D game. But no-frills 3D game dev time will blow the zippers right off of non-frilly 2D dev time.
Quote:
Original post by infrmtn
Animation can be a pain but a good designer designs around his limitations anyway.
Which is more of a pain. You have to design around lots of problems and limitations. I've been there and done that too many times.
Quote:
With 2D I have "unlimited" detail and can come up with any visuals I want. With top-down 2D everything is easy and even fun to program.
It's fun in 3D too. I'm not sure why you would think there's a difference. As for the visuals, I agree. Sprites can be very beautiful.
I'm not sure about Diablo I, but in Diablo II, one thing was obvious: most graphics were done by posing 3D models and using snapshots of them. You mentioned you don't want to "waste" your 3D model by switching to 2D sprites. Well, do what they did in Diablo II and you won't have to.
Somewhere at Blizzard, all of those 3D models are sitting around just waiting to be put into a pure 3D Diablo III game. I wish.
Somewhere at Blizzard, all of those 3D models are sitting around just waiting to be put into a pure 3D Diablo III game. I wish.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement