   Make something great by September?
  Greetings gamedev.net!My old high school buddy and I have returned home for the summer after attending separate universities for the past two semesters.  He's majoring in art and design, and I'm majoring in electrical and computer engineering.  Our shared love for gaming, desired future in the game industry, and abundance of free time has led us to the decision of making a game this summer.We both have moderate experience with Java from high school, and C++ from our own experiences.  I've been studying computer architecture and digital logic; last semester I took a course that instructed me in the general ins and outs of C++ programming.  I like to think of myself as a moderately competent programmer at this point.The problem is that although I'm versed in pointers, arrays, structures, classes, linked lists, and all the basics of C++, I have no experience with GUI's--or any game programming for that matter.  My studies focus on borderline machine code, so game programming is a whole new world for me!Our goal is to produce a 2d, 32-bit, isometric, action/adventure/RPG game by the end of the summer.  The idea draws inspiration from the likes of classic Zelda, Cave Story, and even Super Stardust HD.  We've already decided on the language (C++), the major plot aspects, the library we will probably use (SFML), and a timeline of week-by-week deadlines.  We've been brainstorming for about a week now, and are actively working to finish our game's "bible".Now I ask of you experienced developers:What are we doing wrong, what are we doing right, is this at all plausible, and most of all... where do I, as the programmer, begin?!  I've already looked through many of the guides available here, but they're not quite what I've been looking for.  Sample code would be great, but I lack experience with compiling complex programs.Thank you in advance for any help, and I hope to be able to post again on these forums with our finished product come this September!   
  I'm not sure what tools are available to a java user, but something tells me they're numerous.I would suggest using .NET, or winforms, or which ever poison you pick. Use the microsoft packages.You can create a C# form in a few clicks, add a picture box to use for your 2d or 3d rendering, and then make way with buttons and text boxes all around the perimeter. Then you'll just wire your ui events into game.When i started i was writing pong and various other 2d map games using VB6 and its shape component, or draw[shape]() functions of the picturebox, which is now more sanely located in the Graphics object, which is passed to you during a paint event.It's really worth looking into.This might be of some help also: http://www.gamedev.net/reference/programming/features/2dcarphys/;Quote:Original post by DanCarewOur goal is to produce a 2d, 32-bit, isometric, action/adventure/RPG game by the end of the summer.  The idea draws inspiration from the likes of classic Zelda, Cave Story, and even Super Stardust HD.  We've already decided on the language (C++), the major plot aspects, the library we will probably use (SFML)...First of all, you may be able to get something up faster if you stick with Java since you have been using it since high school and C++ development can be a 'slower' language to code in.But many people use C++ and I've only heard good things about SFML.  I have not used SFML, but I use SDL and OpenGL.  I think SFML makes OpenGL calls for blitting 2D graphics so everything should be good.The only problem is that making a Zelda / Cave Story-esque game for a first project can be on the difficult side.  Perhaps you should gear yr initial goals down somewhat since the most important thing should be the completion of a project by September or whatever yr deadline is.You will need to learn how to do such things as:1. Set up a basic game loop2. Manage the entities/NPCs etc./AI3. Scrolling background?4. Collision detection (efficient not just brute force, unless you have a small number of collidable objects.5. How to store/load map data for yr Zelda-esque world6. Save/Load games7. Animate sprites?8. Main menu system/GUI/HUD, etc.9. Will you have pathfinding for the AI?My point is that requiring some or all of the above elements is difficult for someone who has not yet built a graphical game.  You sound like you have a good head on yr shoulders so I'm not saying it's impossible, but you might have to adjust yr goals slightly downward.Perhaps you will have to make some easier games first like tic-tac-toe, pong, or tetris in order to get the basic know-how.  The good news is that a pong game could prolly be banged out in a day to a week depending on....I am basically saying that1. You need to learn some basic gameDev skills2. Be modular with yr design and start simple3. Then add content and make it coolThe other part of the good news is that you have an art guy.  That will save you countless hours of work.  By the way I am building a 2D game and the long list above is just some of the stuff I had to learn along the way.Best of luck; this place is the best resource on the internet.;  What signal_ said sounds reasonable to me. I would suggest that you estimate what and how much functionality you can cover before deadline. Then cut that in half. Consider what you can leave out in the first version, like animations, and add it in the end if you have the time. My experience with software development is that the polishing of the game, including small fixes and knitpicking those loose ends together, take about 50% of the total time. It is likely to drain you at the end of the project when you thought you were as good as finished. I would suggest you guys prepare for it.   ;Quote:Original post by pulpfistWhat signal_ said sounds reasonable to me. I would suggest that you estimate what and how much functionality you can cover before deadline. Then cut that in half.From my experience, a more accurate way is to take your deadline, and find the date 1/3 of the way from now to then. Estimate what you can cover by then, and be happy if you get that done by the end.And no, this doesn't change no matter how skilled you get. ^^;   ;  One way to speed up development is to use one of the open source Java-based game engines available, such as Ardor3D or jMonkeyEngine. This allows you to focus a little more on gameplay and less time figuring out effective rendering, etc.   ;  Sounds like you're unfamiliar with too many aspects of the kind of game you want to build. It's easy to underestimate the kind of work that goes into a game like this - even when you're experienced and familiar with all aspects (unfamiliar aspects make planning even more difficult and unreliable).I'd say, find out what kind of things you need to know for those games - the obvious ones being graphics, game loop, input handling, sound - and build some prototypes to play around with those things, to get familiar with them. Don't get too hung up on this one big project. Go for some prototypes, throwaway code, with the intention to learn from it, to improve your skills. Once you start working on an actual game, you'll be much more ready for it (and there's still a lot more to be learned). Also, the experience that you gained will help you to more accurately determine what you're capable of and what is still too risky for a given time-frame.Either way, you'll want to get at the point where you know you're capable of creating something (and a good way to know is when you've done similar things in the past already).As for the choices that you've made so far, what reasons did you have for picking C++ and SFML? How do you think you're going to build all the assets for the game? Do you think the scope of the game makes it doable for a two-man team in the given time-frame, with the given level of experience? Basically, what's your own impression of this project?   ;Quote:Original post by ZahlmanFrom my experience, a more accurate way is to take your deadline, and find the date 1/3 of the way from now to then. Estimate what you can cover by then, and be happy if you get that done by the end.And no, this doesn't change no matter how skilled you get. ^^;This