Sign in to follow this  

My 2D Game - Expert Advise Needed

This topic is 3855 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Well I am finally going to do it. This summer I am committing to making a game. I have done some Java and have delved into AutoIt in the past weeks. I am really excited about moving on to a language closer to Assembly Code though I don't want to go back to Java because I didn't like it. I have got a friend to commit with me. We have decided on a 2D game ( which will be based on our school). We are not sure if our plans are over our heads but he is a genius and I am a hard worker. I think we will get this done no matter what language. But that raises the question... what language? We both have common knowledge about syntax and how to find answers to simple questions but... Our lives would be made easy with an AIM or MSN conversation... preferably with someone who has made a 2D game before! If you're that person please PM your AIM, MSN, or request mine. I could post it in this thread but at some forums that can be a bad idea. I am not sure about this forum yet, but by the looks of it I think I will be coming back frequently in the next months. Our plans: -I make the sprites. -He solves major coding issues. -We both learn and improve our skills. -Produce a great game (by our standards). We want a final product so we need some advise as to what would be accomplishable as well as advise on other aspects of game dev. I poked around the IRC channel but they were all being rowdy and having a good time so I didn't want to put anyone on the spot. I am looking for a volunteer who, despite having better things to do with his time, can help out two serious guys. Summary: PM your AIM/MSN if you can give advise on creating a 2D game. Looking for answers to: What language to code in? What size can the project be? Your personal experiences? OpenGL/D3D/DX pros and cons... which one fits our project? Sprites... is it a feasible task or must they be borrowed? Anything else good to know before embarking? This can be a one time thing but people willing to follow along with our progress and answer questions as we go would be cool! I know theres a lot of nice people out there and I don't care if you only know slightly more than me, I just want someone to talk with that can point me in the right direction. Although I don't know that I will benefit in the same way, please post your thought in this thread if you aren't willing to talk on an instant messenger. Well, I hope this huge wall of text doesn't scare anyone off and that this thread doesn't go unanswered. The nature of the replies will judge this forum's quality, so you better reply! (just kidding, =P) thanks for your time.

Share this post


Link to post
Share on other sites
Quote:
Original post by Leoj
Well I am finally going to do it. This summer I am committing to making a game. I have done some Java and have delved into AutoIt in the past weeks. I am really excited about moving on to a language closer to Assembly Code though I don't want to go back to Java because I didn't like it.

I have got a friend to commit with me. We have decided on a 2D game ( which will be based on our school). We are not sure if our plans are over our heads but he is a genius and I am a hard worker. I think we will get this done no matter what language. But that raises the question... what language? We both have common knowledge about syntax and how to find answers to simple questions but... Our lives would be made easy with an AIM or MSN conversation... preferably with someone who has made a 2D game before! If you're that person please PM your AIM, MSN, or request mine. I could post it in this thread but at some forums that can be a bad idea. I am not sure about this forum yet, but by the looks of it I think I will be coming back frequently in the next months.

Our plans:
-I make the sprites.
-He solves major coding issues.
-We both learn and improve our skills.
-Produce a great game (by our standards).

We want a final product so we need some advise as to what would be accomplishable as well as advise on other aspects of game dev.

I poked around the IRC channel but they were all being rowdy and having a good time so I didn't want to put anyone on the spot. I am looking for a volunteer who, despite having better things to do with his time, can help out two serious guys.

Summary: PM your AIM/MSN if you can give advise on creating a 2D game.
Looking for answers to: What language to code in? What size can the project be? Your personal experiences? OpenGL/D3D/DX pros and cons... which one fits our project? Sprites... is it a feasible task or must they be borrowed? Anything else good to know before embarking?

This can be a one time thing but people willing to follow along with our progress and answer questions as we go would be cool!

I know theres a lot of nice people out there and I don't care if you only know slightly more than me, I just want someone to talk with that can point me in the right direction. Although I don't know that I will benefit in the same way, please post your thought in this thread if you aren't willing to talk on an instant messenger.

Well, I hope this huge wall of text doesn't scare anyone off and that this thread doesn't go unanswered. The nature of the replies will judge this forum's quality, so you better reply! (just kidding, =P)

thanks for your time.


