AGS 2.8 alpha 8 preview

Started by Pumaman, Mon 15/01/2007 23:24:45

Previous topic - Next topic

Pumaman

QuoteEverything seems to work fine... except that when I quit the game, I got this:

Hmm, so this error happened when you returned to the editor after running the game? Strange, I haven't been able to reproduce it.
The red-cross-over-white-background will happen as a result of the first error -- basically, that GUI control crashes and then no longer draws itself.

QuoteI was wondering if there is a specification of the data files AGS uses (ie .dta).

No, this has been discussed before and there is deliberately no specification because that would make it too easy for people to write game de-compilers to steal other people's artwork and other resources.

nahuel

Quote from: Pumaman on Mon 19/03/2007 21:42:09
No, this has been discussed before and there is deliberately no specification because that would make it too easy for people to write game de-compilers to steal other people's artwork and other resources.

Oh ok. I see your point. Although you could still steal other people's artwork by taking screenshots; a bit tricky but well it is feasable I imagine. So, is there any way do you think to port the editor? how did people port the engine without any specification?

regards, Nahuel

subspark

Protecting peoples artwork through withholding potentially important information is futile. It is ultimately and soley up to the developers who take themselves seriously to copyright and legaly protect their assets.

This can be done by a simple statement on the bottom of their website. For example "All artwork, music and sound is copyright 2007 BlaBlah games."

Thanks to the digital rights act, game developers amongst many other internet users have had their work protected since the late 90s.

Unless your game includes some secret recipe of code that you dont wish to share, then decompilers are a developers best friend. I don't need to remind anybody that example code is the fastest route to learning how to write it yourself.

Can we leave the responsibility to the developers, please? Or at least induce an optional lock on game content before compile.

Make sense?

Cheers,
Paul W.

SSH

#83
But it is enough to stop the casual thief, and no-one has written an AGS decompiler, so :P

There are hundreds of examples of example AGS code: check out the Wiki page on open source games, plus loads of code snippets here. AGS does not have a problem with support or learning curve.

Copyright has protected authors for hundreds of years but the problem with all of these "protections" is that you need to pay a lawyer to enforce them. CJ and most other developers here can't afford it and wouldn't want the bother even if they did, so security through obscurity does work here.


Also, I have tried the latest alpha and it managed to compile the walkcycle generator which has oodles of modules and exercises lots of AGS, so it seems OK. One thing, though, the import process seemed to delete the "  " (two spaces) text I had set on some of my GUI buttons. Those spaces were there deliberately and AGS seemed to change the text to blank: I had to change them back.


On an entirely unrelated note, now I am an ISEB certified tester, I can say that this is NOT an alpha release but a beta, because alphas are releases that are tested at the "vendor's" site and CJ certainly didn't invite ME round to his pad ;)
12

Pumaman

QuoteSo, is there any way do you think to port the editor? how did people port the engine without any specification?

The people who ported the engine are working under a non-disclosure agreement. As for porting the editor, it hasn't been done for two reasons:
(a) It uses a lot more Windows-specific code than the engine, so would require a significant amount of time to port
(b) Starting from scratch making a port of the editor would be such a massive undertaking that nobody is likely to want to attempt it

QuoteThanks to the digital rights act, game developers amongst many other internet users have had their work protected since the late 90s.

Unless your game includes some secret recipe of code that you dont wish to share, then decompilers are a developers best friend. I don't need to remind anybody that example code is the fastest route to learning how to write it yourself.

Can we please not have this discussion again -- we've been through it all before. Yes, people's work is protected by copyright law. And yes, a determined hacker could figure out the file formats and write a decompiler if they really wanted to.

But so far, that hasn't happened; and after surveying people here using AGS, the consensus was that leaving file formats undocumented was the best approach.

With the new 2.8 editor however, its Game.agf is a standard XML file, the format of which should be self-explanitory. Hence, in theory it would be possible to create another application to edit or create this file, and then just use the 2.8 editor to compile it into an EXE.

