Future AGS development

Started by Pumaman, Sun 17/10/2010 19:17:16

Previous topic - Next topic

Pumaman

So, over the last year or so it has been becoming increasingly clear that I no longer have the time to maintain and improve AGS like I did back in the good old days.

I feel particularly guilty about the bug reports that are filed here in the Tech Forum but I no longer actually have time to go away and investigate them and fix them.

So I've been trying to work out what to do about this; and I'm still not totally sure what the right answer is.
I certainly don't want to just give up and say "AGS is cancelled", because that would be throwing away 10 years of hard work, and would betray everyone who's developing games here.
On the other hand, I can't continue to pretend that nothing has changed, because it's evident that new versions and patches just aren't being released within any sort of reasonable timescale any more.

So, what are the options?

Well, ideally I'd like to recruit an assistant, somebody to help with development of AGS. But it would probably be practically impossible to find anyone with the skills and dedication to do it (after all, it's my baby, so it would be very hard to find anyone else who would have the same level of dedication to it).

Another option is to open-source all the code, and hope that some sort of open source community takes over. But then I would completely lose control of it, and it's not certain that any open-source developers would want to continue developing it or taking it in the right direction anyway.

So considering the lack of any obvious way forward, my current thinking is this:
As a first step, open up the .NET source code of the AGS Editor.
Whilst ideally I would like to see AGS Editor enhancements done as plugins, I appreciate that the current plugin API doesn't provide all the functionality that would be needed for this. So preferably I'd like to see somebody take the editor and enhance the plugin API, so that plugins become more powerful and the need to actually modify the core editor code is reduced.
I would still have control of official AGS Editor versions and releases, but other people could go and add features and fix bugs, and then submit these code changes back to be incorporated into the core.

If this works out well, then go on and open up the majority of the AGS Engine source code. I'm still not sure what to do about the code that handles the AGS file formats, because opening that up would make decompilers very easy to write. But that's a small amount of code in the grand scheme of things, and something we can discuss later on.

So, I'm curious to hear your feedback. Would anybody actually want to make their own changes to the AGS Editor, if the code was available? Do you think this would work as a process going forward?

Sslaxx

I'm surprised decompilers do not already exist for the file formats. Nothing's going to stop a committed cracker. Consider the effort it took, for example, to reverse-engineer the Z Machine (the Zip interpreter), or Ultima VII (or any of the others - projects like Exult and Pentagram). Frankly, you're probably just lucky.

And "completely lose control" with regards to open sourcing the project? I'm not sure Larry Wall, Guido van Rossum or Linus Torvalds would agree somewhat with you. Ultimately, how much control you'd want to exercise (or lose) depends on you. Not to mention that there are more options out there than the GPL or LGPL - MIT and its relative licenses, Zlib etc. And I'd be astonished if AGS would just wither away if you were to open source it (in whole or in part) - that could be taken as being pretty insulting towards the AGS community at large.

