I've started a devlog, chronicling my progress in rebooting the McCarthy series. I'm going to write about challenges of making an adventure game in AGS using the Lua plugin. I'm going to mostly stick with technical stuff and how to structure a game in Lua rather than design but i'm sure some of that will seep in too.
http://themccarthychronicles.tumblr.com/
FINALLY! Really an interesting read and great to learn more about lua on the way.
I'll definitely be frequenting that blog of yours from time to time.
...on the other hand, why are you here posting that stuff, get back to making that game series happen already!! :tongue:
Spoiler
Nah, seriously awesome news, Calin!
That is really cool! I've been thinking of the McCarthy Chronicles just a couple of days ago, wondering how progress was. Good to see things are still going. Plus I love some tech reading.
These are great news! Just yesterday I was about to ask you what had happened to this series and their awesome lamps!
Ohhh, I'm definitely going to follow this one! Lua sounds great. I saw what it could do in Barely Floating dev vlog - MIND BLOWN! Modifying the scripts and testing them on the go sounds like heaven - because hell knows how many times I had to speed-run through Gray after adding one teeny tiny thing (e.g. a sound file, even!). So I'll definitely want to give Lua a try with my upcoming project.
Two more posts to the devlog and I've decided to move it to a wordpress since it has comment support and stuff so questions can be asked and so forth:
http://www.themccarthychronicles.co.uk/devlog/
These two posts focus on the event system we're going to be using.
Let me know if I'm going too fast or I'm not explaining things well enough or whatever.
oh, you use lua. Is there LUA support on AGS :=
I tried that template for my blog but just couldn't stand the words not aligning with the lines.
I remember when Ron Gilbert shat all over Lua on his Twitter as a useful language. Made me seriously question its merits.
I think I can argue pretty well that Lua is especially useful for adventure games. Adventure games are data driven experiences and Lua deals with data structures very well I think. Or at least better than AGS Script does.
Ugh. This is the very reason I haven't moved to LUA yet (even though I completely dislike AGS script), I can't stand the "begin" "end" "then" "do" etc, blah! It's so redundant it makes my head hurt.
I felt exactly the same way but honestly, you forget about it very quickly.
Lua was designed as a scripting language for non-coders and designers so it's designed to look less intimidating and more like English.
It would not be my first choice as a language to use but it's still miles better than AGS Script.
I should learn lua, and then learn to make an adventure game interpreter like SCUMM with Love2D.
Love2D would be an excellent choice for an adventure game and I was very close to choosing it for McCarthy but I decided against it due to phone support.
Love2D is ready made for Windows, Mac, and Linux though I thought? Shouldn't be to hard to port to iOS or Android.
I'm using Love2D for my current main project and I think there is an unstable android port but no iOS port.
It shouldn't be too difficult to port but it hasnt been done yet.
Quote from: Secret Fawful on Thu 06/06/2013 23:47:32
I remember when Ron Gilbert shat all over Lua on his Twitter as a useful language. Made me seriously question its merits.
I never saw Gilbert provide anything other than his say so about this. The fact that LucasArts moved from his beloved scumm onto lua based code for grime - and that Schafer continued to use lua on projects like Brutal Legend makes his claims that scumm was far more amazing than lua seem quite petty. In addition, look at all the games made using lua (http://en.wikipedia.org/wiki/Category:Lua-scripted_video_games) - big, great, complex games. Allow these to speak for lua's usefulness rather than the words of a single person, I would say.
Since you mention Love2d, how hard it is to make an adventure game in it? By "adventure game" I mean with inventory, hotspots, dialog trees, sprite animation and scaling, is it all hard to implement? I've been looking over some tutorials and trying some things, but I haven't seen people doing them in Love2d, they make retro rpg and platformer stuff mostly.
I made half an adventure game engine and it took me about half a week or so. I'll let you do the math on that.
Love2D is *just* a framework really. It can play sounds, draw pictures and handle input but thats all so it's certainly not as easy as a dedicated adventure game engine.
But if you think about about it, adventure games are very simple. Once you have a room system and a character system you are like 75% there.
The benefits over AGS are very high though if you want to make a high res, graphics heavy game though: Hadware acceleration, different blending modes, subpixel accuracy, resolution independance and more.
So, is it any worth to continue working on AGS? I am spending time on it, and begin thinking it might be all in vain.
AGS is still an excellent program, which is why I'm still using it for mccarthy but it does need modernising.
Quote from: Crimson Wizard on Fri 07/06/2013 18:29:30
So, is it any worth to continue working on AGS? I am spending time on it, and begin thinking it might be all in vain.
I appreciate what you (and the other Project Admins) are doing, and hopefully most aspects of AGS that keep it from being up to date can be modified or added through your hard work.
This community and the amount of content it produces warrants the continued efforts to update and move foreword IMHO. Besides, adventure games are poised to come back big time.
Quote from: ThreeOhFour on Fri 07/06/2013 15:13:52
Quote from: Secret Fawful on Thu 06/06/2013 23:47:32
I remember when Ron Gilbert shat all over Lua on his Twitter as a useful language. Made me seriously question its merits.
I never saw Gilbert provide anything other than his say so about this. The fact that LucasArts moved from his beloved scumm onto lua based code for grime - and that Schafer continued to use lua on projects like Brutal Legend makes his claims that scumm was far more amazing than lua seem quite petty. In addition, look at all the games made using lua (http://en.wikipedia.org/wiki/Category:Lua-scripted_video_games) - big, great, complex games. Allow these to speak for lua's usefulness rather than the words of a single person, I would say.
Did you ask him? No? Oh. Didn't care about the expertise about someone who has been programming for decades? Okay.
I still have certain concerns about Lua (I believe I mentioned that already): it implicitly creates new variable when finds a new name in script. This means every time you make a typo, or forget to rename a variable in one place, you will make a new variable instead. And since it is not a strongly typed language either, there's less chance (or perhaps none) compiler will tell you anything.
This really annoys me, for otherwise Lua seem to be very nice script language. Simply imagining having such typos in the depths of a large scale project makes me anticipate days of debugging in search for an elusive bug :-\.
There are ways to negate those problems to some degree.
But name a scripting language for which that is not the case?
Javascript, angelscript, Lua, Python, php are all like that. Strong typing and variable declaration are just not necessary for projects with small teams (often just 1 programmer).
Quote from: Secret Fawful on Thu 13/06/2013 10:23:44
Did you ask him? No? Oh. Didn't care about the expertise about someone who has been programming for decades? Okay.
Appeal to Authority is the proper name for the fallacy you just used. (Fallacy means you're talking bollocks)
No, what I said is completely valid. I want to know why Gilbert hates Lua. His word may not be gospel, but I still want to KNOW. Maybe you should consider listening to another opinion without being a dismissive tit. Example: "Oh, he may have said that, but he's a stupid OLD MAN. Who cares what he thinks. I'll never ask him. Because he's a shitstain who should go KILL HIMSELF NOW."
Lua, at most, shouldn't be a replacement anyway, but an alternative.
Wow, you are an exceptionally angry young man.
Ben304 gave you a very good set of reasons why Lua might be a decent option and your response was "Did you ask him? No? Oh. Didn't care about the expertise about someone who has been programming for decades? Okay."
I imagine Ben's internal response was something like "err.. wat?" while he backed away slowly from the crazy person.
Who cares what one guy says, no matter how much experience he has? That is, by definition, an appeal to authority.
Bottom line: You are crazy.
Yeah, I read what he said.
QuoteI never saw Gilbert provide anything other than his say so about this.
And so I asked "Did you ask him?"
He also said
QuoteThe fact that LucasArts moved from his beloved scumm onto lua based code for grime
When GrimE never produced a game that played functionally well. Grim was a masterpiece in everything BUT engine, because the engine was terrible. Everything I have seen from games like Fate of Atlantis and Full Throttle show a hell of a lot of customizability, power, and functionality. I couldn't finish Escape From Monkey Island because I couldn't get the game to select a fucking item so I could pick it up. But yes, great games have been made in Lua. Great games have been made in SCUMM, too, and the dismissal toward SCUMM pisses me off. So yes, it makes me ANGRY. If I dismiss GrimE I guess it's just because IT'S A PIECE OF SHIT.
QuoteBottom line: You are crazy.
Bottom line, the fact you have to paint me in a negative light, and anyone else, to avoid any possible questioning of your precious Lua is not only petty and dismissive, but means you're defensive and therefore consider my points valid.
It doesn't matter if I consider Lua valid, the fact that I want to consider any other option makes me crazy. You're a fucking dick. Experience is valuable.
Calm the fuck down, the both of youse.
If some people think Ron Gilbert's criticism of Lua raises serious questions about its excellence as an adventure game scripting language, that's fine. If others don't find his say-so persuasive in itself, that's also fine.
You misrepresent me, sir.
I accept Lua's forthcomings quite happily although most responses have been more along the lines of "i don't like the syntax" which is also fine.
As to your points, as written:
QuoteAnd so I asked "Did you ask him?"
It's not really reasonable to expect Ben to ask some guy on the internet to qualify his statements on a programming language several months after the fact. But, what gilbert said was essentially "SCUMM was better than Lua" with little qualification given. Also, GrimE may have sucked but if it did it was unlikely to be the scripting language used to program the interactions and more likely to be the fact that the technology and engine were new.
I also suspect, and I'm speculating here, that Gilbert may be a little bitter about the demise of SCUMM because it was the beginning of his decline from the A List but thats unrelated to the virtues and vices of Lua.
QuoteBottom line, the fact you have to paint me in a negative light, and anyone else, to avoid any possible questioning of your precious Lua is not only petty and dismissive, but means you're defensive and therefore consider my points valid.
That's just a non-sequitur sandwich, my good friend. Indeed, I don't think you *made* any points unless one could consider "Well Ron Gilbert said he doesn't like it" a 'point'.
Also, for what it's worth, I said you were crazy because you used very agressive and violent language in what was, until then, a polite conversation, not because you said you didn't like a programming language.
QuoteYou're a fucking dick.
Nobody's perfect.
All right. Calming down. Look, no hard feelings. I just want to know about Lua from positive and negative sides. I'm sure if I spent long enough reading your analysis of Lua, which I WILL BE DOING, you would sell me on it. But I also want to know why a two-decade long programmer makes such a bold claim that it's not just a bad choice, but a bad language. It's a harsh statement.
And for the record, I AM CRAZY. I also have very strong feelings about the entire adventure game world, and many very, very angry feelings.
From what I can tell this is all he wrote on the matter:
Quote
I would rebuild SCUMM. Not SCUMM as in the exact same language, but what SCUMM brought to those games. It was a language built around making adventure games and rapid iteration. It did things Lua could never dream of. When Lua was in High School, SCUMM beat it up for lunch money. True story. SCUMM lived and breathed adventure games. I'd build an engine and a language where funny ideas can be laughed about at lunch and be in the game that afternoon. SCUMM did that. It's something that is getting lost today.
His main problem seems to be about the speed of lua implementation compared to SCUMM which seems an unfair comparison given that SCUMM games were very small 2D affairs whereas the first Lua-based game was a very early 3D game for which decent dev tools simply didnt exist.
Well, as someone who understands Lua, how IS the speed of Lua implementation? Could SCUMM be really fast simply because it's a custom language?
Compared to AGSScript, it's definitely faster to make stuff using Lua. I somewhat make this case in the devlog but basically Lua removes all the leg work from AGS (once you have your basic system). Lua allows you to very quickly hash out systems because you dont have to worry about declaring structs or worry about AGS's lack of forward declarations or lack of pointers to custom data structures or any other inconveniences.
I am not guessing when I say this, either. I have built things in Lua, using AGS, in half a day that would've taken 5 times as long in raw AGS. AGS is very poor at allowing generalised systems because you can't pass data structures or call functions from a reference. See Snarky's post on the trouble he had making an RPG engine in AGSScript for exactly these reasons. I made one using Lua in a few days and encountered no such resistance.
As I have said many times before, I do not champion Lua *in general* because I don't like its class system (or lack thereof). I merely think its better, faster to implement, faster to execute and less inconvenient that AGS Script as it currently is and I believe that to be demonstrable.
I never claimed Ron Gilbert didn't have any idea what he was talking about. I respect him for his legacy, am inspired by his innovations and still play games made in SCUMM regularly. I just don't think he provided any valid reasoning that LUA sucks, that's all.
...also I didn't think Deathspank was very good. Sorry if this gets people angry! :cheesy:
Fawful told me he did this, and honestly I feel responsible for it.
Just because Lua can be shown to do things that AGScript can't (currently) do, I don't think it outweighs the validity of AGScript. Abandoning AGScript altogether in favor of an (or any) existing full-featured language not only disenfranchises every existing project, but it essentially goes to state that CJ made the wrong decision in creating AGScript in the first place because he didn't know what he was doing. It would have been significantly easier to bundle/embed a compiler for an existing language than to create a new one. CJ was not ignorant of this fact, but he still chose to create and maintain AGScript.
I do not contest the validity of statements of the nature that "it's easier to implement in [language] than AGScript", but I do oppose anyone proposing the abandonment of AGScript.
This is my opinion though, and it's okay if others don't agree.
But Ryan Timothy can take ahold of his precious Java and take a running leap.
You're not responsible for anything except iceygames having a series. You can't take credit for MY NUMEROUS successes, you TWAT. I'll hunt you down and cook up a Monkey-on-a-Stick.
True, I am solely responsible for the creation of the Oceanspirit Denniverse (and all of the games which take place in it). But as for cooking me dinner, we should take this homoerotic banter somewhere less appropriate.
Le Sigh..
We have been through this a couple of times but I will respond again since you are implying that I am saying things that I am not.
Quote
Just because Lua can be shown to do things that AGScript can't (currently) do, I don't think it outweighs the validity of AGScript. Abandoning AGScript altogether in favor of an (or any) existing full-featured language not only disenfranchises every existing project, but it essentially goes to state that CJ made the wrong decision in creating AGScript in the first place because he didn't know what he was doing.
A couple of things here:
Firstly, and this may be highly controversial, CJ is not God. He *has* made mistakes in creating AGScript (imho) and I *do* think that maintaining an incomplete, unoptimized language when better alternatives, with larger user bases and better support upstream, are available *is* the wrong thing to do.
However, I am not suggesting that CJ didn't know what he was doing. AGS is a very complicated piece of software and the editor is especially well designed.
I am only speculating but i reckon that CJ might actually agree with me on this fact since, as far as I can tell, there is no good reason to design a C-like language with no novel features when others exist. My guess is that CJ simply
wanted the challenge of making a language and compiler from scratch which he did rather well considering his limited time/resources. AGScript is a triumph for a one man team. He also may have been a little reticent to use an interpreted language when processor power was so limited in those days. Also, I would guess that the number of off-the-peg languages available in 1997 was pretty limited so that was probably a defining factor.
To close, and for the billionth time, I would note that I never suggested *everyone* should abandon AGScript. AGScript is very good for a classic SCUMM-like adventure game because it has all those features built in and one can make an adventure game with it in quite literally a few minutes. All I was suggesting that those with a background in programming or those who wish to learn programming or those who wish to do something a bit different with their game should seriously consider Lua.
Can we stop with the "wahh, Calin says CJ was stupid" horseshit now? It is becoming tiresome.
Quote from: monkey_05_06 on Tue 18/06/2013 01:29:09
But Ryan Timothy can take ahold of his precious Java and take a running leap.
I saw this coming before I even finished reading your post. I'll say this again: I wholeheartedly prefer C# over Java. I had only suggested Java in the first place because of C# requiring .NET (and it being Microsoft - whom you hate). That and how Java is universally accepted on all OS.
Quote from: Calin Leafshade on Tue 18/06/2013 02:33:17
My guess is that CJ simply wanted the challenge of making a language and compiler from scratch
That's exactly what I was going to say after reading Monkey's post. The challenge alone, if I were as capable as CJ, would've steered me towards making my own scripting language as well.
I've actually been looking into MonoDevelop and SharpDevelop lately and they seem to be likely candidates if one were to do a redo of AGS. *blasphemy* (and no, I have no problems saying AGS script is shit to deal with)
And let's continue this conversation elsewhere.
I completely agree that AGS script is shit to deal with....IF you're not Monkey, who could probably run his refrigerator with AGS script. Or I suck balls at AGS script. Don't worry. I'm sure you guys will get better at it.
Fawful, if you think AGScript is so bad, you'd crap your balls if you ever tried using a "real" language. One of the key advantages of AGScript is its low learning curve. You have to try pretty freaking hard to actually break AGScript. The same isn't true of "real" languages. And what else would I possibly use to run my refrigerator, DOSBox?
@Calin: lolno. I still don't agree with you. And you have advocated for the abandonment of AGScript. And CJ is the god of onion rings. Checkmate.
Oh, I never said I'd be good with another language. I'd be the shittiest ever. AGS is my only hope. I happen to believe ALL languages are shit to deal with, because coding is shit to deal with. NOT sitting on my couch, fat, hairy, and greasy- covered in chips and shame- that's shitty to deal with because it means I have to put out effort, and effort is haaaaaard. That's not a crack at you, btw. I still love to use code, though.
Quote from: Secret Fawful on Tue 18/06/2013 07:15:58
I completely agree that AGS script is shit to deal with....
AGS script is lovely to deal with. It's flexible, powerful, intuitive, and extremely practical.
Point is, I'd hate to use it to make anything other than a fairly standard point and click game.
Funny (or sad) thing about this argue about AGSScript is that unless someone will be inclined to actually work on improving it, all this is senseless blabbering (sorry for being rough).
And, keeping in mind the fact that the AGS code is open, anyone inclined may work on improving AGSScript on his/her own.
And, if the AGS will provide means to attach different script compilers/interpreters to the engine (this was discussed few times before), the user will be able to choose whatever language he likes / whatever is more fit for his skill/game.
That said, I keep wondering if monkey_05_06 tries to persuade someone to work on AGSScript, or not to cut it from the AGS (which, I think, won't happen for a long while regardless of other things). :)