QuoteOne thing, though, the import process seemed to delete the "Ã,  " (two spaces) text I had set on some of my GUI buttons. Those spaces were there deliberately and AGS seemed to change the text to blank: I had to change them back.

Hmm, interesting point ... this seems to be due to the use of XML to save the game data, whitespace is stripped. I'll have to look into it.

QuoteOn an entirely unrelated note, now I am an ISEB certified tester, I can say that this is NOT an alpha release but a beta

Congratulations  ;D

nahuel

Quote
With the new 2.8 editor however, its Game.agf is a standard XML file, the format of which should be self-explanitory. Hence, in theory it would be possible to create another application to edit or create this file, and then just use the 2.8 editor to compile it into an EXE.

That's an excellent idea! Yes, creating a mac editor from scratch would take ages of course. But, slowly it could be built up, especially if the file format is an xml file. I completely agree with you that the win AGS could be used to compile the source then. It is (at least for me :P) a great news.
I wish now only that the mac engine would be more developed... but well, patience is a virtue


covox

Quote from: Layabout on Thu 08/03/2007 13:01:29
*edit again* And it doesn't run. It has something to do with winform, which mono hasn't fully got working. But that said, I guess when it is more developed, it just may well be able to run the AGS editor. Which would make the linux folk happy. Hopefully by the time 2.8 is official, mono might be more capable of handling the winforms stuff.

Yep, as of right now Mono's implementation of System.Windows.Forms has a few missing bits and bobs (for me it tripped up on Application::SetUnhandledExceptionMode), but thankfully the Mono team are hard at work vigorously filling in the gaps.

Also remember that if Mono ever runs it, the floodgates will be opened for both Linux and Mac punters  ;)

monkey0506

[off-topic]What truly makes this interesting SSH is that this isn't an Alpha version at all. It's a preview for the Alpha version. :=[/off-topic]

Pumaman

Ok, alpha 5 is now up. This now fully implements room interactions and saving rooms, and also allows you to create, delete and re-order script modules.

Please let me know if you have any issues. In theory now the only things missing are the various import and export options, and the Game Menu options like translations and templates.

I'd also welcome some feedback in two particular areas:
1) Is the Text Dump feature still needed now that the scripts are stored in disk files? The original purpose of it was to allow you to easily search all the scripts, but you can now just do that with "Find in Files" in any decent text editor
2) Room Messages and Global Messages. Currently the 2.8 editor imports these but there is no way to access them. Are they useful? Is it worth re-implementing them, or does everyone just use Display() command instead these days?

monkey0506

Regarding #1 I haven't used it personally, but seeing as it's all stored in disk files now I would imagine it's okay to take it out. Though as I haven't had the need to use it I might not be the best source on this.

As for #2 I've always used Display/Character.Say, I've never used the Room/Global messages. I can see how it could be useful to have this option available in the editor (specifically with regard to new users), but it's something that's relatively simple to emulate via the script.

AGA

I used to use text dumps, but since they've been superseded, you'd may as well take them out.

I've never used room or global messages.

smiley

#91
When I try to type one of our special letters (äöüàŸ) and autocompletion should be triggered, I get this error:

Code: ags

---------------------------
Adventure Game Studio
---------------------------
An unexpected error occurred. Please note down the following information and contact CJ.

System.ArgumentOutOfRangeException: startIndex darf nicht länger als die Länge der Zeichenfolge sein.
[startIndex may not be longer than the length of the string]

Parametername: startIndex

   bei System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
   bei AGS.Editor.ScintillaWrapper.GetPreviousPathedExpression(Int32 startAtPos)
   bei AGS.Editor.ScintillaWrapper.ShowAutoCompleteIfAppropriate(Int32 minimumLength)
   bei AGS.Editor.ScintillaWrapper.OnUpdateUI(Object sender, EventArgs e)
   bei Scintilla.ScintillaControl.DispatchScintillaEvent(SCNotification notification)
   bei Scintilla.ScintillaControl.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