You may want to (if you've not already) look at Inform 7's current model, which does seem to be somewhat similar to what you're proposing at the moment.
Stuart "Sslaxx" Moore.

Calin Leafshade

I think CJ it totally on the money with his vision.

There is clearly the motivation to do things with the engine but its just too difficult to work around the engines quirks trying to do something that it relatively simple.
If a hardcore group of developers were given more intimate access to the engine in order to open the plugin interface and fix common gripes then I'm pretty confident that AGS would become infinitely more powerful very very quickly.




bicilotti

Whatever you decide, thanks for the time and commitment you put in AGS.

Alan v.Drake

Well, if you opt for the open-source, once the rumor spreads I'm pretty sure there'll be enough programmers interested to keep the thing going, after all AGS is pretty estabilished by now.


- Alan

LimpingFish

The fact that AGS is the product of a single vision is probably why I'm still using it. AGS is AGS, and going open source might lead to fractured development paths and subversion builds that split focus on, rather than unifying, the core program.

I've made the argument for plugins before, so working to improve and enhance the plugin API would be aces in my opinion.

Opening the editor source to a select few (we're not short of coders here, are we?) is something I would also support.
Steam: LimpingFish
PSN: LFishRoller
XB: TheActualLimpingFish
Spotify: LimpingFish

monkey0506

CJ, honestly, it's a bit early for April Fool's, don't you think? :=

I have a limited knowledge of C# as compared to other languages (namely, AGScript :P), but I would definitely be willing to commit a(n un)reasonable amount of time to continual development of AGS.

Regarding the issue of the engine code and AGS's file formats, wouldn't it be possible to keep those code snippets in one or more separate DLLs that could have exposed methods whilst not actually exposing the contents..? Then whoever was working with the engine's source could make improvements and just link to those DLLs as necessary for any of the proprietary file functions.

I think that opening up development of AGS will likely make it easier to see it evolve as the community's needs do, and in a more timely fashion. I mean no disrespect to the hard decade of work you've given here CJ, just simply that the fact that you have a life beyond AGS (*GASP!*) has probably played a major contributing role in the rate in which user suggestions are able to be implemented.

Anyway, whatever you decide is best, rest assured CJ that I'll be right there blindly following you. :D

Edit: In response to LimpingFish's post, I think that broadening the spectrum of the Editor Plugin API is probably one of the first points that should be addressed. I myself have had several ideas for editor enhancements that simply never came about because of limitations and restrictions in the API that were..difficult at best..to work around.

Scavenger

I'm not a programmer of any relevant caliber (I only know out of date coding practices), so take everything I say with a pinch of salt.

One engine that really benefitted (and bloomed) from open sourcing the code was OHRRPGCE - lots of things that community wanted were implemented in record time and it's still growing to this day. It's still the child of James Paige, and he takes an active role in it's development, but it's still leaps and bounds above what he could do alone. Open sourcing it merely made it easier for programmers to contribute. And that community is smaller than ours. AGS is established enough and with famous games enough that there a programmers willing to make it happen. Source ports to other platforms, for compatibility, for one, would be a major, major boon. I think the advantages of open sourcing vastly outweighs the disadvantages. Decompilers are the least of our concerns, when we could get so much in return for that risk being a little higher.

Open sourcing the editor code is a good step forward. I'd love for really old AGS engine versions to be open sourced, too, so more people can play them. There are plenty of gems that falter on new machines, and anyone who wants to make an AGS game isn't likely to use the versions that only have a DOS engine. (I know, DOSBOX, but isn't that a bandaid rather than a cure?)

I too, am afraid of the fragmentation of the core, since it'll mean only certain iterations get love, but you can still retain control of the trunk, and lots of cool stuff can be merged into it. (for instance, all the bugfixes and agreed features first.)

I appreciate all the hard work you've put into this thing, and it's one of the most amazing programs I have ever used (and cannot live without!). I think with the entire community's help, we can help it evolve together.

I sure don't want it to peter out and die. I want it to grow!

Wyz

One of the reasons I like AGS so much is because its API is consistent and concise. It is flexible enough to do almost everything I want with just scripting. If I need a function that does not exist, I can add or extent existing. It also features a flexible plugin API that enables us to create whatever extension we could dream of.
A lot of editors out there are horribly bloated and/or have a chaotic naming convention in their API. Inconsistency often happens when a lot of people are working on a program and there isn't a strong figure that directs it.
This can also cause the program to become less concise when everything the user base request is bluntly added without putting it in perspective.

But this can be prevented by making an application that is like a swish army knife, it is small, strong, yet contains every tool needed, or a module based application with a small core which can be extended with just the functionality the user needs, each module with its own quirks. AGS is the swish army knife kind of type but on the other hand also supports plugins and modules.

I think separating the editor from the engine could be a good thing. It is time consuming with all the little request from the people that use it day to day, enough people around that are eager to automate a lot of things in it.
I like how I can also create editor hint when building plugins, thats really cool. But when separating the engine it might also be useful to separate editor and engine plugins.
Life is like an adventure without the pixel hunts.

monkey0506

Just some food for thought for those who are concerned that open-sourcing the editor would be a bad idea..

Java, PHP, MySQL, phpMyAdmin, Apache, Mozilla Firefox, GIMP, FreeBSD, OpenOffice, MediaWiki and more programs/software are all open-source projects. Some of these are among the most popular programs/software in their respective fields of computing.

..just sayin'. ::)

kconan

  I think its a good idea to open-source the Editor if the alternative is no more AGS updates.  Still, you should keep your hands directly in the mix somehow...perhaps at least by reviewing the user-made plugins to determine which get your stamp of approval and maybe in the process dole out some advice.

Wonkyth

As long as there is some figurehead that decides what directions should be headed for, I see open-source as no issue.
With that said, there will be trying times ahead as soon as the creator passes on a project.
"But with a ninja on your face, you live longer!"

tzachs

It's sounds to me like the reasonable tradeoff, and if you do indeed open source the editor, I probably will attempt to dedicate some time and support further development of it.

abstauber

@Monkey_05_06:
Those projects are successful because of the commercial interests behind them.

e.g. php became popular because of 100k webshops and phpnuke spinoffs. Also it was the only good & free solution and ran on Linux.
[/uncited rants]

But with game engines that's a whole different story, there are a lot out there even offering dual licensing. I'm not sure that Dave, Vince or the JBurger would hire a freelancer to add certain functionality to the engine, because Indygaming makes them rich ;)

Also I think the editor is already in great shape - if something has to be open sourced, do it with the engine. That way AGS might get interesting for these hip and cool smartphone devs and could benefit from it.

But my real favourite would be that you'll find an assistant and keep it closed sources but controllable.


Calin Leafshade

I think alot of people are assuming that 'open source' means that CJ is going to just punt it into the wilderness. It doesnt work like that.

CJ would still control the trunk but people could get hold of the source code and do one of two things:

a) make modifications and release their *own* game with that version of the engine.
In this case no one else knows or cares that the engine has been modified in some way.

or b) make modifications to the engine and *submit* the patch to CJ or whoever who then decides if it gets added to the main trunk.

