Sign in to follow this  

Learning a language... no problem... but what now?

This topic is 3460 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

Ok so I've recently been getting into programming, I've pretty much learnt the basic use of Python and a bit of Java. I have 2 years of experience scripting for a program in Java that used Java scripts to carry out functions, but I almost always followed some other script for guidance and just changed stuff around. So anyway, learning a language isnt the problem for me, but the problem is... I just dont know what to do... I need some help, some guidance; Where do I start? What do I do next? What skills are necessary for game development? All I know is you need some one to code, and some one to make 3D models and animations but thats it. I really need help if im willing to pursue my dream. Im also pretty lost about what language to use, I know I want it to be cross platform as I use both Mac and PC. Thanks in advance. EDIT: This is my second post, my first one being similar, but didnt get me any help really.

Share this post


Link to post
Share on other sites
I think you forgot one thing: the language is not the goal, just the tool. You learned the language to create a game with it. So you better ask yourself: "Which game do I want to create (now that I have some skills)?".
People will tell you to program a little Pong, Arkanoid, Tetris or text-based games and the likes first. That way you have a well laid out game idea already and don't need to be too creative. Also these games are simple, so you won't get lost in details. But still, you need to be able to make the idea real.

Afterwards you'll probably want to create a sidescroller or similar, the possibilities are endless, really. Look at some Super Nintendo/SEGA Mega Drive games to find out which game type you like the most!

...and always have a cheesy smile while doing the above. :P

Share this post


Link to post
Share on other sites
Hehe, yes I do understand... the language is only the tool.

But my main question is where do I go next. I know I should be making games like PONG etc, but how? Where exactly do I go?

I have no idea what kinds of tools to use. What exactly ARE libraries? How do I use them? What should I be looking for?


All these questions remain unanswered to me, even after weeks of googling and what not =/


Thanks for your reply, however.

Share this post


Link to post
Share on other sites
Quote:
Original post by Malduster
Where do I start? What do I do next? What skills are necessary for game development?

Just keep learning stuff. Keep making stuff. When you think you're ready, you're almost there.
Quote:
EDIT: This is my second post, my first one being similar, but didnt get me any help really.

Sorry we failed you last time, but we ain't got no magic to give you this time either. You need to dig deep, work hard at researching this stuff, take classes, read, experiment, do. The magic has to be in you if there's any to be had at all.

Share this post


Link to post
Share on other sites
Thanks Tom Sloper, some inspiration always helps :)

The only problem is I cant seem to get my answers questioned, not even the great google has been much help. Most tutorials I read assume I know everything!


Anyway, im still practicing more Python, I want it to STICK to me reeeeeaaaaal good.

Share this post


Link to post
Share on other sites
Tom Sloper has a nice website but I'm sure he will be by to post it. To answer some of your questions:

-What language should I use?
This is up to you. You can make games in almost any language. Currently I use C++ and SDL and will be moving to OpenGL for 3D. After I am comfortable with those I will learn Direct X and who knows from there.

-Also, you asked what skills are necessary to develop games.
Well, what part do you want to do? I like to do all parts but my projects are sized accordingly. Do you plan on working alone? Or part of a bigger team?

EDIT: WOW I was way slow. I paused this post for 30 min while I worked and theres 4 replies lol.

Share this post


Link to post
Share on other sites
Haha :D Well i understand you can make a game in just about any language, but im just confused about libraries and what not...

Anyway, I plan on working alone, mainly because im not a very good communicator. Also I hate others doing their best and me ending up not liking it and having to tell them to change it, just dont want to go through all that nonsense. I might get one or two good friends to work with me, but thats it.

Share this post


Link to post
Share on other sites
I really cant talk to you about Java as I briefly played with it and don't know much about the language but here is some suggestions if you were to go the C++ route:

Get these books:
-Game Programming Through C++
-Accelerated C++
-Data Structures for Game Programmers
-Focus on SDL

Now, the top two books I would honestly use hand in hand. One may confuse you, so then hop to the other, then hop back. This is the approach I take when learning programming and it works great for me YMMV.

The bottom two books, same thing. I really like the way Data Structures shows you SDL but I also like Focus on SDL. They are two different style of books. SDL is one of the tools you can use for graphics. Lazyfoo.net also has good tutorials on these.

This process will not be as long as it looks because you already know a lot the programming concepts. I usually set myself a goal of 1 chapter from 2 books each night. (The C++ books I am through, now I am in the SDL books). I can display graphics on the screen, do collision detection, move sprites around etc. I am learning a lot.

Share this post


Link to post
Share on other sites
First, pick a language that you feel most comfortable with and stick with it.
It's better to learn one language very well than knowing dozens of languages you don't know quite as well. Once you've learned one language, it's easy to pick up on others.

I don't know much about Python or Java. But as far as portability, personally, I would pick Java because you don't need to even recompile it when running on different platforms. But that's just my opinion, whichever you feel most comfortable is best.

Then, get a book that teaches the basics and details of that language. Some books teach you the basics of programming (algorithms, data structures, object-oriented design) while teaching the language. Find those if you can, but if you can't, make sure you get one and learn it well.

Don't worry too much about the graphics programming right away. You can't program graphics without knowing how to program. Take it one step at a time and learn the language first.

Share this post


Link to post
Share on other sites
Thank you Chrono and Electrons. Both of you have been much help.

First to reply to Electrons, Yes I agree with you... sticking to a language that some one is comfortable with is a major step in programming, i tried Java and didnt really like it much...

Anyway, C++ is just too hard for me... for now atleast... im sticking to Python.

So I guess an SDL or whatever is used to make the graphics and what not (yes im sounding like a noob :P)


