?Getting Started... and a bit beyond?

  • (2 Pages)
  • +
  • 1
  • 2

19 Replies - 1427 Views - Last Post: 18 May 2015 - 02:30 PM Rate Topic: -----

#1 ladubois   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 9
  • Joined: 17-May 15

?Getting Started... and a bit beyond?

Posted 17 May 2015 - 01:43 PM

The question marks in the title are just an attempt to keep people from thinking this is some sort of guide.

Sorry in advance for the drawn-out soliloquy. I've been interested in programming for several years, now, and while I've managed to collect a few books and programs to that end, I've yet to really learn - let alone do - anything. Other than a fair amount of theory. Basically, I'm having difficulty getting started. All these books want to me pretty much replicate blocks of code for the first dozen chapters, and sometimes all the way through. Patience is a virtue I have relatively little of, but I learn best by having a project I wan to do, starting it and then figuring out what I need along the way, fixing earlier things as I learn or - perhaps a bit too frequently - writing the project off as a lost cause and starting over again with my increased knowledge base.

Basically, I need a project that can hold my interest long enough to actually learn what I'm doing, which generally means something relatively large. The trouble with this is that with particularly large or complex projects, I have no idea where to start.

NOW, to the point. There are a couple of projects that I'd like to make, but only one fits in the perfect niche of big enough to learn with, but something that I don't care too much about the outcome of and so won't be too afraid to make mistakes on. This project is something you could consider a mini-MMO (I am aware that that's an oxymoron). Basically, a MMO-like game that is primarily single-player, but can be played with a few friends over LAN or online. Sort of like something five sixths of the way between World of Warcraft and Elder Scrolls games. ...In all candor, probably what SWTOR should have been.

I could go into more detail, but there's no real need at this point. This is the project that I want to use to teach myself how to make a game. I've read around - both over the last several years, and a quick refresher just before posting this - all the stories about how incredibly difficult it is to make MMOs (I don't really know if the mini part negates any of that, but I'm guessing its effects are negligible to everything but implementation). Even so, my mind's made up, and since it's a self-educational side project...

Again, apologies for all the rambling, but you've reached the final stretch. (Thanks for getting this far. Sincerely.)
My main question is: Where do I start? With a goal in mind, I can sit through a bit more reading (and probably will crack open some of those books back open that I have, after posting this) but I'd really like to start doing something productive as soon as possible, just so I can have that first small step started.

I believe posting a little about my background in regards to programming. I'll include more-or-less everyting, no matter how small, since while I didn't think much of it at the time, some of those "Johnny's First ___"-type things have done more for teaching me some programming basics than most of my books.
  • I've fiddled around with the dialect of BASIC used on TI calculators. Specifically, I made a dice roller that allowed rolling of a dice of various sizes for tabletop roleplaying purposes.
  • I then tried my hand at making a few games with various editions of RPG Maker (2k3, XP, and VX, specifically) which taught me some rudimentary basics of scripting. I was particularly fond of using people's scripts that drastically modified things like the battle system and whatnot, and while I never made any myself, I monkeyed around with enough to probably have been able to make something fairly simple of my own.
  • I've also grown comfortable with modifying config files, so I'm used to variables, and appreciate the value of clear and thorough comments in code.
  • And as I've said, I have a few books on programming and languages.
  • The languages I'm interested in are primarily C++, Python, Lua, and (begrudgingly, due to its sheer ubiquity) Java. That said, I'm both open to suggestions of other languages, and only barely familiar with these.


