The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
The Guiding Principles and New Rules document is now in effect.

Who wants to learn to make games with me?

ZombiemamboZombiemambo Registered User regular
edited March 2009 in Games and Technology
The goal of this thread is two-fold:

+ To make (a) game(s)

+ To learn a programming language

I think at one point or another most of us have thought of making games. Some of still do, and few atually make them in reality. In here, we will (hopefully) go from the former to the latter. But how?

We are going to be using Python.

There are a number of reasons for this:

+ Python has a lot of libraries.

+ Python runs on Windows, Mac, OS/2, Unix/Linux, Amiga and even Nokia Series 60 phones.

+ Python has modules specifically designed for creating games.

+ Python is free.

+ A python is a type of snake. Sssssss.

I'm using the word 'we' loosely. It's not one big project that we'll all work on. We won't be taking lessons together. Instead, people who don't make games (or don't know how to code in Python) will design and create games with a thread they can use to ask questions or post their progress and get support. This is not only to make games from scratch, but to be able to use a programming language. We're all nerds here, knowing how to code is going to come in handy eventually, I'm sure. Plus we're surrounded by it, so we might as well understand it.

I think only a small number of people here are willing to put in the work to make a game using a programming language. But I hope I can get enough interest in here that a few of us will come out a little bit wiser about the process of making games.

I'll try to post helpful links here:

http://forums.penny-arcade.com/showthread.php?t=40425 - this should help out anyone who isn't familiar with coding in general.

http://niche.uwo.ca/programming-historian/index.php/Main_Page - this site is aimed at historians, for some odd reason. But it seems to have a little info on the basics of programming.

http://wiki.python.org/moin/BeginnersGuide - a beginner's guide to Python

http://pythonbook.coffeeghost.net/book1/ - this 'book' provides information about programming in Python as well as game examples.

JKKaAGp.png
Zombiemambo on
«13456713