---------------------------
OK   
---------------------------


Additionally these letters are disappeared, when I reload the script.



Rui 'Trovatore' Pires

#92
In my current project, translation is impossible via AGS' automatic system, so I'm relying on a global Text Dump for editing and then a global Text Import. Since there's over a hundred rooms, keeping it in a single file would be greeeeat. So I'd like text dump to still be around.

I don't use global messages, but at times room messages can be handy, especially for those templates (such as my IF template which never saw the light of day but which I still use for myself) that... well, that use them. It's great to be able to have in each room a property which links to a message number to display in *whatever situation* - in my IF template, it was great for easily doing room descriptions. Even allowed for some really complex formations.

So I don't know about global messages, but I'd welcome keeping room messages.

EDIT - It all looks and feels wondrous. I find it amazing that we can now even edit scripts of a room that isn't loaded! My pre-2.8 mind boggles!

Hmmm, am I the only one who thinks the Hotspot-drawing-area has somehow gotten a bit smaller and it's trickier to draw the hotspots you really want to draw?
Reach for the moon. Even if you miss, you'll land among the stars.

Kneel. Now.

Never throw chicken at a Leprechaun.

GarageGothic

Perhaps the text dumping function could be changed to be more similar to "make translation source" except with the option to re-import text?

My own game doesn't use a single global/room message or dialog option/script, so the only current option for proofreading is to dump the entire game code - which is a mess to look at. It doesn't seem to make any sense when the translation source generator is perfectly capable of exporting strings only. Right now, for somebody who wants to have an easy-to-read document for their proofreaders, the only option is to create a translation source and the implement the changes manually.

SupSuper

#94
DEAR SIR, I WANT TO HAVE YOUR BABIES!

Let's ignore how impossible that is, but I must say that I just LOVE the new editor. Being a coder myself, it just makes the geek inside me squeal with joy with the much more familiar and user-friendly design. I tip off my unexistant hat to you, for you have done an excellent job!

Now, it's time for the feature request/bug report/pickyness. Don't take any of this extremely seriously or let it annoy you, it's just easier to dump all my thoughts at once then filter them from anything you don't care about, so just ignore those. Don't take this as me wanting to bash on your parade or that I just wanna pick your program apart. Completely wrong! I just like to mention everything nobody else has because all the little things count towards a program and might turn into a big thing if left unnoticed. I'm just trying to help. :)

The New UI:
- The UI as a whole should be more customizable. This is, users should be able to move the panel and toolbar around to wherever they please. This should take care of people annoyed by the fact that things aren't in the same place as in AGS 2.7, and shouldn't be much effort if you're using the .NET UI elements. As an example, see Visual Studio. ;)

- Tabs are a good change, but there's always those times when you want more than one open at once, like regular windows. Users should be able to place tabs in windows so they can easily move and place them around as necessary. Again, as an example of this, there's Visual Studio's Windows menu. (while I'm at it, a Windows menu is a much nicer place for the tabs list than that arrow button. The menu is pretty bare anyways)

- Instead of only having recent games in 2.72 welcome panel, it'd be more standard to add them to the File menu as well.

- The new dialog panel with both script and options in one window is lovely. A Delete button for the options wouldn't go amiss though.

- When you change the width of the right-side panel, you can't see the "width line" if you have no tabs open, because of the background color of the window. I suppose this might be Windows-style-based, just being picky.

- Room descriptions don't show up on the respective tab title, unlike all the other windows.

- As other people have pointed out, GUI controls have all the corners visible when selected, yet only the bottom-right corner resizes items. This is a bit pointless since you can already drag around controls by clicking anywhere else on them.

