Show Posts

You can view here all posts made by this member. Note that you can only see posts made in areas to which you currently have access.

Messages - Crimson Wizard

Pages: [1] 2 3 ... 432
Multiple cameras could be used for minimaps. Other than this I don't see much use for multiple cameras.

Basically any case of looking into something while still seeing your current position: zooming into an item/object or peeing into a keyhole, simulating an event in "another room" without actually changing rooms - all this could be simulated by displaying a separate and otherwise unaccessible part of the room in a second viewport. Showing two or more locations at once during cutscene. Split-screen multiplayer. These are cases I may think of.

It may be non optimal for a minimap though, since engine will have to process every sprite it sees, including its tints, lighting, scaling, walkbehinds etc.

I am adding below an error that occurs when I leave this AGS and an error that occurs when I open this AGS after closing it.

This might be a previously reported error that happens when you close the 3.5.0 Editor. But this time there is some interesting information about SpriteCache destructor.

Could someone direct me to discussions regarding the new pathfinder? Who has tried it? Has anyone witnessed enhancements? If so, in which specific cases? I know I have small pathfinding issues in some specific rooms of my game and I'm curious if I might fall in the scenarios where there is improvement, or what I should change in my end to fix the issues.

Here's a discussion, which includes test results:, and specifically here I did several tests with unusual walkable areas.

Note that I've found a serious bug recently:

The editor now cannot be run without the latest .NET patch, and we have lost support for an entire OS to have this privilege. Unless these parts are rewritten for future ports, it means these ports would have to be compatible with .NET, having to use something like mono. Is this new direction in the roadmap for the future of AGS?

Are you speaking of editor ports (do they exist or are planned?). (Engine nor engine ports never required .NET, and still do not.)
I don't think there is anything new in this direction, developers were continiously talking about porting Editor to Mono years before, so I guess this is where we were aiming at, although the progress was slow.
But neither game source format nor compiled game data have links to .NET, so in theory it's possible to write a program without .NET that would work with exactly same game sources and compile exactly same games.

As you know there is monoAGS (AGS.NET) which is completely reliant on Microsoft frameworks. Is this the future of AGS too?

Hmm, I do not know how to answer this question, not sure what do you imply with it. MonoAGS is completely different program with no relevance to original AGS except for some gameplay concepts. I guess it will develop on its own in the way tzachs wants. Whether it will succeed old AGS and fully replace it depends mostly on what this community will want.

This is the first WIP version of a custom room viewport, built on top of AGS 3.5.0 (alpha 6):
The feature is discussed here on github:
Source branch:

 * does not work with Software driver yet, but it's in plans.
 * when camera is larger than the room, it is not positioned correctly on screen.

In short, this feature lets you to change the way ROOM (and all inside it) is shown on game screen. This is done by setting up Room Viewport and Camera.
Camera is an "eye" inside the room, that has certain size and position in room coordinates. The existing "viewport" commands in current AGS serve for the same purpose.
Viewport is a surface on game screen where what camera "sees" gets drawn to. It also has a size and position, but in screen coordinates.
You may imagine a piece of room (the size of camera) is cut out and pasted in the viewport, resized if necessary.

If the Camera is smaller than the viewport, then the room will appear scaled up on screen. If the Camera is larger than the viewport, the room will appear scaled down.

Note, that with the smaller Camera size you may get a scrolling room even with rooms that are equal to game's size.

The feature is controlled by two temporary script commands (these will be changed to something better later):
Code: Adventure Game Studio
  1. // Defines where the room view is located on screen (in game screen's coordinates)
  2. void SetRoomViewport(int scrx, int scry, int width, int height);
  3. // Defines the size of the room camera (in room's coordinates)
  4. void SetRoomCamera(int width, int height);

The manual camera position is still controlled using SetViewport(x,y) function, although it is not viewport but camera room coordinates what it sets.

For example, following code will put x2 downscaled room in the center of the screen:
Code: Adventure Game Studio
  1. function game_start()
  2. {
  3.     int viewwidth = System.ViewportWidth / 2;
  4.     int viewheight = System.ViewportHeight / 2;
  5.     SetRoomViewport(viewwidth / 2, viewheight / 2, viewwidth, viewheight);
  6. }

Another example, in 320x200 game this will put 160x100 room view at the top-left corner and zoom in twice:
Code: Adventure Game Studio
  1. function game_start()
  2. {
  3.     SetRoomViewport(10, 10, 160, 100);
  4.     SetRoomCamera(80, 50);
  5. }

