Hi all,
Like the headline says, I'm looking for good tutorials or books on basic programming, of course mainly AGS relevant stuff.
I'm quite new to both AGS and programming in general - I did complete a very small practice game, so I'm not totally ignorant, but still I feel that I lack quite a lot of basic progamming knowledge to really get anywhere with AGS.
I have searched a lot for in-depth AGS tutorials, but I think there is a huge gap between the beginner's tutorials and those that imply a broad knowledge of basic programming.
I hope some of you have suggestions of how to fill that gap?
Basically what I'm looking for is a source that starts totally from scratch, but doesn't stop when I got my character to pick up an item, if you know what I mean :)
Sounds like your best bet is Desmings youtube videos (http://www.youtube.com/view_play_list?p=21DB402CB4DAEAEF).
Quote from: iamlowlikeyou on Sat 15/01/2011 13:22:23
I have searched a lot for in-depth AGS tutorials, but I think there is a huge gap between the beginner's tutorials and those that imply a broad knowledge of basic programming.
I hope some of you have suggestions of how to fill that gap?
That is infact true, and as far as I know there isn't really a beginners course for AGS programming. There are video tutorials by densming (http://www.youtube.com/user/densming) but they will focus on how to use AGS in general, although that involves programming to some extent.
I'd like to make one, but then I'm going to need your help. I don't know where to start ;D
I agree that more tutorials would be great, however once you have a character who can talk to people and pick up objects, that's a big step towards making a standard adventure game! Maybe you could identify the areas which need to be covered?
I guess the interactions editor used to make things a bit easier for this sort of thing, but I've always found the technical forums to be very helpful whenever I'm stuck or don't know how to achieve a particular effect.
Thanks, I'll take a look at those videos - although at first glimpse it looks like they don't have much programming.
I know pretty much the basics of the non-code use of AGS, but when I get to scripting, most I can do is copy-paste scripts provided by others :)
Usually I have an idea of how they work, but I never get the overview I'd need to actually make my own scripts, becuase I lack the basic knowledge.
Quote from: Wyz on Sat 15/01/2011 13:39:36
I'd like to make one, but then I'm going to need your help. I don't know where to start ;D
Well, just to take an example I'm not even sure what "void" means in programming (which is one of the "words" I often encounter, and thus figure is a very basic element in programming).
So... I guess what I really need is a "programming for dummies" kind of thing, but I'm not sure which programming language would be the best to study in relation to AGS? Besides I'm not really going to use it for anything else than do scripting in AGS (not at this point at least), so there's no need to use hours upon hours to learn programming that has no relevance for using AGS :)
It might interest you to know that I made a medium length AGS adventure (below), without having any idea what "void" means!
I think a guide to these terms would be great, but it is possible to make a game with a pretty basic level of knowledge, like mine.
We should have AGS Masterclasses.
Each of the more experienced coders writes a practical example for something in AGS Script. Maybe just like a series of short articles explaining how to do things. The topic of the articles would be fairly irrelevant since they would be more about how to approach a problem from a programmatic perspective and how to use the script commands in AGS to achieve more abstract goals.
A classic example is something like a particle system. They are relatively easy to code and not used that often but they teach the basics of structs, iterative loops, drawing functions, etc.
Or maybe someone could whip up a very basic RPG in AGS and document it. It wouldn't take that long for something elementary but it would teach how to integrate basic AGS functionality with user-coded functionality (and people request it every damn week it seems)
They would also be a good chance to teach new coders about some basic coding conventions (indentation and stuff)
Sound good?
(Void means that a function doesnt return any value (or rather it returns void.. which is nothing... wait that *is* confusing)
That'd be awesome! I'm sure McCrea and Monkey_05_06 are in! If you have a fairly nice idea Calin, we can re-instate the most awesome competition ever. Coding competition! :D
That WOULD be great!
But does any of you have a suggestion for which programming language would make the most sense to learn regarding AGS?
Quote from: Calin Elephantsittingonface on Sat 15/01/2011 14:13:04
(Void means that a function doesnt return any value (or rather it returns void.. which is nothing... wait that *is* confusing)
And we could go on - what does it even mean to "return a value"? :D
It just seems so stupid to me that I have to waste people's time in the technical forums with questions that would be much better answered from reading a book or tutorial that could teach me everything in the right order, and teach me the greater context. The other way I'd have to ask about 100 questions a day...
It's not exactly what you are looking for, but it's what I feel it's the most educational method...
Play the Demo Quest included with the Adventure Game Studio, then make a copy of its files and open them in the editor. In the editor explore how different elements of this showcase game have been realized and finally start experimenting with different parts of the script (at first just modify numeral parameters) to see how it affects parts of the game. It's the best way to start to understand and learn code functionality I think.
Calin's idea is really nice if you ask me. Someone once did this with Unity3d and javascript which was very effective.
It would be nice if someone made some tutorials on small script snippets. And maybe in the end their could be like some test in the form of a small game where the "student" could test everything he or she has learned so far.
Well that's a cool idea but that still leaves the basic skills like: Variables, functions, conditionals, iteration, structs, loops, types and on. But maybe that'll just come along. I'll be in for it though.
Quote from: Wyz on Sat 15/01/2011 15:53:52
Well that's a cool idea but that still leaves the basic skills
I think that probably deserves a kind of 'primer' book all on its own. AGS 101.
*Pulls up the DocBook schema and his favorite XML editor*
Awesome, it would be great to learn to use the editor after eight years on the forums. Might check out those video tutorials...
You may want to take a look at the DemoQuest GiP thread here.
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=34048.0
The source code hasn't been updated for a while but there are a number f documents that may be of interest to you. You may find this one in particular helpful.
http://demo.agspace.ws/project/documents/ProgrammingConventions-V0101.txt
I would also recommend that you pick up a book on the C programming language which is what the AGS script language is patterned after. A basic beginners book would do just fine.
Thank you!
I will take a look at those threads, and definitely get a book on C.
I wasn't sure what AGS was built in, so I didn't know what to look for :)
Here is an online book that may be of help.
http://en.wikibooks.org/wiki/C_Programming/Compiling
You could actually do many of the demos in AGS. Since the standard C library in not available in AGS functions such as printf() would need to be replaced with an AGS alternative such as Display().
Some more differences to keep in mind:
- If you see something like: for (int i = 0; i < 100; ++i) ... use this instead:
int i = 0;
while (i < 100)
{
...
i++;
}
- Don't worry about pointers too much, AGS only uses them for strings and in-game objects
- Those lines with #include you can skip
- AGS does not have a switch statement you can use conditionals instead
- AGS only has the `while' loop, but that is actually all you need mostly
- Like Ricky said: all functions that does not exists within AGS need to be replaced with an equivalent if possible, I presume you can just post them if you an't find such thing in the manual.
That should be enough for now ;)
I think you are all assuming too much basic knowledge and programming aptitude.
For someone who just wants to make AGS games a book on C is *not* helpful. It's daunting and over the top for a beginner.
AGS script is not C and it seems silly to learn about C when really its AGS Script you're interested in. Going the *other way* makes sense since AGS script is much simpler but going from quite an advanced language to AGS Script is counter productive in the short term.
There's actually a tutorial on doing a particle engine in AGS, but unfortunately it seems a bit outdated. Pretty much the whole part about drawing on the screen is obsolete, but a lot of the basic structure should be fine.
http://www.barnettcollege.com/dkhtut.htm
But on general programming I can recommend the Stanford programming courses that can be found on youtube. There's three courses, each around 20h of video, and they start from the very basics (in java) and get quite far to memory management in C, some assembly etc. If you are still learning basic things like functions and loops, it doesn't really matter which of the major programming language you use to learn those, as they are pretty much the same in all of them.
So try this (Programming Methodology, 27 videos): http://www.youtube.com/watch?v=KkMDCCdjyW8
It's the basics of java, but it doesn't really go much outside the very basics of programming in general, so by watching this you won't learn much you couldn't use in any other language. Also if you just pick up a 1000 page book on C and start reading without any prior knowledge of programming, you will most likely be very confused. I did this with C++ when I was like 10 and I had no idea what was going on ::)
The other two courses are...
Programming Abstractions: http://www.youtube.com/watch?v=kMzH3tfP6f8
Programming Paradigms: http://www.youtube.com/watch?v=Ps8jOj7diA0
The OP said that he wanted to know what terms such as void meant. He also said he wasn't sure about functions and variables. Since there seems to be a lack such AGS specific material, beginner's C material is the next best thing, IMHO. I'm not suggesting that it's necessary to master C before trying AGS scripting. However C and AGS share a common syntax, operator set, data types, and many other characteristics.
I think the OP knows more than he gives himself credit for. I've been there, where I knew a lot of things but was missing just enough to cloud the higher level view of how everything fits together. In fact I'm at that place now with Django (http://www.djangoproject.com/) and Pyjamas (http://pyjs.org/).
Okay, now I know what "void" means, but what does "OP" mean?
I have to totally disagree with you here, RickJ (and agree with Calin).
While you can learn all you need for AGS programming from learning C, you have much more friendlier languages like C# and Java that can teach you the same thing without overwhelming you with a bunch of stuff that are both complicated and unnecessary for AGS.
Also, AGS is currently a more objected oriented language, something that C will not teach you but C#\Java will.
The only thing that C# & Java are missing for AGS are pointers, but that could be learnt independently when iamlowlikeyou will reach that stage (which is some way to go according to his posts).
Quote from: kaputtnik on Sat 15/01/2011 21:02:31
Okay, now I know what "void" means, but what does "OP" mean?
Original Poster
And let's stay on-topic, the OP is not helped by this at all :P
I know that AGS is much more "user friendly" regarding the making of the specific adventure games, than programming languages like C - even though I know next to nothing about those.
But... Whenever I post a question in the technical forums I happen to get answers that somehow imply a basic knowledge of how the components of the scripts/scripting work together, which I don't have.
That's why I thought it would probably be a good idea for me to read up on some very basic elements of programming, you know, the VERY basics of how scripts are built.
And I haven't really been able to find any such about AGS. So even though I'd probably learn much crap that isn't really usefull in AGS, I'd probably also gain quite a lot from learning about programming.
So what I'm after is really just the easiest language, that at the same time has the most in common with the scripting of AGS.
So if you say that's C# or Java, then I'll go for one of those :D
I have to say that the man that got faster his coding skills and to a great level is Calin, so pretty much I'd ask him how. Seriously.
Yes but do not disturb him right now, he's still working very hard at that primer book. ;D
All right, well perhaps Calin would like to share in this thread with me and all interested how He did it? :D
By the way I started yesterday with the Eclipse Java for total beginner's course, and I'm already in over my head with the 2nd video... I see that the structure is somewhat similar to the AGS scripting, so I think I will benefit from it - I guess I'll just to have to go over each video some 5 times or so :)
While I am not much of a poster on these forums, I really do like the concept of having scenarios and having the more experienced people go through what they would do to get from point A to point B via AGS scripting.
But then again most of the problems I have ever had got solved by looking through archived forum topics.
Quote
While I am not much of a poster on these forums, I really do like the concept of having scenarios and having the more experienced people go through what they would do to get from point A to point B via AGS scripting.
This is a pretty good idea but many people who are knowledgeable enough to make a tutorial aren't rally in touch with beginner's difficulties. I would perhaps be useful to have a list of what's needed. It would kind of cool if people could make requests and other's could rate/vote for them.
I make a testing platform so I could develop modules and other script code. It would lend itself nicely to tutorial collections. I can be downloaded from here:
http://demo.agspace.ws/project/archive/BluBox-T0100-B02.zip