Language: Whatever you want. (It really really really doesn't matter) Java is perfectly fine if you are comfortable with it. (C#, Python, C++, VB.Net are some other good options)

OpenGL or D3D: Personally i would go with OpenGL for multiplatform support (DX is Windows only) However if you go with C# you can always use XNA and thus get your game running on the xbox360 + Windows.

In your case it probably doesn't matter though, just go with whichever you are most comfortable with.

As far as sprites goes: well i don't know how one would borrow sprites for a game. (If you borrow something you have to return it eventually :p) but you can either use free sprites or make your own, (making your own is pretty much a must if you want something unique looking)

Share this post


Link to post
Share on other sites
Lets say I had to make 100 characters for this game... would that be a pain to make and not "borrow" (get for free, if you will). I know very little about game programing as is. I have done a LOT of reading in the past days on VB and C++. I am leaning toward C++ and OpenGL because C++ will be more useful in my future (i think) and OpenGL ...may... be easier to use than DX (correct me if I am wrong). Why doesn't it matter what language I use? I plan to continue programming after I get this game out and I don't want to half-learn a language just to move on to a more desirable one. I am not afraid of busting my balls on a not-so-user-friendly language.

Some guys in the IRC chat suggesting a Game Maker... click and play. Uhg! I would like to actually learn something... hello (yes, valley girl style). I want this game to be custom tailored to my friend and my design. I want to be able to jump to a piece of the code, change it, and then watch the result. I want to see my characters running around on the screen, and know whats behind their AI. Thats basically my dream accomplishment for this summer.

Thanks for the reply!

Share this post


Link to post
Share on other sites
Quote:
Original post by Leoj
Lets say I had to make 100 characters for this game... would that be a pain to make and not "borrow" (get for free, if you will). I know very little about game programing as is. I have done a LOT of reading in the past days on VB and C++. I am leaning toward C++ and OpenGL because C++ will be more useful in my future (i think) and OpenGL ...may... be easier to use than DX (correct me if I am wrong). Why doesn't it matter what language I use? I plan to continue programming after I get this game out and I don't want to half-learn a language just to move on to a more desirable one. I am not afraid of busting my balls on a not-so-user-friendly language.

Some guys in the IRC chat suggesting a Game Maker... click and play. Uhg! I would like to actually learn something... hello (yes, valley girl style). I want this game to be custom tailored to my friend and my design. I want to be able to jump to a piece of the code, change it, and then watch the result. I want to see my characters running around on the screen, and know whats behind their AI. Thats basically my dream accomplishment for this summer.

Thanks for the reply!


If you are serious about learning something you really should just pick a language :)

C#, C++, C, Python and Java have all been used in comercial games and all are fully capable of doing what you want and much much more. C++ is a slightly bad language to start with due to its many pitfalls. You should learn more than one language anyway, but the one you start with should let you focus on learning how to program and thus shouldn't be full of pitfalls.