Posts

  • vhzodvhzod Registered User regular
    edited September 2008
    I hate coding but I like designing games. This thread does seem like an interesting idea and I'd like to support it because having more programmers around means more people that may one day code my insane game plans. I can dream right? (Don't worry I already gave up.) However, if someone wants some help designing some game stuff I'm all over that. I only know a bit of C# and C++ (and a little BASIC and Pascal but who wants those) so I won't be too much help with python. I once drew a sprite and moved it around with the keyboard in XNA as well.


    Actually, thinking about it maybe you should take it a step further and have "homework". Like give someone a simple project idea for them to work on and ask questions about. That will focus everyone's questions and people can use the thread as a resource since the really common questions and answers will be in the thread. Example: "hello world" program, draw a jpg to the screen, write something to the hd then read it back.

    vhzod on
  • BlueBlueBlueBlue Registered User regular
    edited September 2008
    I made some games once. The trick of me making games is that even though I'm decent at programming I do not have any good game ideas or artistic ability.

    Artisitic ability = production values! Which are nice to have, especially if you're making a simple game.

    I will give you a helpful hint! A shmup is a very simple kind of game to make.

    BlueBlue on
    CD World Tour status:
    Baidol Voprostein Avraham Thetheroo Taya Zerofill Effef Crimson King Lalabox Mortal Sky ASimPerson Sal Wiet Theidar Tynic Speed Racer Neotoma Goatmon ==>Larlar Munkus Beaver Day of the Bear miscellaneousinsanity Skull Man Delzhand Caulk Bite 6 Somestickguy
  • leafleaf Registered User regular
    edited September 2008
    Good luck, I'm still trying to learn german. I mean enough ww2 games have germans shouting at me, may as well understand it.

    leaf on
    newsig-notweed.jpg
  • ZombiemamboZombiemambo Registered User regular
    edited September 2008
    Here's my goal: to create a basic chess game.

    I think this is a good goal because it focuses on object-oriented programming, as each piece follows specific rules. If I decide to go even further, I could implement a rudementary AI. Of course, before I delve into a project like that, I'll be going through the basics of Python itself.

    Zombiemambo on
    JKKaAGp.png
  • vhzodvhzod Registered User regular
    edited September 2008
    Okay a basic chess program. Don't have to make any rules up. Thats good. So lets see whats the first part of that program. Maybe spawning a window with the title screen with a button that you push that brings up the chess field. So you have to spawn a window, display text in specific places, an image in a specific place, figuring out how to get mouse input

    Then after you get all that down then you get to figure out how to do the actual game.

    vhzod on
  • PeewiPeewi Registered User regular
    edited September 2008
    I have for a long time want to learn a programming language, but I've been a bit too lazy to actually do it. I did have a shortlived attempt at C++, but that never got beyond very simple stuff.

    If nothing else, I could provide ideas. I've had the idea of a 2D platformer with multiple jump buttons used for jumping in different ways.

    Peewi on
  • ZombiemamboZombiemambo Registered User regular
    edited September 2008
    vhzod wrote: »
    Okay a basic chess program. Don't have to make any rules up. Thats good. So lets see whats the first part of that program. Maybe spawning a window with the title screen with a button that you push that brings up the chess field. So you have to spawn a window, display text in specific places, an image in a specific place, figuring out how to get mouse input

    Yeah, but this is a goal in the same way that "I want to be a basketball player!" is a goal. Ultimately I'd like to have a chess game, but I'm definitely not focusing on that. I have a lot more to learn first.

    Zombiemambo on
    JKKaAGp.png
  • vhzodvhzod Registered User regular
    edited September 2008
    What I've described is not a chess game, its the menu for starting a chess game. This is a very simple first project that will get you introduced to the syntax and basic structure. Being able to display images and interpret mouse input will be crucial for basically any game you want to make anyway. Note that I have no idea how to do that in python and would be hard pressed to tell you how using XNA. Thats where you come in.

    Actually I'm curious now so go find out how to do it and tell me. I don't know python syntax at all.
    Edit: Make it so you have to type in a name for the player so you can get text input too, although I suspect that a box with a blinking cursor will be too hard to do without the right libraries or whatever

    vhzod on
  • DehumanizedDehumanized Registered User regular
    edited September 2008
    Python is a great learner's language. Further, I'd recommend this book to people who want to dive into some programming with the language.

    Dehumanized on
  • vhzodvhzod Registered User regular
    edited September 2008
    Is there a less retarded way of positioning a sprite than typing in coordinates in the draw function and then changing them to get it where you want it to be?

    And does python have classes like C does?

    vhzod on
  • BlueBlueBlueBlue Registered User regular
    edited September 2008
    Where is TSR when you need him~

    BlueBlue on
    CD World Tour status:
    Baidol Voprostein Avraham Thetheroo Taya Zerofill Effef Crimson King Lalabox Mortal Sky ASimPerson Sal Wiet Theidar Tynic Speed Racer Neotoma Goatmon ==>Larlar Munkus Beaver Day of the Bear miscellaneousinsanity Skull Man Delzhand Caulk Bite 6 Somestickguy
  • CentipeedCentipeed Registered User regular
    edited September 2008
    vhzod wrote: »
    Is there a less retarded way of positioning a sprite than typing in coordinates in the draw function and then changing them to get it where you want it to be?

    And does python have classes like C does?

    I don't know if the "like C does" is an important aspect of this sentence. Like, I'm not sure if C handles classes differently than C++, but Python DOES have classes. It's object orientated, after all:
    class className:
      def __init__ ():
        x = 1
    

    Etc.

    I started learning Python, because I wanted to make games with it (Both a side scrolling beat em up and a platformer, both with awesome combo systems and blocky 8 bit graphics), so this thread WOULD be perfect for me, but I need to learn Python properly before I make a game and I'm lazy. I've got no real reason to put the time in.

    Centipeed on
  • mastriusmastrius Registered User regular
    edited September 2008
    Boy I have absolutely no clue as to how this is even done...basically just shattered any hopes I have to make games...well...guess its time to read that scarily long ass tutorial thing...cause Im just completely confused on how any of this works.

    mastrius on
    "You're like a kitten! A kitten who doesn't speak Japanese." ~ Juliet Starling
  • CentipeedCentipeed Registered User regular
    edited September 2008
    mastrius wrote: »
    Boy I have absolutely no clue as to how this is even done...basically just shattered any hopes I have to make games...well...guess its time to read that scarily long ass tutorial thing...cause Im just completely confused on how any of this works.

    I guess that's why this thread is here. Post as many stupid questions as you want, and they might be answered.

    Centipeed on
  • redraptorredraptor Registered User regular
    edited September 2008
    I'll do it, sign me up. Make it like the Art forum thread where there's weekly (biweekly?) assignments based on a programming lesson/theme. Coin it the Let's Create thread.

    Also are there any hot girls in this class, I hear the proffessor is a prick.

    redraptor on
  • darleysamdarleysam On my way to UKRegistered User regular
    edited September 2008
    Top tip: when people come in and start suggesting their idea for a wicked-sweet zombie co-op MMO, you ignore them.

    darleysam on
    forumsig.png
  • citizen059citizen059 hello my name is citizen I'm from the InternetRegistered User regular
    edited September 2008
    darleysam wrote: »
    Top tip: when people come in and start suggesting their idea for a wicked-sweet zombie co-op MMO, you ignore them.

    but i haev this grate idea fr a game! u have this gun see an u blow up zombies, and i have the idea all writen up and all i need is someoen to do teh code and teh art. i'm really more of an idea persno so if u can do this just PM me and i let u help me, k?




    Yes, I was joking. :P

    citizen059 on
  • krylon666krylon666 Registered User regular
    edited September 2008
    when working on your chess game (or any board game really) try to separate the code for your game and your game board (the graphical representation of the game). doing this will allow you to implement the entire game totally from the command line - like w/ a text interface for instance. then you can mate the graphical interface to it for a finished game. the idea is to seperate your game logic from the graphic drawing code - cause they're exclusive of each other. modifying one shouldn't really effect the other, etc.

    so implement your game rules for how pieces move, is a move valid, their position, etc all w/out worrying about their graphical representation. then you add that on as a layer on top. anyway, thats just a tip i thought i'd pass on.

    krylon666 on
  • FaceballMcDougalFaceballMcDougal Registered User regular
    edited September 2008
    I went to school with the intent to get the skillz for making games but wound up working with business apps instead.

    There's more money in it... and I prefer spending money on games so I can play them

    FaceballMcDougal on
    xbl/psn/steam: jabbertrack
  • Dr SnofeldDr Snofeld Registered User regular
    edited September 2008
    citizen059 wrote: »
    darleysam wrote: »
    Top tip: when people come in and start suggesting their idea for a wicked-sweet zombie co-op MMO, you ignore them.

    but i haev this grate idea fr a game! u have this gun see an u blow up zombies, and i have the idea all writen up and all i need is someoen to do teh code and teh art. i'm really more of an idea persno so if u can do this just PM me and i let u help me, k?




    Yes, I was joking. :P

    I dunno, I was thinking maybe we could make something about a gang...

    Dr Snofeld on
    l4d_sig.png
  • ImpersonatorImpersonator Registered User regular
    edited September 2008
    Dr Snofeld wrote: »
    citizen059 wrote: »
    darleysam wrote: »
    Top tip: when people come in and start suggesting their idea for a wicked-sweet zombie co-op MMO, you ignore them.

    but i haev this grate idea fr a game! u have this gun see an u blow up zombies, and i have the idea all writen up and all i need is someoen to do teh code and teh art. i'm really more of an idea persno so if u can do this just PM me and i let u help me, k?




    Yes, I was joking. :P

    I dunno, I was thinking maybe we could make something about a gang...

    Add in some daggers...

    Impersonator on
  • JubehJubeh Registered User regular
    edited September 2008
    I would like to learn to make games with you plus obligatory no homo.

    I just know the very basic basics of C++ and Java, though. Python sounds cool, though.

    Jubeh on
  • ImpersonatorImpersonator Registered User regular
    edited September 2008
    Game maker is a wonderful tool and really versatile too. It's even more simple than learning C or Python as there is a graphical interface, which does not mean it's any less harder to work with

    Impersonator on
  • krylon666krylon666 Registered User regular
    edited September 2008
    but with the amount of time you spend trying to learn a "game making" software you could just learn a real language and end up with a much more useful skill set.

    krylon666 on
  • Smug DucklingSmug Duckling Registered User regular
    edited September 2008
    Yeah, I don't know that much about Game Maker, but it seems like if you learn that then you are limited to what Game Maker can do (which admittedly might be a lot), with no easy way to expand into other types of projects.

    Learning a language would be harder at first, but would allow you eventually to do anything that you could think of.

    Game Maker is a useful tool for people who have a specific vision of a game they wish to create, but no real desire to keep pushing to bigger and better projects. That's my opinion anyway.
    Why does it feel like I'm talking about Guitar Hero vs. a real guitar here?

    Smug Duckling on
    smugduckling,pc,days.png
  • 12gauge12gauge Registered User regular
    edited September 2008
    I went to school with the intent to get the skillz for making games but wound up working with business apps instead.

    There's more money in it... and I prefer spending money on games so I can play them

    This. I still play around with the iPhone Simulator (writing pong for example) and will get the developer license once I get the iPhone itself.

    12gauge on
    davidoc0.jpg
  • redraptorredraptor Registered User regular
    edited September 2008
    I'd totally make a simple shmup if other people are doing it. I only do things when a large group of people do it so I can feel accepted.

    I understand they are probably the easiest game type to create in Python? That would make it a good first "assignment" if you are going to go that route with this thread. It'd be a good way to see differant iterations of coding the same thing while seeing minor variations in game features or better ways of doing things.

    redraptor on
  • CentipeedCentipeed Registered User regular
    edited September 2008
    Game Maker might be limiting, but a lot of 2D indie game devs use it to create their stuff, and it IS powerful. I guess it also teaches you something about game logic, like how to structure games and whatnot. And you have to define objects (Like classes in programming) and then give them starting states (Variables) as well as instructions/capabilities (Functions) and tell them what to do when they interact with other objects.

    It takes care of all of the low level stuff, but as far as designing games goes I think it teaches you transferable skills to a certain degree.

    Centipeed on
  • RainbowDespairRainbowDespair Registered User regular
    edited September 2008
    krylon666 wrote: »
    when working on your chess game (or any board game really) try to separate the code for your game and your game board (the graphical representation of the game). doing this will allow you to implement the entire game totally from the command line - like w/ a text interface for instance. then you can mate the graphical interface to it for a finished game. the idea is to seperate your game logic from the graphic drawing code - cause they're exclusive of each other. modifying one shouldn't really effect the other, etc.

    Very good advice. XNA requires you to do this and it's improved my coding skills drastically.

    RainbowDespair on
  • DehumanizedDehumanized Registered User regular
    edited September 2008
    Also worth mentioning that in the beginning, it's probably better just to make everything text based. Graphics adds a level of complexion that will probably feel pretty damn overwhelming if you're still wrapping your head around the fundamentals of OOP.

    Dehumanized on
  • Nova_CNova_C I have the need The need for speedRegistered User regular
    edited September 2008
    One of the biggest hurdles, I've found, when making games is the graphics. Largely the artwork since I can't draw worth shit, but also the technology. It's easy enough to slap a sprite on a background, but in the age of 3D, why limit yourself. :)

    While I haven't worked with it much yet, for those who are interested in using what looks to be a very capable 3D engine, check out Irrlicht. While I've been procrastinating like crazy on it, I've been meaning to work on a 3D shmup in the vein of Einhander.

    Nova_C on
  • LodbrokLodbrok Registered User regular
    edited September 2008
    Funny that this thread came up, I've been looking at playing around with making a simple 3d-game. I spent some time looking around for a suitable engine, and so far the most interesting I found is Panda3D. It is free, looks to be as simple to work with as can be expected from a 3d engine, has modules for physics, collision detection and other stuff, and it is specifically written for python. This suits me fine since I have not worked with C/C++ in a long time. It might not be the fastest/most capable engine, but here are some screenshots of what can be done with it:

    A space game of some kind:
    antarean1.jpg

    and some sort of SoTC thingy:
    colossus5.jpg

    I've just played around with the tutorials so far, but it seems fairly easy to work with as long as you have some programming experience. Just thought I should mention it since python seems to be the language of choice here and from what I have seen this is the best choice for a 3d engine that I have been able to find.

    Lodbrok on
  • Smug DucklingSmug Duckling Registered User regular
    edited September 2008
    redraptor wrote: »
    I'd totally make a simple shmup if other people are doing it. I only do things when a large group of people do it so I can feel accepted.

    I understand they are probably the easiest game type to create in Python? That would make it a good first "assignment" if you are going to go that route with this thread. It'd be a good way to see differant iterations of coding the same thing while seeing minor variations in game features or better ways of doing things.

    Honestly? That's way too complicated. Anything real-time is probably too complicated for a first assignment.

    Something like Othello or Tetris (sort of real-time, but doesn't require smooth movement) is probably more appropriate.

    Smug Duckling on
    smugduckling,pc,days.png
  • peterdevorepeterdevore Registered User regular
    edited September 2008
    I'm sorry, but I think chess is a boring choice to learn to program a videogame. The UI and graphics are not challenging to implement at all. The AI on the other hand can get hairy and is pretty different from what you'd normally see in game AI. Within a week, your UI will be pretty much perfect (even as a beginner), and then the only thing left to program on is the AI (which quickly gets to university level tree search algorithm madness).

    I'd say a wacky SHMUP is much more fun to start with. Unlike chess, it requires a game loop, a framerate cap or other method to deal with speed changes and continuous input handling. It might sound daunting, but it's much more interesting too. You can deal with most of the problems one step at a time, and if you're stuck, we're here to help. I'm sure some AC/SE regulars would love to contribute weird enemies, ships and ... projectiles :winky:

    I don't want to turn you off of doing this the way you want to though, it's a great idea no matter what kind of game you choose. Maybe it's because one of my first game programming learning projects was a SHMUP :P

    If you want to let us see your code alongside you without having to repost everything again and again, look into a free SVN host like Assembla. It has a web page tool called Trac that lets us see the changes in the code you check in (like this), and it does syntax highlighting. PM me if you'd like help in setting it up.
    Yeah, I don't know that much about Game Maker, but it seems like if you learn that then you are limited to what Game Maker can do (which admittedly might be a lot), with no easy way to expand into other types of projects.

    The converse of this is that when you want to make a platformer or SHMUP, Game Maker can be amazingly fast development tool. The Cactus games are a great example of how you can do artsy conceptual game stuff really quickly with Game Maker (check the Dev time under each of those games after you've played them). You do lose out on learning some of the basics such as controlling how fast your game runs and proper input handling, then again, if you don't care about that, you get to actually making games quicker.

    peterdevore on
  • FreddyDFreddyD Registered User regular
    edited September 2008
    I've found that XNA is a great platform to start learning game design in. I was able to get something decent up and running rather quickly, plus there are tons of tutorials and sample projects out there. I think making a full featured shmup would take less than a week if you had any kind of programming experience, and not much longer if you don't.

    FreddyD on
  • redraptorredraptor Registered User regular
    edited September 2008
    I'm really game...for any game, shmup or shmchess. It'd just be neat to do it alongside other people so this thread has a focus at any given time. Kind of like a game making study group.

    redraptor on
  • InquisitorInquisitor Registered User regular
    edited September 2008
    If I made a game I'd try to make an online version of that old kirby mini-game where both players wait for a symbol to flash on screen and then press a button and whoever presses first kills the other guy.

    Inquisitor on
  • ZombiemamboZombiemambo Registered User regular
    edited September 2008
    Game maker is a wonderful tool and really versatile too. It's even more simple than learning C or Python as there is a graphical interface, which does not mean it's any less harder to work with

    Yeah but I'm not going to because I didn't make a thread for suggestions of any kind

    Zombiemambo on
    JKKaAGp.png
  • LittleBootsLittleBoots Registered User regular
    edited September 2008
    I might be down for this. I know a little python already but I've never finished any game project I've started. My scope is usually too ambitious for my skill set and I end up hitting a brick wall and losing motivation.

    I think I may try a very basic SHMUP.
    Meaning a ship with a pee shooter and one type of enemy, probably wont even have a scrolling background.
    Just to see if I can get a shell of a SHMUP up and running from scratch.

    LittleBoots on

    Tofu wrote: Here be Littleboots, destroyer of threads and master of drunkposting.
  • SheepSheep Registered User, __BANNED USERS regular
    edited September 2008
    If it's 2D, I can handle some sprite work.

    Sheep on
Sign In or Register to comment.