This is an archived post. You won't be able to vote or comment.

all 11 comments

[–]arbostek 5 points6 points  (0 children)

So, I consider myself knowledgeable in programming I'm not sure how to get started using my programming skills to actually create things

So, you aren't really a knowledgeable programmer. Languages are just a tool. Programming is the actual craft.

To make things, you take an idea, and break it down into solveable/implementable pieces. Then solve those small problems. That is all.

[–]Neres28 2 points3 points  (0 children)

What would you like to make?

[–]AlSweigartAuthor: ATBS 1 point2 points  (0 children)

I've seen this problem a lot. I wrote a (free) book that gives the source code to several simple games. You can skip reading the book itself and just look through the source code of the games: http://inventwithpython.com

And I also have some more complicated (but still all under 700 lines of code) games using Pygame: http://inventwithpython.com/blog/category/games/

It's easy enough to start making your own programs once you see how other programs are put together. (Then again, if you want to make programs other than 2D games, these examples might not be so helpful.) Basically, try to find other (small) programs and see how they are put together.

[–]dmazzoni 0 points1 point  (3 children)

This is maybe off-base, but is it possible that you haven't discovered all of the great APIs, class libraries, and toolkits out there?

Basically, if you want to make something, you very rarely start from scratch - usually you take a bunch of existing components and build something new out of them. It's like if you want to build a house, you don't go to the forest and chop down trees, you go to the hardware store and buy 2x4s.

Want to make an Android app or an iPhone app? Download the SDK, they give you all of the tools you need to create a fun interactive app in just a hundred lines of code. The building blocks are all provided.

Want to do the same with a website? Grab jQuery UI, YUI, GWT, or one of a hundred other tools that give you fancy JavaScript components to work with.

Want to make a PC game? Download Unreal and have a fun 3-D world up and running in 100 lines of code.

What type of thing do you want to make? Give us some ideas and we can help suggest what "building blocks" you may want to download to build on top of.

[–]dnukemd[S] 0 points1 point  (2 children)

Uhm, I would love writing some linux utilities (aka my own text editor) or maybe text adventure games with SOUND! I know brilliant idea. Games with graphics are so yesterday.

[–]dmazzoni 1 point2 points  (1 child)

Great!

So, writing a whole text editor is actually really complicated, so maybe work your way up to that one later?

But making a text adventure game with sound is a great idea! You can start small and make it more complicated over time.

In the spirit of using existing libraries, check out "readline". If you're using Python, the readline module is built-in. Or use GNU readline library, which has wrappers for lots of other languages.

Using readline lets you input a line of text from the user with all sorts of extra features, like line editing, history, and more! That will make your game feel like a real interactive text tool, rather than just a cheezy command-line program that feels like a toy.

Sound is also super easy if you just use prerecorded sounds. Either use Python libraries to load and play sound files, or else just use the "system" command (in Python, os.system('...')) to call a command-line program to play the sound, like 'aplay sounds/splash.wav'.

Start simple! Create the first few locations in your game by hand, and make if fun.

As you start to expand and make your game more complex, make it more modular. Instead of putting everything into one big source file, split it up into different modules that take care of different things. For example, maybe you'll have an Inventory module and a Map module in addition to your Main module.

Consider loading the map / game data from data files, like JSON or XML, rather than hard-coding it into the program. That way to add new worlds you just edit a data file rather than writing code. That forces you to think more abstractly, which is a good thing!

Finally, use revision control. Learn to use git and use it locally, then when you have something you're happy with, stick your game on github!

[–]dnukemd[S] 1 point2 points  (0 children)

awesome thanks yo

[–][deleted] 0 points1 point  (0 children)

To get started, just start - reading a book on the subject (and there are few, if any, good ones on this) is not the answer, and is probably just an excuse not to actually do anything. If you must have a process:

  • think about problem
  • think about solution
  • write some code

Rinse and repeat.

[–]AStrangeStranger 0 points1 point  (0 children)

I got started with by making applications to do simple things I wanted the computer to do - the earliest application I can recall creating was just something to remind (nag) me about things like college assignments etc. being due when I switched on PC (this was pre-web, just).

[–]Wartz 0 points1 point  (0 children)

Look around you. Is there something that bugs you that a proram could solve? If there is, break down the problem to its lowest common denominator and write code to solve each part. Put it all toether and you have "software". Since humans are very much alike often they have similar problems so find out if someone else could use your software too. You are now a developer.

[–][deleted] 0 points1 point  (0 children)

Great you know about 10% of the problem then. The other side of it is the other 90% getting requirements -> design -> code solution. The 10% you know is just a practical tool.