Jump to content
  • Advertisement
Sign in to follow this  
Leoj

My 2D Game - Expert Advise Needed

This topic is 4069 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
Advertisement
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.

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
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!