Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2 3

Author Topic: Planning to code my own game, looking for advice/help  (Read 3010 times)

Urist_McArathos

  • Bay Watcher
  • Nobody enjoys a good laugh more than I do.
    • View Profile
Planning to code my own game, looking for advice/help
« on: January 30, 2013, 07:14:20 pm »

So, I've been away from the forum for some time for personal reasons IRL.  I'd been researching and looking into the questions I wanted to ask the community for a while, but wasn't sure if it was something I wanted to do, considering the effort and time it would take.  However, I really want to go ahead with making my own game.


I'll preface this by stating the following: I know little to nothing about computer programming.  I have had a kind of game in mind for years that I keep wishing would get made, and while some come close, none are ever it for me.  I've decided that if I want it made, I'd better do it myself.  I'm not expecting a freelance programmer to volunteer to basically code it for me while I issue demands and ideas, nor do I think it will be easy or quick to make it happen.

I've looked for instructional books, but they all seem to assume some level of familiarity with coding, even in a very elementary way (for example, understanding the syntax and format of the code, and some of the vocabulary); I don't blame them for this.  If I read a how-to guide on rebuilding an engine, the authors might consider it reasonable to assume I owned a set of tools and knew at least a little bit about how a car works.  This situation is more like me deciding, having never so much as changed my own oil (and wouldn't know how to even if I wanted to), to build an entire 1967 Ford Mustang by hand, without any of the parts or tools needed on hand, and no idea where to get them.


 
When you're finished laughing at the sheer insanity of my idea, here's what I wanted to ask: where should I go to start learning a programming language?  What code would you recommend?  I believe Toady codes in one of the C languages, and I'd considered C#.  I'd also thought doing this in flash (learning actionscript and how to work in Flash seemed less daunting, but I'm unsure if I could release the game as a stand-alone one if I use flash or actionscript, or if it would even be easier than other languages in the first place).  I'm willing to buy books on the subject, but I don't know which ones to buy.

So, Bay12, any advice on where to begin?
Logged
Current Community/Story Projects:
On the Nature of Dwarves

kytuzian

  • Bay Watcher
    • View Profile
    • Kytuzian - Youtube
Re: Planning to code my own game, looking for advice/help
« Reply #1 on: January 30, 2013, 07:38:49 pm »

Personally, I think you should learn either C++ or C#. I'm biased towards C++, but whatever. They each have their advantages.

And you don't need to buy any books. There are lots of free tutorials, just search something like "beginner c++ tutorial". Most of them aren't perfect, but they'll give you an idea of how it works, which you can expand upon for later. Making a game is long term goal. Learn the basics first. Make sure your first project isn't too complicated.

Once you learn the basics, you can learn about things like 2D and 3D programming.

Also, its great that you seem to have realistic expectations, but don't limit yourself. You can do anything if you have the experience.
« Last Edit: January 30, 2013, 07:54:46 pm by kytuzian »
Logged

Urist McScoopbeard

  • Bay Watcher
  • Damnit Scoopz!
    • View Profile
Re: Planning to code my own game, looking for advice/help
« Reply #2 on: January 30, 2013, 09:06:51 pm »

Im learning Java right now, which is pretty accessable given the right tutorials (heres a technical but pretty easy to read learning manual of sorts: http://people.ucls.uchicago.edu/~bfranke/apcs_0809/downloads/BPJ_TextBook_3_0_5.pdf) the only thing which MIGHT throw you is Java's fetish for object oriented programming, other than that its not too bad.

If you DO want to take up java, a great library to start with is LWJGL (lightweight java game library) and slick2D which basically is an even easier to use version of LWJGL. Later on you can get into the technical realm of openGL and 3d graphics.

Like Kyt said, learn yon damnable fundamentals or perish!
Logged
This conversation is getting disturbing fast, disturbingly erotic.

Urist_McArathos

  • Bay Watcher
  • Nobody enjoys a good laugh more than I do.
    • View Profile
Re: Planning to code my own game, looking for advice/help
« Reply #3 on: January 30, 2013, 09:13:54 pm »

I'm not interested, at this point, in going beyond 2D graphics and sprites.  I don't have any artistic talent, and my concept doesn't need it anyway.  I presume that means I have less to worry about mastering than if I wanted to go for 3D.

EDIT: I'm leaning heavily towards C#; it's a bit intimidating since I have so little knowledge of even where to start, but I appreciate the feedback and help.
« Last Edit: January 30, 2013, 10:51:13 pm by Urist_McArathos »
Logged
Current Community/Story Projects:
On the Nature of Dwarves

Kofthefens

  • Bay Watcher
  • Keep calm and OH GOD CAPYBARAS
    • View Profile
    • Marshland Games
Re: Planning to code my own game, looking for advice/help
« Reply #4 on: January 30, 2013, 10:51:36 pm »

I'm a programmer (though still a student), and I'd be happy to help code and advise. For languages, I recommend going with either C# or Java.



Java has the advantage of me knowing a great textbook for.

C# has the advantage of Unity. It is also quite similar to Java, so you could still learn much, if not all, of what you need to know from the textbook.

More about Unity. Unity is a graphics/game engine, that makes the creation of games 10x easier. It takes care of all sorts of stuff for you - graphics, GUI, collision detection, and more. It allows for a look of professionalism far more easily, in addition to all sorts of optimizations. Unity is also being updated all the time, adding more and more features. You can also compile it and release it with minimal fuss. While it is in 3d, it takes care of so much for you it's worth it. I also have a great familiarity with it, so I could certainly help you more (though I do know Java).

Overall, I definitely recommend using Unity. Hopefully this answers most of your questions.



If you want to collaborate on this, let me know and I can provide more concrete recommendations about contacting, planning, etc.
Logged
I don't care about your indigestion-- How are you is a greeting, not a question.

The epic of Îton Sákrith
The Chronicles of HammerBlaze
My website - Free games

cerapa

  • Bay Watcher
  • It wont bite....unless you are the sun.
    • View Profile
Re: Planning to code my own game, looking for advice/help
« Reply #5 on: January 31, 2013, 12:02:42 pm »

I personally program in c++. I recommend this tutorial. Starts off extremely basic, at explaining what variables are, and teaches pretty much everything you might need to know.

EDIT: Ignore section 2.9 though. Systems hungarian is practically useless.
« Last Edit: January 31, 2013, 12:08:22 pm by cerapa »
Logged

Tick, tick, tick the time goes by,
tick, tick, tick the clock blows up.

lemmily

  • Bay Watcher
    • View Profile
    • BatFinchBears
Re: Planning to code my own game, looking for advice/help
« Reply #6 on: January 31, 2013, 09:16:42 pm »

Once you learn one programming language it's MUCH MUCH easier to learn a second. I learnt actionscript to start with, as you can pretty much get straight into coding game-like things and it's pretty forgiving.

I wouldn't suggest aiming to go straight into coding your game idea, but more think about one particular part, so if your games has a player that moves around on a tile based grid with an inventory and fights things. The first "test" I would do is making a grid of some kind on the screen. then a player that moves on the grid on the screen.. etc!

I've been learning as a hobby for about 6 months and I feel I've learnt loads by testing things in these "throwaway" style projects. The great things is I have started a more major project and have been able to re-use much of my smaller projects code etc :) :)

Best thing to do is to just dive in and start experimenting. Even if it's starting with someone elses code and changing things until you understand what's happening !
Logged
I make furry things - BatFinch Bears

BoboJack

  • Bay Watcher
    • View Profile
Re: Planning to code my own game, looking for advice/help
« Reply #8 on: February 04, 2013, 11:07:13 pm »

*sigh*

Please refer to this: http://www.bay12forums.com/smf/index.php?topic=30113.msg3992322#msg3992322

True.

I think you  shouldn't start with any C thingy.
I think they're unnecessarily hard for a beginner.
You'd also have to use Mono to use C# on different platforms. http://de.wikipedia.org/wiki/Mono-Projekt

Java and C# forces you to use object oriented programming.
The people I know had problems understanding it, when they were learning how to program.

C++ doesn't enforce object oriented programming, but still has so much syntax
and weird text floating around no beginner could deeply understand.
Things like that are just frustrating. Same goes for Java/C#

If the game you have in mind isn't as resource hungry as DF you should go with http://love2d.org/.
Its simple. Its powerful. There's a big community and many useful libraries.
Maybe this Tutorial http://lua.gts-stolberg.de/en/index.php is suitable for an absolute lua/löve2D beginner.
You can dive directly into making games with this.

You could also go with Python and PyGame http://www.pygame.org/news.html

If you're a smart weirdo you can go with Haskell. Much much harder than Löve, but the language itself is an exiting adventure.
But you won't make a game with that in the first few months X)

And you don't have to buy any books. They often aren't very good anyway.
Also never pay money for anything.
Avoid proprietary stuff like the whole Microsoft Studio stuff.
They make you dependent on them and you'll have to pay money to use advanced features which come free on the web.

Oh and don't think C++ or Java would be some kind of goal or the best languages to program games with.
This isn't true at all. Stuff like Lua and Python is just as capable(but they are slower) and also have exiting features.
Lua is deployed in many commercial games. It is a serious choice.

And you don't have to make a game engine. Don't waste your time on that.
You want to make a game. Not a game engine.
There are plenty of "game engines" out there you can use.
Löve and PyGame are great examples.

Feel free to PM me for specific questions or help with programming.
« Last Edit: February 04, 2013, 11:26:49 pm by BoboJack »
Logged

Urist_McArathos

  • Bay Watcher
  • Nobody enjoys a good laugh more than I do.
    • View Profile
Re: Planning to code my own game, looking for advice/help
« Reply #9 on: February 05, 2013, 03:29:51 am »

I had heard good things about Python (it came on my radar when I read a xkcd comic about how easy it was to use, and figured "if this guy says its easier, it must be; he seems to know his stuff"), but I wasn't any more sure of it than...any other language, actually.  I'd also looked into Ruby for similar reasons (a number of people I asked said it was an easier and more straightforward language than any of the C languages), but couldn't figure out...well, where to start learning either of them.

I honestly have no clue how resource hungry my game could end up being; I sincerely doubt it could approach the mighty load that DF can must though.
Logged
Current Community/Story Projects:
On the Nature of Dwarves

Lemunde

  • Bay Watcher
    • View Profile
Re: Planning to code my own game, looking for advice/help
« Reply #10 on: February 05, 2013, 03:42:54 am »

I personally use c# and XNA for all my game making stuff. I've tried using java and c++ with open gl but in the end c# was much easier for me to use for what I was trying to do.

Honestly I would probably recommend java starting out. I'd only recommend c++ if you really wanted to get into the nitty gritty of how memory management works or if your program needs to be extremely portable.

Diving right into coding a project probably isn't the best way to learn for a beginner. What I would recommend is finding a simple open source game in your preferred language and messing around with the code, just to familiarize yourself with how things work. Start by changing numbers around then try adding in some stuff of your own. Once your comfortable with how simple coding concepts work then you can start a new project.
Logged

Normandy

  • Bay Watcher
    • View Profile
Re: Planning to code my own game, looking for advice/help
« Reply #11 on: February 05, 2013, 04:01:29 am »

Actually, to disagree with Lemunde, diving into a coding project is probably the best way to learn coding. Not to be cynical, but you probably won't finish the coding project. You will, however, be motivated to learn the language and make stuff happen on the screen, which IMO is the best way to learn coding. Learn the mindset first, then learn style later when it makes sense what they're talking about.

Also, having learned C++ as my first language, my suggestion is just don't do it. Learn a more modern, more reasonable language first. I personally like python, esp. considering all the libraries and support for python out there.
Logged

BoboJack

  • Bay Watcher
    • View Profile
Re: Planning to code my own game, looking for advice/help
« Reply #12 on: February 05, 2013, 05:38:33 am »

I've remembered this blogpost http://garry.tv/post/39300268853/hey-garry-i-was-just-wondering-could-you-do-a-post.
I think the advice given there is a very good one.

With Löve you can start out with something simple as:
Quote
function love.draw()
    love.graphics.print('Hello World!', 400, 300)
end
That really is a fully functional thing here, with window and stuff.

People I've taught responded very fast to Löve an did little games with airships flying into an alien and dying in a short time.
With C++ everyone lost motivation after 10 minutes.

When I've started with C++ and programming I needed 1 year to understand object oriented programming.
It would be sad if the same happened to you with C#.
But I was a little boy and had barley help, so maybe you're better of.

Oh and I should probably mention https://www.khanacademy.org/cs.
I think the website is using Javascript to teach you.(The basics are the same in 'usual' programming languages)
Its a very good place to start of with the absolute basics.

If I were you I'd go through some(maybe all) of the khan academy stuff and
then I'd go to Löve with their Wiki and the Lua beginners site I've posted and rock out.
« Last Edit: February 05, 2013, 06:29:42 am by BoboJack »
Logged

Anvilfolk

  • Bay Watcher
  • Love! <3
    • View Profile
    • Portuguese blacksmithing forum!
Re: Planning to code my own game, looking for advice/help
« Reply #13 on: February 05, 2013, 06:34:15 am »

SNIP ...but couldn't figure out...well, where to start learning either of them.

Really? There's a million resources all over the place, including free books on game programming!

http://www.diveintopython.net/
http://thepythongamebook.com/en:start
http://inventwithpython.com/



Bobo, I've heard good things about Lua, but was somewhat unimpressed when I looked at it quite a few years ago. Can you give us a little rundown on how it differs from, say, Python?

BoboJack

  • Bay Watcher
    • View Profile
Re: Planning to code my own game, looking for advice/help
« Reply #14 on: February 05, 2013, 07:28:20 am »

I never did much with Python.  ::)
I really liked it though, the topic creator should totally think about it as an option.

What stands out for me about Lua is that it uses tables for everything.

Tables in Lua are just a collection of things where each thing is referred to with some name/identifier.

name              some thing
"NameOfDog", "Bobo"
1,                 "Cake"
"numberOfNipples",21

And there is the notion of a meta table.
You can assign a meta table to any table.
If a table is asked for something, but hasn't have it, it asks its meta table for that thing.

That way you can implement object oriented programming very easy while understanding whats going on.

I don't know if something similar exists in Python, but Lua has something called a generic for.
Roughly saying it lets you make your own kind of for loops and looks cool.
That way you can loop through a grid of tiles with readable nice code.

To summarize, you can do nice specialized languages out of Lua.
Its small and very extensible. No complicated features, only few quite simple, but very powerful things.
« Last Edit: February 05, 2013, 08:11:34 am by BoboJack »
Logged
Pages: [1] 2 3