- Any chance you could replace the Script Editor's Find panel with a .NET Find & Replace? Yes, yes, I'm too lazy to use an external editor. :-[

- The New GUI Slider icon looks more like a progress bar to me.

- Any chance that you could edit item properties through the Properties Editor just by selecting them in the tree? (in other words, selecting an item in the tree would bring up its properties in the Properties Editor, for when you just wanna do some quick editing and not have to open another window. Activating a tab again would fill the Properties Editor back with that tab's properties)

- The new "output window" would be a lot more used if the compiler didn't bring up one error at a time, and instead listed all the errors at once. ;)

- How about being able to rename any item from the tree view? (currently you only can with Views)

- Both tabs of the Colours window could probably be merged into one, what with their small size and all.

Stuff missing:
- There's no options for opening/saving/saving as individual GUIs, scripts, rooms. (when I say "opening" and "saving as", I mean from/to external files. This was sometimes known as import/export in AGS 2.72. And since the scripts are now stored in their own files, it only seems sensible to quickly nab them from example games and such. Heck, modules would become just plain old script files)

- No option to preview sprites (in their actual-size glory) by double-clicking on them. If you don't like the extra window, you could probably fit a "preview panel" somewhere in the Sprite Manager like there is for Characters.

Bugs:
- Users of the interaction editor will have a lot of fixing to do since any interactions that used old-style-scripting (eg. RunDialog()) will now bring up compiler errors. Though I suppose they could just disable "Enforce object-based-scripting".

- Trying to make the AGS Editor directly open any file (eg. in Windows, dragging a file onto the AGS Editor EXE) will bring up this error:
Quote---------------------------
Adventure Game Studio
---------------------------
An unexpected error occurred. Please note down the following information and contact CJ.



AGS.Types.InvalidDataException: Native initialization failed.

   em AGS.Native.NativeMethods.Initialize()

   em AGS.Editor.AGSEditor.DoEditorInitialization()

   em AGS.Editor.AGSEditor.startupTimer_Tick(Object sender, EventArgs e)

   em System.Windows.Forms.Timer.OnTick(EventArgs e)

   em System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)

   em System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
---------------------------
OK   
---------------------------
After which the loading halts and you have to kill AGS Editor manually to get it to close.
I bet you probably didn't see this coming :p but I wanted to see if the AGS Editor could "directly open" game files (without going through File > Open). It'd be a nice feature. And in AGS 2.72, nothing happens if I did this.

- After importing my old game, fixing errors and getting it to build an EXE successfully, I try to run it. And get this error:
Quote---------------------------
Adventure Game Studio
---------------------------
An error has occurred. Please contact the game author for support, as this
is likely to be a scripting error and not a bug in AGS.
(ACI version 2.80.923)


Error: invalid interaction variable specified

---------------------------
OK   
---------------------------
I have no idea if this is a problem with AGS or my game, since I have no idea what it means or how to fix it. It comes up right after the screen switches resolution.

Interaction Editor:
- Regarding the old outdated Interaction Editor, I understand not many people use it and it's pretty unfriendly right now. However, there's always people who just can't get into scripting. So I'd suggest something like Flash's "Script Assist" for scripting. It provides both a simpler alternative to scripting and allows people to learn how scripting works as they use it. Thinking about it, it's much like the current Interaction Editor should be. I'll explain:
(click it for biggening)
This is the Flash's "Script Assist" feature. It's built into the regular script editor, so a simple press of a button enables/disables it.
The left panel has a complete reference of all functions, keywords, objects, operators and anything else used in scripting, all split into categories. A nicer version of the AGS Editor's Interaction Editor's huge-combo-box-of-functions. Double-clicking on any element here adds it onto the selected line.
The bottom-right panel is the script editor. It's like always except it selects one line at a time, instead of individual text. No direct editing can be done through it.
The top-right panel brings up info on the selection. This being:
- Top: Description of whatever function/condition/evaluation/whatever is currently being used in that line.
- Middle: A toolbar that allows people to quickly add/remove/move around the selected line. The "Target" button allows people to directly point at something in Flash's library (
- Bottom: All the function/condition/evaluation/whatever parameters, split into descriptive fields that allow for an easy editing of the script below, which is automatically updated and formatted whenever any data is entered. Things like a list of objects (eg. characters in AGS) use comboboxes, raw values use an edit field, etc. Again, not very different from the current Interaction Editor's "function editing" window.
This little panel also helps people get into scripting since they automatically visualize what they're doing, and therefore associate and start learning how to script on their own. After all, the Script Assist is great for simple things but easily gets outdone with complicated things. It also works with user-written code, though it's a lot less helpful, specially since it operates on a line-by-line basis, so that's up to CJ to work out if he does write his own Script Assist to replace the Interaction Editor.

Just my two cents. :)