The purpose of these features are:
1) Display room in a custom rectangle on screen;
2) Add zoom in/out effects in your game.
3) Potentially - also add rotation to the room view (if I am able to make it work correctly).

This also have a potential to have multiple room cameras in the future, although that may not be easy to add so I don't really plan to do that for AGS 3.5.0. The problem here is not so much in drawing them on screen, but rather in resolving interactions. Right now all the logic in AGS is based on the single viewport into the room: clicks, finding objects on screen, etc. Multiple viewports would demand a good thought and possibly script redesign.
Add spoiler tag for Hidden:
But like I said, drawing them alone is not a problem:

If you wanted to make a to-do list for release, it would be useful, to check for any overlap.

Right, we may use the "Milestone" tag in github issues, I've just created the "3.5.0" milestone that may be assigned to tickets.

By the way, is it good that Character's speech color property does not work for Sierra with background speech style? I guess, originally separate features were emulating separate game styles, but now whole builtin speech system works so inconsistently. Perhaps it may be worth to fix the design a bit, for instance add a choice between using GUI's own text color and automatically acquiring Character's speech color, regardless of the chosen speech style.

But I couldn't find how to modify the TextColor propertie that is used when rendering the text from GUI... Which mean the awful hack I could manage is either -> have multiple GUIs, and use if/switch to change between. Or reimplement all sierra text rendering in AGS script. Is there something I am missing here?

I've just added this property to AGS 3.5.0.

Don't remember if there was any trick to change the TextWindow's text color without scripting your own speech (using normal GUI + Label).

AGS 3.5.0 - Alpha 6

This is a big update to GUI properties, both in the editor and script.

WARNING: makes changes to the game source format, please make a backup of your important game project before using this update!

Zip archive:

Has all content from AGS (Patch 4).

Common features
 - Removed length limit on the Button and TextBox text.

 - Split GUI's Visibility property into PopupStyle and Visible properties.
   NOTE: so instead of selecting "Normal GUI, initially on" and "initally off" you now choose "Normal GUI" then set Visible to whatever you need.
 - Added Clickable, Enabled and Visible properties to GUI Controls.
 - Fixed writing room with multiple backgrounds (regression).

Script API
 - Replaced Alignment enum with a new one which has eight values from TopLeft to BottomRight.
 - Renamed old Alignment enum to HorizontalAlignment, intended for parameters that are only allowed to be Left, Center or Right.
   NOTE: Alignment and HorizontalAlignment values are fully compatible, in the sense that you may use either. HorizontalAlignment is made mostly in sake of convenient autocomplete and backwards compatibility.
 - Added new script class TextWindowGUI, which extends GUI class and is meant to access text-window specific properties: TextColor and TextPadding.
   NOTE: you get TextWindowGUI* pointer using GUI.AsTextWindow property (this works similar to GUIControl.AsButton etc).
 - Added new properties to GUI class: AsTextWindow (readonly), BackgroundColor, BorderColor, PopupStyle (readonly), PopupYPos.
 - Added Button.TextAlignment and Label.TextAlignment.
 - Added missing properties for ListBox: SelectedBackColor, SelectedTextColor, TextAlignment, TextColor.
 - Replaced ListBox.HideBorder and HideArrows with ShowBorder and ShowArrows.
 - Added TextBox.ShowBorder.

 - Removed restriction preventing GUIs to be larger than the game's screen.
 - Replaced number of fatal errors reported for incorrectly called script functions with a warning to the warnings.log instead. This is done either when arguments may be fixed automatically, or script command simply cannot be executed under current circumstances.

 - Fixes Linux game launch script (fixes issues with client).

KNOWN ISSUES: Editor crashes on exit. This may be same bug eri0o reported a short while ago. The crash takes place only after game is saved and window closing and seem to not make it loose any changes.
Unfortunately, I forgot to investigate this issue, will try to do soon.

Is there an installer for 3.5.0 and is it stable enough to begin using for development, I'm approaching the limits of 3.4.1 2GB cap and I've been looking forward to moving over to this to continue development?

I haven't made an installer yet, there's only zip archive (linked in the first post), which contents should be enough to run the editor and build Windows version of the game. I may add Linux component and/or Android APK for download if there's demand.

Frankly I do not know how stable it is. I do not make any games with it myself, and have spare time to only test newest added functions, so at most times rely on people's feedback to know if there are any problems. Earlier there were some serious bugs when the room editor got updated, which I fixed, but I haven't heard anything specific from users in the last couple of months.