Personally i started with QBasic and made my first 2D game using Pascal, then i wrote a nice bastardized mix of C and C++ (crappy online tutorials was common at that time), after that i picked up Java, then C++ (properly), then SML and then C. (+ a bunch of scripting languages and esoteric languages in between and im currently dabbling a bit with C#). (Currently my 3 most used languages are Java, PHP and Flash/Actionscript, C++ comes in at fourth place though)

The only one i don't use anymore is Pascal, and the only one i really don't want to use is C.

As for OpenGL being easier than D3D, well to a point it is true. OpenGL is easier to setup (imo) and its really easy to draw simple primitives to the screen, for more advanced features it can be a real pain in the ... though.(Extensions, a blessing and a curse)

But for a simple 2D game it is probably easier to use than D3D.

As far as 100 characters goes, well it depends on the number of animations for each and the quality etc. however finding 100 different free animated sprites that are similar enough in style to fit in the same game can be difficult.

Share this post


Link to post
Share on other sites
If you want to be a game programmer then take my advice and learn how to do this in OpenGL with C. I'll explain why.

C is a good language to start with. It's *really* fast and it's difficult to truly master but you'll probably find it much easier to write *bad* code in C++. C++ is an essential skill in any game developers toolbox, but believe me when I say it'll be years before you learn enough about C++ to write efficient code with it, and it'll probably be another few years before you realise what stuff is just done best in C :-)

If you're setting out learning / applying C then I dont see any reason why OpenGL shouldn't be your graphics API of choice. It has a C interface, so it wont make your head spaz out as you try to mix the (object oriented) COM interface of DirectX with C. Keep it simple, keep it linear.

BTW you will find it much easier to progress with any sense of direction with a good book. Make sure to pick up one that suits you and your prefered learning style and covers the things you want to know about *in sufficient depth* to do something useful with it.

Oh and one last tip - if you're going to do one thing, make sure you do it well. If you're going to do many things, make sure you do them all well!

Hope that helps - and good luck!

Share this post


Link to post
Share on other sites
Regarding choice of language, and your concern about learning one only to have to abandon it for a "better" one:

Once you have learned to program in pretty much any language, you will find it far far easier to pick up another language. Putting the syntax aside, the vast majority of the challenges associated with programming are of problem solving, and the majority of the concepts you learn in this area are independant of any specific language.

I personally think you are far better off learning about things like variables, loops, conditional constructs and functions in a simpler language like, say, C#, Java or maybe VB.

If you then move on to a more complex and less forgiving language like C++, you will have already covered a lot of the conceptual groundwork and be far more able to concentrate on the more difficult aspects of the new language.

I'm a C++ programmer but I'm going through a huge "I love C#" stage at the moment. Moving from one language to another is making me completely rethink a lot of stuff about how I program, and that is always a good thing. In fact, even me just saying "I'm a C++ programmer" exposes a major flaw in my attitude to all this.

Good luck.

Share this post


Link to post
Share on other sites
C? For game programming? Well, if you're going to work with a handheld game console, then yes, because then you *have to*. In any other case, no. It's powerfull, but in the wrong hands it's dangerous and tedious, and in that case, it won't be very powerfull at all. You'll have to know how to use it, and that will take quite some time. Besides, in that case, I would go straight for C++, as it makes several things much easier (think of the STL, for example) and provides better support for high(er)-level stuff.

However, I'd say Python would be a good choice. Take a look at a framework like Pygame, which is built on top of SDL.
Using a high-level scripting language and an existing framework or engine might sound silly, but if you're writing a game, you should focus on writing a game, not an engine. Besides, you'll be very happy with the productivity gains of high-level languages. They're a good choice for game-code, because that sort of code can change a lot so it's a good thing when it's easy to change. It also doesn't have to run that lightning fast, as opposed to engine code - for which a more lower-level language will probably be better.

If you're like me, you're going to get stuck if you want to built up everything from the ground. It's a waste of time and motivation, because in the end, you still have to build your game. Be pragmatic and use what's available. Good luck. :)

Share this post


Link to post
Share on other sites
Quote:
Original post by Leoj

Some guys in the IRC chat suggesting a Game Maker... click and play. Uhg! I would like to actually learn something... hello (yes, valley girl style). I want this game to be custom tailored to my friend and my design. I want to be able to jump to a piece of the code, change it, and then watch the result. I want to see my characters running around on the screen, and know whats behind their AI. Thats basically my dream accomplishment for this summer.

Thanks for the reply!


Don't underestimate Game Maker. It has an inbuilt-language too (GML) and is quite powerful. Not so powerful as C++ or Java (just two random examples) off course, but it's programming. The clickin' is for noobs :P.
But I have switched to C++ two and a half years ago anyway. [wink]

Just choose a language, see if you like it, and if not move to another. It's that simple. Like SimonForsman said, it really really really doesn't matter.
Yes, some languages lend themselves better for games and others for applications, but in the end; games have been created with C++, C#, Java, C, Python and I-know-what. Unless you want to create the next AAA game (and I doubt that), it's not thát big of an issue.

Correct me if I'm wrong though, I have only looked into C++, GML, and a bit of Java, Pascal and Basic.

Yes, Basic. That's one I'd recommend against for graphical games[grin]

-Stenny

Share this post


Link to post
Share on other sites
Thanks for all the replies! I talked to Sijmen over MSN and he is using C++ as well as OpenGL for the body of his game (Rollator Racer). He answered some questions, gave some insight, and confirmed things I had heard. He agreed that there were many pitfalls to using C++ (something about the program going BOOM if you forget to remove a memory value... haha). But I also tried Sijmen's game. It was a lot like what I want to get done. Seeing an actual product and talking to someone who has made it happen gave me some real inspiration. Actually, I ended up staying awake until ~4:00 AM to talk with him. That was really great and I think I want to look into C++ because of it. But what Sijmen did tell me is that OpenGL is not what I want for my 2D game. He told me about SDL which handles only 2D operations. What do you guys think?