As for the last questions: I've never used any global/room messages, I prefer to just write messages directly into the script. Plus there's already global strings.
I've also never used text dump, though as many people pointed out, an all-in-one-file-exporter/importer could be handy.
Programmer looking for work

Traveler

I'm not sure if this is already known or not, but I got this exception when trying to add a GUI button:

Quote
---------------------------
Adventure Game Studio
---------------------------
An unexpected error occurred. Please note down the following information and contact CJ.

System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at drawGUIAt(Int32 , Int32 , Int32 , Int32 , Int32 , Int32 , Int32 , Int32 )
   at drawGUI(Int32 hdc, Int32 x, Int32 y, GUI guiObj, Int32 scaleFactor, Int32 selectedControl)
   at AGS.Native.NativeMethods.DrawGUI(Int32 hDC, Int32 x, Int32 y, GUI gui, Int32 scaleFactor, Int32 selectedControl)
   at AGS.Editor.GUIEditor.bgPanel_Paint(Object sender, PaintEventArgs e)
   at System.Windows.Forms.Control.OnPaint(PaintEventArgs e)
   at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs)
   at System.Windows.Forms.Control.WmPaint(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
---------------------------
OK   
---------------------------

This is what I did:

  • Run the editor
  • Right-click the GUIs node in the tree pane to the right and selected New GUI
  • Clicked the "Add GUI button" button on the toolbar
  • Dragged the button rectangle onto the GUI. The exception came when I released the mouse button. At this point the editor is still running but the control editor pane shows only a white background and a red X.

SupSuper

#96
(Edit by strazer: No need to quote the whole post directly above yours!)

You should not use the editor blank, you should use it on an existing game.
The error comes from the fact that the game has no fonts to draw the button with.

CJ should probably put this in the first post since people keep running into this error.
Programmer looking for work

Rui 'Trovatore' Pires

BTW, I just wanted to clarify why I need to use a Text DUmp for trabslation (in a new reply because if I edit the old one it'll probably not be seen now) - I had to make a custom function that gets the inputted string, puts it on a GUI label, and if necessary splits it into 2+ lines. This splitting involves counting characters on the string, and a couple of other things. When I tried to do an automatic translation, it was a no-go. So I need to text-dump it ALL, add a gazillion "if trabslations is X then Write("X"); else Write("Y")" functions and re-import. Better to text dump it all than to do it manually.
Reach for the moon. Even if you miss, you'll land among the stars.

Kneel. Now.

Never throw chicken at a Leprechaun.

GarageGothic

Quote from: Rui "Trovatore" Pires on Mon 26/03/2007 10:47:49I had to make a custom function that gets the inputted string, puts it on a GUI label, and if necessary splits it into 2+ lines.

I have the exact same problem in my game - and in the end gave up on the idea of ever having it translated. I wonder how much it would take to rework the engine so that translated Strings are implemented the moment they are parsed rather than when they are displayed (at least that is how I understood the internal workings, but maybe I'm wrong?). This would allow for linebreaking code working also on translations, since the lettercount would refer to the translation rather than the original string.

Ghost

Loading a scrolling room (in this specific case a room of 570 x 240 for a 320x240 game, but it happens in all scrolling rooms) gives me a vertical scroll bar but not a horizontal one- I can only access the left side of this room!


SMF spam blocked by CleanTalk