(Sorry for double posting, but I didn't see an edit button)

TL;DR I want to work on making a game so I can actually learn by doing. How do I actually go about starting that?

Is This A Good Question/Topic? 0
  • +

Replies To: ?Getting Started... and a bit beyond?

#2 modi123_1   User is offline

  • Suitor #2
  • member icon



Reputation: 14094
  • View blog
  • Posts: 56,469
  • Joined: 12-June 08

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 01:52 PM

Quote

All these books want to me pretty much replicate blocks of code for the first dozen chapters,

Actually, no. They those examples highlight key concepts and show you how they would lay out in a plain and clear fashion. It's not about typing them again it's about understanding what is being presented.

Quote

Where do I start?
[...]
but I'd really like to start doing something productive as soon as possible,

Design. Start with a design. Map out all the moving parts, break down actions, activities, UI, sounds, assets, graphics, etc. Boil that down to the minimal requirements and aspects you'll need to read up. Set those down and then start thinking about the code.

Quote

I believe posting a little about my background in regards to programming.

From the read - I say a shy above zero then? Look - game programming is a complex niche in the general programming area. Modifying files, and just having a few books sitting around unread, will not help you learn to program or to make a game. Certainly I would advocate using an exiting game engine like GameMaker studio, Unity, or Unreal - but even then there is a heavy, HEAVY, amount of programming knowledge you'll need.. Trying to slapdash a patch work of disjointed code from across the 'net is hardly going to help you accomplish your goals.


The short is - learn a language (c++ is fine), understand the concepts, and then examine how that fits into making a game.
Was This Post Helpful? 0
  • +
  • -

#3 macosxnerd101   User is offline

  • Games, Graphs, and Auctions
  • member icon




Reputation: 12316
  • View blog
  • Posts: 45,416
  • Joined: 27-December 08

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 01:57 PM

Quote

My main question is: Where do I start? With a goal in mind, I can sit through a bit more reading (and probably will crack open some of those books back open that I have, after posting this) but I'd really like to start doing something productive as soon as possible, just so I can have that first small step started.

You're biting off something too big given your skillset.

Quote

Basically, I need a project that can hold my interest long enough to actually learn what I'm doing, which generally means something relatively large. The trouble with this is that with particularly large or complex projects, I have no idea where to start.

I'd at least work through the standard gambit of Intro to Programming assignments- printing a diamond of girth n to the console, checking if a string is a palindrome, implementing a guessing game, generating prime numbers, and some standard OOP assignments. These aren't large projects, but sufficient so you can make sure you have the basics down. If you can't correctly use a for loop or design some classes to work together, your codebase for your game will be very brittle. You will find yourself breaking ten things every time you want to add one feature.

There are also more basic games you can implement- a guessing game, black jack, etc. There is no book for building an MMO for dummies because it isn't an easy task where newbies can succeed.
Was This Post Helpful? 0
  • +
  • -

#4 ladubois   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 9
  • Joined: 17-May 15

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 02:09 PM

View Postmodi123_1, on 17 May 2015 - 01:52 PM, said:

From the read - I say a shy above zero then?


Just want to say, for the record, that I had no delusions to the contrary.

Oh, I did forget to mention that I made a tic-tac-toe game. One of those simple starter projects using C++, if I recall.
Was This Post Helpful? 0
  • +
  • -

#5 ladubois   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 9
  • Joined: 17-May 15

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 02:16 PM

View Postmacosxnerd101, on 17 May 2015 - 01:57 PM, said:

You're biting off something too big given your skillset.


Also, no delusions to the contrary. But since its a project that will never have a final product (...in theory...), it gives me something... concrete to see exactly how to implement all the theory I'm gathering from reading.

I started teaching myself Japanese this way - translating a few songs from Japanese to English, and then a short novel. I'm sure it's about as decent a translation as Zero Wing was, but it allowed me to learn grammar in a far more immersive way than simply working through textbooks. And really, it's all just methods of encoding information, so I'd be surprised if it's significantly different.
Was This Post Helpful? 0
  • +
  • -

#6 macosxnerd101   User is offline

  • Games, Graphs, and Auctions
  • member icon




Reputation: 12316
  • View blog
  • Posts: 45,416
  • Joined: 27-December 08

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 02:29 PM

Learning a language is very different than learning programming. You have no experience right now, so you are not only learning a programming language but algorithmic problem solving as well. If programming was purely linguistic, translating an existing game would be great.

Quote

But since its a project that will never have a final product (...in theory...), it gives me something... concrete to see exactly how to implement all the theory I'm gathering from reading.

It's exactly the opposite. Programming is all about creating a final product.

There are plenty of smaller games than an MMO which will give you something concrete. Getting into an MMO and networking gets really complicated. Some ideas:
-Start with a number guessing game which tells you higher or lower. Could you implement an AI to solve it?
-Blackjack
-Design a two-player Hangman game using an object-oriented programming
-Design a basic Pong game against a computer.
Was This Post Helpful? 0
  • +
  • -

#7 ben255   User is offline

  • D.I.C Addict

Reputation: 39
  • View blog
  • Posts: 510
  • Joined: 09-September 13

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 03:00 PM

ive tried to make over a 100 games now and finally starting to feel like i understand the basics so keep at it. i still remeber how foolish i was thinking i could write what i can now, then. you learn something new every time so with the knowledge you have now just make whatever you want and solve the problems you end up with. if you dont know how to make the grafics start there. "one brick at the time until you got a wall" - (paraphrasing) Will Smith
Was This Post Helpful? 0
  • +
  • -

#8 ladubois   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 9
  • Joined: 17-May 15

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 03:03 PM

I'm afraid I'm sounding like an arrogant, highly unsympathetic ignoramus, but I really do want to learn how to do this. But the only way I can teach myself is by working towards a project I'm interested in. I may not know much about a lot of things, but I have managed to figure out the best way for me to learn something. It's very much a bit-off-more-than-I-can-chew situation, I'm aware, but it gives me context. I'm not terribly great with abstraction until I'm already pretty familiar with the field, so I can do these basic exercises, but they don't tend to stick until I understand how they are applied. As such, full immersion, sink-or-swim methods - messy as they are - are the best way I've found to learn.

Now, stepping off the defensive a bit, I sincerely thank you both for your advice so far. I've always been good at math (ironically, given how I tend not to like abstract learning), though, so algorithms don't scare me. I did make a tic-tac-toe game with an unbeatable AI, so perhaps that will count for the number guessing game you mentioned. I suppose I can settle for making a blackjack game and Pong to get some hands-on skills before I start this, but even if I don't know how to make those right now, I know how to learn how. Tomorrow, I could probably find a decent step-by-step tutorial for making Blackjack with a GUI, even. But the trouble is that there's very little advice that I've been able to find on how to even start approaching a game that's more robust than that.

I understand this is a highly complex project. I understand that I certainly don't understand how complex it is. I'll probably start with something fairly Roguelike or reminiscent of Runescape at most, and then build up from there as I become more knowledgeable until I finally reach the lofty peak that in all reality I'll probably never reach on my own, but want to at least continue to work towards. Now, saying that, I'm aware that the basic engine for the Roguelike version of this hypothetical game is going to be completely different for if/when it moves on to something resembling a post-2005-or-so CRPG, and so obviously it'll have to be pretty much rebuilt from scratch (or from an engine like Unity or Unreal, more likely), but I'll cross that bridge when I get to it.



...On the other hand, how do game designers become game designers anyway? I mean, obviously at least some - probably most - got there by making a game, themselves; Sid Meier, Notch... But I wonder how much programming experience Chris Avellone or Hideo Kojima has. Perhaps I'm trying to approach this from the wrong angle. If I may be honest, code is at best something I'd consider a light hobby, even if I did learn enough to write my own tome or two on the subject. It's the world, story, and characters I have a true passion for making. But I'm not going to be a Gloomy Gus. I'm the most tech-savvy of my friends (which says as much as you think), and don't have the capital to entice a stranger to work for me, so until I do manage to make a friend who has more talent for code, I'll just starting working on things, myself. If I get tired or frustrated and give up after a year or two, oh well, life goes on. But if I manage to at least get a half-functional concept, perhaps I'll have an easier time convincing that future friend to help me with my crazy project.
Was This Post Helpful? 0
  • +
  • -

#9 macosxnerd101   User is offline

  • Games, Graphs, and Auctions
  • member icon




Reputation: 12316
  • View blog
  • Posts: 45,416
  • Joined: 27-December 08

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 03:13 PM

Rather than looking for a tutorial of how to build blackjack, you should be able to build it yourself. If you're struggling with the logic of this, then that's a good indicator that you're already biting off more than you can chew.

Also, try building it without the GUI first to get the logic down. Focus on separating the UI from the logic. This will help you with your design. The add the GUI.

Lastly, if you just found a tic-tac-toe tutorial, that doesn't count as building it yourself. Don't short sell yourself on learning points because you want to say you've built something big.
Was This Post Helpful? 0
  • +
  • -

#10 ladubois   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 9
  • Joined: 17-May 15

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 03:40 PM

View Postben255, on 17 May 2015 - 03:00 PM, said:

ive tried to make over a 100 games now and finally starting to feel like i understand the basics so keep at it. i still remeber how foolish i was thinking i could write what i can now, then. you learn something new every time so with the knowledge you have now just make whatever you want and solve the problems you end up with. if you dont know how to make the grafics start there. "one brick at the time until you got a wall" - (paraphrasing) Will Smith


Yeah, that's pretty much how I've been so far. Nothing I made with RPG Maker ever got finished, but each project was better than the last, and I did end up learning what I could comfortably call beginner-level Ruby. The trouble is that I'm overwhelmed with trying to figure out which wall to start with, let alone which brick. I mean, RPG Maker already has the basics set up for you - structured databases, GUIs, the battle system, and huge chunks of code that I'm not even aware of to run all the things from opening the menu to the title screen and transfering from that to the actual game. I mean, should I make the title screen first because its the first thing that's supposed to happen when you run the program - that's what the literature seems to suggest so far, given that it seems to want you to write your code from beginning to end, but that doesn't seem right in my mind. Intuition tells me that I should probably start with the "base" part of the game - like walking about in the overworld for a JRPG, or ordering around units in a RTS (both of which I'm sure require a fair amount of code to support them in their own right, but I'm just trying to illustrate a point at the moment).

Agh! :nervous:

...This sort of anxiety is obviously why you break the project up into manageable chunks, and plan things out even before you start writing the first line of code, but having only a student's frame a reference, I don't even know how to take that simplest of first steps in this case. ...Well, I guess it's the second step, since I do at least know to create the pre-coding outline.

View Postmacosxnerd101, on 17 May 2015 - 02:29 PM, said:

It's exactly the opposite. Programming is all about creating a final product.
...
Getting into an MMO and networking gets really complicated.


...Minecraft's sort of a constantly in-development, never-truly-finished project. I don't expect a finished project out of this. I do intend to work towards a finished version, regardless. Perhaps you'd consider Minecraft a final product in that regard, however, but a similar sort of unfinished "final" product is what I'm aiming for, too.

While I did say MMO, it isn't really going to be one. I mean plenty of the programming will be as complicated - the large world, full of interactables, etc. - but the networking isn't going to be quite as troublesome. At the very least, I won't need a server since even once I am ready to upgrade it from single-player to multi-ish, it'll be for locally hosted LAN games - which I'm sure will be plenty complicated already, but I won't even be attempting that until I'm much more experienced. I imagine while working on the single-player version, however, I'll still need to keep in mind that it will be intended to have some networking, and I'll need to make some adjustments to the way the game is programmed in order to accommodate that. However, I also expect that in spite of my best efforts, simply due to inexperience, I will still end up coding something in a manner that will make it incompatible with my hopes for LAN multi-player, and will need to start a large section - or perhaps the whole thing - over from scratch. I'm prepared for this eventuality. A sort of real-life iterative method, if you will.
Was This Post Helpful? 0
  • +
  • -

#11 ladubois   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 9
  • Joined: 17-May 15

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 03:54 PM

View Postmacosxnerd101, on 17 May 2015 - 03:13 PM, said:

Rather than looking for a tutorial of how to build blackjack, you should be able to build it yourself. If you're struggling with the logic of this, then that's a good indicator that you're already biting off more than you can chew.

Also, try building it without the GUI first to get the logic down. Focus on separating the UI from the logic. This will help you with your design. The add the GUI.

Lastly, if you just found a tic-tac-toe tutorial, that doesn't count as building it yourself. Don't short sell yourself on learning points because you want to say you've built something big.


I was just trying to make a point. I know that doing what I said would completely subvert the purpose of the assignment. I simply meant that the simple, beginner projects - while teaching useful skills - are a completely different creature from making an actual video game. To use ben255's analogy, they teach you what the bricks are and how to make them, but there's not much info that I've been able to find on how to go about making a wall with them.

As for the tic-tac-toe game, I started by coming up with a general idea of how I wanted to make it (primarily to ensure that I wouldn't be too tempted by step 2), then looked up a couple of tutorials to study and learn how they did it, and then built my own from that frame of reference. I used something resembling a magic square to evaluate what move the CPU should make. Judging by the tutorials' methods, that was way too needlessly complex. For starters, I needed two magic squares - one for each player, and that each added up to different numbers, but only along the winning lines. Took me a few sheets of paper just to come up with the numbers I needed...
Was This Post Helpful? 0
  • +
  • -

#12 modi123_1   User is offline

  • Suitor #2
  • member icon



Reputation: 14094
  • View blog
  • Posts: 56,469
  • Joined: 12-June 08

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 04:03 PM

For the love of Peter.


View Postladubois, on 17 May 2015 - 05:03 PM, said:

. As such, full immersion, sink-or-swim methods - messy as they are - are the best way I've found to learn.

Honestly it sounds like this is the best way for you to screw around and not make progress. All your wall-of-texts ooze a certain amount of "pffsst.. I don't need to know foundations!" and you seem to wonder why you never produce anything.


View Postladubois, on 17 May 2015 - 05:03 PM, said:

...On the other hand, how do game designers become game designers anyway?

Software design and game design have similar veins and application. There are a large quantities of books on the subject as well.


View Postladubois, on 17 May 2015 - 05:03 PM, said:

code is at best something I'd consider a light hobby, even if I did learn enough to write my own tome or two on the subject.

What?


View Postladubois, on 17 May 2015 - 05:40 PM, said:

The trouble is that I'm overwhelmed with trying to figure out which wall to start with,

What happened to the happy-go-lucky "let's not read the manual/get a foundation" attitude?

... are you starting to see a theme here?


View Postladubois, on 17 May 2015 - 05:40 PM, said:

. I mean, should I make the title screen first because its the firstthing that's supposed to happen when you run the program

Is a title screen a remotely interesting part of a proof-of-concept for a game? I certainly don't think so. Is it important? Sure but it's not as important as base mechanics.



View Postladubois, on 17 May 2015 - 05:40 PM, said:

that's what the literature seems to suggest so far, given that it seems to want you to write your code from beginning to end

What literature? I have yet to see anyone advocate the linear order a user operates in a program is the only way to code up something.


View Postladubois, on 17 May 2015 - 05:40 PM, said:

...Minecraft's sort of a constantly in-development, never-truly-finished project. I

No, that is not true. There was a finished product. It dropped out of beta/alpha and had a release. Subsequent updates do not mean the project is still 'in design'.

I guarantee there was a definitive bright line drawn that said "here is what we need to ship, here is what is gold plating".
Was This Post Helpful? 1
  • +
  • -

#13 macosxnerd101   User is offline

  • Games, Graphs, and Auctions
  • member icon




Reputation: 12316
  • View blog
  • Posts: 45,416
  • Joined: 27-December 08

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 04:05 PM

Well, what you're looking for really doesn't exist for reasons we explained. There is no "how to make an MMO for newbies" guide. Best of luck in your endeavors.
Was This Post Helpful? 0
  • +
  • -

#14 modi123_1   User is offline

  • Suitor #2
  • member icon



Reputation: 14094
  • View blog
  • Posts: 56,469
  • Joined: 12-June 08

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 04:07 PM

View Postladubois, on 17 May 2015 - 05:54 PM, said:

I know that doing what I said would completely subvert the purpose of the assignment.


.. then stop doing it? You seem to revel in a Laissez-faire glee of purposefully not learning the fundamentals.

I am not certain if you looking for a pat on the head every time you chirp "best way I've found to learn" when you use that as a cover for why you have accomplished zilch and are still lost in the woods. Perpetually doing one thing and expecting different results would indicate you need to reexamine how you are claiming you learn.
Was This Post Helpful? 0
  • +
  • -

#15 ladubois   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 9
  • Joined: 17-May 15

Re: ?Getting Started... and a bit beyond?

Posted 17 May 2015 - 04:37 PM

The 'happy-go-lucky' attitude, such as it is, hasn't gone anywhere. I started this thread to ask what the first steps to take towards this project are, and Blackjack and Pong are perfectly valid answers to that. I intend to work on those over the next couple of months, now. But from there, where?
I'm not content to wade around in the kiddie pool as my textbooks insist, but I know that going ahead and doing a cannonball is suicide. I intend to wade into a sea. Yes, it's a sea, but I'm wading. I've conceded to do a few laps in a pool with the aforementioned projects, but as long as I can see the entire body of water, I don't feel like I'm learning much, which makes me more likely to just not bother with the whole thing and just go and ...paint or something, instead. ...I think I'm a bit too fond of metaphor. Basically, I'm trying to figure out what are the biggest strides I can take at a time.

I appear to have offended your sensibilities, and for that I apologize, but I hope it may have had more to do with poor communication than my being a hopeless amateur.
Was This Post Helpful? 0
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2