About the programming to a consol: No this is not my goal and not a reason for my using C++. But this did get my friend excited about using C++ =P. I think it is cool too but not my main reason for learning the C++ language.

Well I picked up VC++ Express from Microsoft's website and browsed some C++ game-creating guides online. Will I have to purchase the full version to make my game? It looks like setting up the environment for SDL/OpenGL will be somewhat confusing =/. But first I need to decide on OpenGL, SDL, or another!

So I guess it is decided: I will be using C++ with _______ .

--About making an engine: I will have to ask my friend if this is something he wants to do or not. Personally making an engine means nothing to me. I also don't actually understand what an engine is. Is it functions built on top of, say, OpenGL? Or is it OpenGL itself? Clarification please and suggestions on what to do in the case that we don't write our own engine (which I don't think we will).

@Stenny: when you say recommend against for games do you mean you recommend using it or not using it for game development?

After doing some research I am beginning to think along the same lines as EasilyConfused and SimonForsman. But TheGilb had some interesting points relating to C++ which seem to have good reasons, or at least ones I can assimilate with. So C++ is my choice because, like stated, I could always move on to another language and it has the certain long-term pros and pros in relation to game development.

Thanks for all the help guys. Thanks for the links Captain P. You can contact me on MSN or by email at Bale_De_Match@yahoo.com if you don't want to post in this thread for whatever reason.

Share this post


Link to post
Share on other sites
I'm glad you found your language.

Quote:
--About making an engine: I will have to ask my friend if this is something he wants to do or not. Personally making an engine means nothing to me. I also don't actually understand what an engine is. Is it functions built on top of, say, OpenGL? Or is it OpenGL itself? Clarification please and suggestions on what to do in the case that we don't write our own engine (which I don't think we will).


An engine is indeed a collection of functions, classes and other C++ stuff on top of the more basic code. That'd be OpenGL or DirectX if you're writing a Graphics Engine, and e.g. DirectSound(/Music) if you're writing a sound engine. You can call simpler functions like InitializeGraphics(), and it will happen. You won't need to go through registering all sorts of COM Objects, setting modes and other 'difficult' stuff. But that's for later, learn C++ first [wink]!

Quote:
@Stenny: when you say recommend against for games do you mean you recommend using it or not using it for game development?


I'd recommend against _graphical_ games with Basic. That means I would NOT recommend doing any graphical games with Basic. You see, Basic is as far as I know, only capable of doing stuff that looks like you programmed it in DOS.

[EDIT]I just found out Basic ís capable of doing graphics, but I just wouldn't choose Basic anyway. It's old.[/i]

Have a look[wink].

I'm glad I could help, and good luck in your wonderful journey of becoming a game programmer. I'm currently travelling that road (chose C++ just like you), and I like it ;). You can always ask for help if you need it, here, or add me on msn :)

-Stenny

[Edited by - stenny on May 25, 2007 4:13:06 PM]

Share this post


Link to post
Share on other sites
An engine is generally a set of functions, structures, etc, that take care of all the stuff that isn't immediately important to the game itself. For example, loading sounds, organizing sounds, playing sounds, and disposing of a sound when you're done, are all engine-things. Making the person say "Arg" when you kick them as opposed to saying "Ouch" when you punch them is a game specific thing, and is outside of the concern of the engine itself. The exact border between the "Engine" and the "Game" isn't always crystal clear, but you can generally consider that the "Engine" part is all the stuff that can be done while still having almost no knowledge about what the game will eventually be. Arbitrary game 'N' is going to need to be able to play sounds and render graphics and such, have a way of managing what can and can't be seen, and handle collision detection. A specific game might need character inventories, have 5 teams of players, and have characters behave in a certain way.

If you want a perfect example of a difference between a game and a game engine, consider that "Call of duty" [1 and 2], "American McGee's Alice", and several "Medal of Honor" games [and quite a few more] all use the "Quake 3" engine. You can tell by looking at them, you can see the similarities, and certain little things, but the games are different and have different feels.

Btw, since you were asking for AIM names, mine is in my profile. Feel free to drop me a line if you'd like.

Share this post