Anyway, I again appreciate the replies.

Share this post


Link to post
Share on other sites
Now that you've picked a language. Start out slow - Rome wasn't build in one day.

If you want to make a tetris game, you need to draw squares. Do you know how to draw squares? If not, figure out how to do that. Also, try to write most of the code from scratch instead of modifying some code you already found - it oftens help understanding alot more.

Now that you've drawn a square, what's next? You need to be able to move the square in horizontal direction. Figure out how Python handles Keyboard input, and try to apply it to the drawing function untill you've got a square that moves when you press the arrows.

You now know how to handle keyboard input, and how to draw - where to go next? The square needs to be moved downwards every once in a while. Do you know how to time this? If not, figure out how to get your program to wait for a while, before moving on.

Your first game won't be very polished, clean or correct. The code will most likely be horrible (I know mine was) - but as you build up your game it will slowly become clear to you, which things could be done better - and you'll know for next time :-)

Hope it helps,
Coward

Share this post


Link to post
Share on other sites
Where to start?

int main (int argc, char* argv[])
{
printf ("Hello, world!");
}

..of course :P

But on a serious note:

A library is a set of functions, classes and objects that are included or imported into your code in some way so that you may do more complex, tried and tested actions in your program that you may not have the expertise to code yourself.

For example, Direct3D is simply a set of functions and classes in C++ (and accessible in other languages like C# etc) that you include in your code to use to render 3D objects into a window. You leave all the complex low-level hardware and driver coding up to micrsoft and they give you a relatively straight forward set of objects which perform these complex tasks behind the scenes.

Think of a pen as a language, and different colours are the libraries used to create the drawing (your interactive and interesting program).

Essentially in C++ it all comes down the function above. This function ('main'), even if you don't understand the syntax is where the a C++ program starts and finishes. Everything your program does branches off inside this procedure.

For example, you create your window in this function, then create a Direct3D device to draw things to that window, then in the middle of this procedure you'll have a loop which loops through each frame applying logic and updating things, reacting to input from your keyboard or mouse, doing physics calculations etc etc. Once the user decides they want to exit the program, the loop will stop and the 'main' procedure will continue on after that loop, cleaningh up all its resources and whatnot then finally exiting.

Share this post


Link to post
Share on other sites
If you are using Python, your best bet is probably PyGame as there are a lot of tutorials and resources for it (for example, here).

Down the line you might also want to take a look at Pyglet. I think it is less widely used, but I've heard that it has some advantages over PyGame.

Share this post


Link to post
Share on other sites
Quote:
Original post by Malduster
Thank you Chrono and Electrons. Both of you have been much help.

First to reply to Electrons, Yes I agree with you... sticking to a language that some one is comfortable with is a major step in programming, i tried Java and didnt really like it much...

Anyway, C++ is just too hard for me... for now atleast... im sticking to Python.

So I guess an SDL or whatever is used to make the graphics and what not (yes im sounding like a noob :P)


Anyway, I again appreciate the replies.


Ok so you have python you have downloaded and installed pyglet or pygame. next start looking through their documentation and figure out how to get a window on the screen. Then move onto drawing something in that window say a square. Now prove you are lordly by making that square obey your every key press. Finally start with some well known designs so that when you ask for help people are have an idea about what you are trying to accomplish.

The other half of the issue is software engineering you need to learn how to design software. I don't know of any good ways to learn out side of doing and reading.

Share this post


Link to post
Share on other sites
Pong in easy steps

1. Create a window
2. Create and display a ball on that window
3. Make that ball move and bouce around the window
4. Create a paddle
5. Display paddle and make that paddle move based on input
6. repeat step 5

I would suggest getting pygame at pygame.org.

after that is downloaded your first step can be done by

[source = python]
import pygame
from pygame import locals

pygame.init()

screen = pygame.display.set_mode((640,480))




check out the tutorials and documentation.

Share this post


Link to post
Share on other sites
Wow, quiet a few replies over the night.

First off, Thank you ALL for the support and help you have given me. This really gave me the little "push" I needed to get started.

PyGame sounds good, and I will be going through the documentation a few times and tying some of my own example.


Again, thank you all!

Cheers!
Malduster

Share this post


Link to post
Share on other sites
Quote:
Original post by Gage64
If you are using Python, your best bet is probably PyGame as there are a lot of tutorials and resources for it (for example, here).

Down the line you might also want to take a look at Pyglet. I think it is less widely used, but I've heard that it has some advantages over PyGame.


Thanks for that info, though I do have some questions.

Just wanted to get this straight, PyGame is only 2D and Pyglet is both?

The reason I ask this is not because I want to jump straight into 3D, but if im going to start using something for starting out, it would be good to know that I can continue using it for later when I have more experience and what not.


Thanks in advance.

Share this post


Link to post
Share on other sites
Quote:
Original post by yaustar
Here is a slightly outdated article about someone writing a game in 40 hrs using Python and PyGame. While some of it is a little advanced for you at this stage, the overview should be enough to get you going in the right direction.


Just skimmed through that, just now; it looks great :) Will follow it in detail soon - Thanks!

Share this post


Link to post
Share on other sites
Quote:
Original post by Malduster
Just wanted to get this straight, PyGame is only 2D and Pyglet is both?


No, PyGame can use OpenGL for 3D, just like Pyglet.

Share this post


Link to post
Share on other sites
Quote:
Original post by Gage64
No, PyGame can use OpenGL for 3D, just like Pyglet.


Ah ok, thanks.


And Uncle, I checked out Panda3D... pretty nice, but my only complaint is its not available for Mac :)
Thanks anyway.

Share this post


Link to post
Share on other sites

This topic is 3460 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