Most important thing is that this version is still in active development. IDK about other contributors, but I personally have at least two big features planned before final release. Because of that each new update will have a chance to break something. I am ready to fix errors as soon as they are noticed, but since some changes may potentially break game project (making it unusable) my STRONGEST ADVISE is to make a full backup of your game whenever you install a new update of this WIP version.

One simple way would be to specify if an object's or character's blocking height is centered around the baseline or if it's lowest point is the baseline.

That in particular should not be very hard to do, but I am not certain if this solution will cover most of problem cases. It may be worth to gather a list of most common practical situations when builtin collision does not work well to see which kind of quick improvement would work for them.
Universal solution would require implementing a "Collider" configuration that would let you to set up any custom area, e.g. with a mask.

PS. On a side note, is not using second object/character with 100% transparency an easy workaround for this?

Built-in pathfinder does not have any settings. Perhaps only making walkable areas consist of diagonals... not sure that will reliably help with automatic loop selection though.
Or scripting your own pathfinder/movement mechanic.

Since Unavowed has the same issue according to cdavenport, couldn't it be that the feature wakes up somehow, even without it being available in the UI? Something to do with the game having been developed in earlier AGS versions at the beginning, or even the Editor screwing up some import or room creation at some point?

While hypothetically that may be possible, IMHO this is too much to assume at once without firm evidence. We do not know if what cdavenport experienced in "Unawoved" is a bug and not by Dave's design, we do not know if it's the same kind of bug as he has in his game, and we still have no actual details to make conclusion of its nature.

Of all the theories mentioned in this thread, the clip linked to the frame sounds most logical to me so far, but I'd rather wait for further test results.

Does it get its own dedicated audio channel?

No, this property has no control over channels and such, it is simply converted into "aSomeMusic.Play();" command in the "On Room Load" script.

The reason I doubt this is related to current problem is that cdavenport mentioned "phantom music" starts playing at certain point in the dialog, not at the room start, and secondly, if this was the project imported from before AGS 3.2, there would be a noticable script command.

Isn't there an option in the Editor to attach a music to a room?
There is no such option.

This option existed before version 3.2, where this and few other room options were deprecated in favor of scripting. It still exists internally for importing old projects but not displayed on Editor UI.

Yes, music is a clip from my game, and it is always same clip. It happened again when I was troubleshooting it last night.

The only fix I've found is to create a new dialog, to replace the one with where the music track plays when it's not supposed to. That seems to work, however it may occur again I won't know until all the dialogue sequences are finished and tested.

Are you using voice-over notations in the dialogs? Can it be that you put music clip in Speech folder and forgot about it?

It *may* have something to do with when I use "player:" in the dialogue instead of using the characters name (e.g. "cEgo:") but I can't be certain.

Right now it's not feasible for me to send the game to other players to test, I was hoping somebody might have had this same issue but apparently not. If I can't figure out what it is I'll have to try and troubleshoot it later.

If this happens again and will reproduce steadily, could you at least post particular dialog script?, because it's hard to guess the problem without having more details.

I can say it sounded like it was happening while I was playing Unavowed, I was in the section outside the police station talking to Donny, I could hear the ambient sounds, the musical track that was playing in the room, and then all of a sudden underneath those another musical fanfare started playing over and over again (just as what happens in my game) beneath the other tracks, while I was in the middle of a dialogue. It happened more than once but again I cannot predict exactly when and where it will occur.

Have you tried reporting this to Dave Gilbert? He might be able to find out something about this problem too.

As Retro Wolf said, unfortunately you cannot do anything about it in the other peoples' games. It is up to the game creator to implement such options in game.

In the past I was considering adding this option to game config to override the one chosen by the game author, because unabling to pause speech was also annoying me in some games. On the other hand, sometimes the speed of speech may be a deliberate design choice, if character's words are synced with the background music for instance. Also some games have custom scripted speech which may ignore built-in parameters.

This should be very easy to test out really, but as far as I know the Allegro library used by AGS is drawing only parts of image if it is partially off-surface and not doing anything at all if its completely off surface.

Were you using any symbols, like dashes? I recall two or three repeated dashes were causing similar error in the past.

that sounds like you're running the game twice?

By default AGS pauses on background, so unless multitasking mode was enabled deliberately by game creator they should not run in parallel.

That may be a silly question to ask, but I did not notice if this was asked anywhere above and want to confirm this to eliminate any chance of misunderstanding: is this "phantom" music actually a music clip from your game?
If yes, is it always the same clip?
How easy it is to reproduce this problem in your game? Have you tried giving your game to other people to test out to see if they get same error?

Pages: [1] 2 3 ... 432