Link to post
Share on other sites
Thanks so much stenny and Drigovas. My friend is forcing us to build and engine... but I must admit; it does sound like fun. I have begun making a list of Enemies, Allies, and Other for the NPCs and I have started drawing the map by hand. I am not sure if we are going to go for a complex map or just a block, general-feel, kind of map like Rollator Roller's current map. I have been talking with stenny over MSN and he showed me some pictures of his game (which is looking really fucking good). He wrote his own engine and has a huge story built around a pretty cool map. He has accomplished everything I hope to get done, more sloppily but, in due time. I have no idea how long it takes to write an engine... stenny said his took a while because of some major changes he had to make halfway through. If the engine takes more than half of the time of making the game I think we will be "borrowing" an existing one. I wanted to bug Sijmen but I think he is gone for the weekend. He was the one who originally suggested SDL and said he could help me set up the environment. Right now I have Visual C++ Express 6.0 installed and working. To my knowledge this is all i need to code with. The most highlighted disadvantage of Express version is that it doesn't work on 64-bit computers. Does that mean anything for my game? Will the end product not be functional on any computers running 64-bit? i am going to do some poking around on the internet to find out more about SDL and engines and I will hit up Drigovas too.

I have a feeling I will answer some of my questions with a little bit of research but your guys conformation always makes me feel warm and fuzzy on the inside ;). I will post my findings if no one replies before then, gratzi!

--If we were to borrow an engine, where from and what should we get?

Share this post


Link to post
Share on other sites
I downloaded SDL-devel-1.2.11-VC6.zip (Visual C++ 5,6,7) from http://www.libsdl.org/download-1.2.php and it contained the following files...

lib
include
docs

Where do i stick these files? I poked around my VC program folder and found some similar folders... But I am not sure where to put these.

[Edited by - Leoj on May 25, 2007 11:44:52 PM]

Share this post


Link to post
Share on other sites
I figured it out after a stop at the GD irc channel. You can include the files without putting them in your VC++ directory. I was used to having to put the files to be called by #include into my IDE's deirectory after using SciTe for Autoit. In particular, thanks to Nev fro the irc channel.

Share this post


Link to post
Share on other sites
well the full source code for the various Quake's can be downloaded from ID software's website [but those are 3d]. There's also Torque, which is nice [but 3D]. C4 has been getting lots of talk [also 3D]. The good folks down at FIFE have produced quite a neat little bit of [2D] software. Don't know of many 2D engines out there [besides FIFE]. Perhaps the Isometric forum might be able to help you out a bit more with some 2D specific ones

2D is drasticly less complicated though than 3D, especially if you don't intend to implement vector graphics or any sort of realistic physics.

Share this post


Link to post
Share on other sites
Quote:
Thanks so much stenny and Drigovas. My friend is forcing us to build and engine... but I must admit; it does sound like fun. I have begun making a list of Enemies, Allies, and Other for the NPCs and I have started drawing the map by hand. I am not sure if we are going to go for a complex map or just a block, general-feel, kind of map like Rollator Roller's current map.


Yeap, that's the beginning of a Design Document. Put all in a .txt or word document (or whichever typewriter you prefer, I prefer plain .txt); allies, enemies, maps, the story, abilities, weapons, an explanation of the combat system. As much as is possible beforehand. The more you plan beforehand, the less you have to plan while you're coding it. That's the power of a design document, and one should really use it.

Quote:
I have been talking with stenny over MSN and he showed me some pictures of his game (which is looking really fucking good). He wrote his own engine and has a huge story built around a pretty cool map. He has accomplished everything I hope to get done, more sloppily but, in due time. I have no idea how long it takes to write an engine... stenny said his took a while because of some major changes he had to make halfway through.

Wow[smile]! Thanks! About those changes...those were in the learning process and it was all Microsoft's fault :P.

Quote:
If the engine takes more than half of the time of making the game I think we will be "borrowing" an existing one.

You're not gonna like this, but most of the time that's the case yes. Take Windows for example, it is sorta like an engine too. And they've spent way more time creating it, than is neccesary to create something wíth Windows (a .doc file for example). Look at Vista, how long have they been busy with that?

Quote:
I wanted to bug Sijmen but I think he is gone for the weekend.

Don't bug him, we programmers hate bugs[grin].

Catch 'ya later!

-Stenny

[Edited by - stenny on May 26, 2007 7:37:53 AM]

Share this post


Link to post
Share on other sites

This topic is 3855 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

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