The latter of these two scenarios simply means that the addition of this feature has been done by someone else and not CJ.
the programming conventions of AGS still need to be followed and if the patch doesnt conform to those conventions to his satisfaction then CJ simply doesnt accept the patch into the trunk.

GarageGothic

I commend your realistic and honest approach to this difficult situation, CJ. I realize it's a tough decision, like allowing your teen daughter to go on her first date. Despite the metaphor turning out a bit creepier than intended, I am sure that all of her suitors here on the forums will be well mannered, treat her with the utmost respect and accept that "no" means no.  ::)

Open source seems like the popular choice these days, and I've yet to see it fail in any epic fashion. Some open source projects do branch out, but mainly for the sake of diversity and portability, rarely in a way that creates feature redundancy or confusion in the user base. Though I would strongly suggest some sort of official or semi-official working group to help coordinate efforts and avoid contributors creating unnecessary compatibility issues.
It *will* take a lot of discussion and we're never going to end up agreeing entirely on how stuff should be implemented (not even discussing the priorities of implementation - I'm assuming here that engine features will be added first and foremost because the people doing it finds them useful themselves). But it would be nice to avoid any reinventing-the-wheel issues or second-guessing what others may have in the works.

Personally I don't have any reason to change the editor, so I'm crossing my fingers this first experimental release turns out well, so we can start extending the engine itself. I'll be honing my C# skills in the meantime ;)

All in all, great idea CJ, and the only viable future for our beloved engine.

Wonkyth

If it came to it, I'd love to code additions to the plugin API, engine and anything else required to improve and update AGS as part of a group, just as long as I was only codemonkeying, so as to not use up my creative juices.  :P
While I could probably only just manage it skills-wise at the moment, if my exponential increase in programming skills over the past few months means anything, I'm sure I'd have the skills to be of use within no time.
"But with a ninja on your face, you live longer!"

Dualnames

I'd like to thank CJ for all the work he has put in AGS himself, I think this is a nice direction forward in my honest opinion. I find that CJ will be there, but just as a director and not much of an actor (except like a guest star at points) a really good path. Mostly because lately there are rumors of him acquiring a REAL LIFE (GASP!).

I don't think AGS should go fully OS, and this is really the best decision here. All I have to ask is for people that create cool thanks, be legit enough to share with the rest of us, cause that's what CJ has been doing.  ;)

Thanks AGAIN CJ (I know you're not leaving geez) for the great and inexplicably awesome amount of work put in AGS.

Thank you.
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

GarageGothic

You know the best part of all this? Now CJ will finally get time to finish the original DemoQuest!

Calin Leafshade

I heard someone dies at the end...


or someone gets an inventory item to take home with them.

SMF spam blocked by CleanTalk