Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - cat

#1701
I don't see anything wrong with verbcoins at all. If done right, they are pretty much self-explanatory and work pretty well on touch devices. The only problem is that the verbcoin implementation that ships with AGS is totally f*ed up. The verbcoin should open directly on left-button click. Maybe the template should be either fixed or removed from the project at all.

Quote from: ManicMatt on Sun 24/06/2018 23:42:28
This is making me worry, my current project uses the verb coin. I didn't realise there was so much dislike for it. But I would struggle to replace it even if I decided to change it to something else.
Maybe you can just change the way the GUI opens i.e. make it appear immediately on left click and not only after holding down?

Quote from: Phemar on Sun 24/06/2018 21:03:31
As for this topic, I can see some interest in a discussion regarding interface design. So if the mods would like to change the topic or something, I'd be down with that.
You can rename it, I can split the topic or we can start a completely new topic for interface design on the board.
#1702
Is this going to be an AGS game or are you using another engine?
#1703
The Rumpus Room / Re: Happy Birthday Thread!
Sun 24/06/2018 18:18:45
Happy birthday, tzachs!

And happy belated to everyone that I missed.
#1704
Hi there!

A few days ago we visited abstauber and his family on our way back from our summer vacation. It was great to meet again, get to know his kids and talk about AGS, games and nerdy stuff ;-D Our kids also enjoyed it a lot.
We also talked about that it would be great to meet other AGSers with kids, especially veteran Mitteneers that can't attend Mittens now because they have kids.

Who would be interested in attending a Mittens with kids?
#1705
Weirdly, it did work now :)

Spoiler


Russia 1 - 0 Saudi Arabia
Egypt 1 - 1 Uruguay
Morocco 0 - 0 Iran
Portugal 0 - 1 Spain
France 3 - 0 Australia
Argentina 2 - 0 Iceland
Peru 0 - 2 Denmark
Croatia 0 - 0 Nigeria
Costa Rica 0 - 1 Serbia
Germany 0 - 1 Mexico
Brazil 2 - 1 Switzerland
Sweden 2 - 0 South Korea
Belgium 0 - 0 Panama
Tunisia 0 - 3 England
Colombia 1 - 1 Japan
Poland 1 - 0 Senegal

Russia 1 - 1 Egypt
Portugal 2 - 0 Morocco
Uruguay 1 - 0 Saudi Arabia
Iran 0 - 2 Spain
Denmark 1 - 0 Australia
France 0 - 0 Peru
Argentina 1 - 2 Croatia
Brazil 1 - 0 Costa Rica
Nigeria 0 - 0 Iceland
Serbia 0 - 1 Switzerland
Belgium 1 - 0 Tunisia
South Korea 0 - 2 Mexico
Germany 0 - 1 Sweden
England 2 - 0 Panama
Japan 1 - 0 Senegal
Poland 1 - 1 Colombia

Uruguay 0 - 0 Russia
Saudi Arabia 0 - 1 Egypt
Spain 2 - 0 Morocco
Iran 0 - 3 Portugal
Denmark 0 - 0 France
Australia 1 - 0 Peru
Nigeria 1 - 2 Argentina
Iceland 1 - 1 Croatia
South Korea 1 - 0 Germany
Mexico 0 - 2 Sweden
Serbia 1 - 3 Brazil
Switzerland 0 - 0 Costa Rica
Japan 1 - 0 Poland
Senegal 0 - 1 Colombia
England 2 - 1 Belgium
Panama 1 - 1 Tunisia
[close]
#1706
Quote from: Stupot on Wed 23/05/2018 09:55:27
If you still can't get it to work after a couple more tries, it's okay to just copy and edit the numbers from someone's post above. You can put them here or pm them to me.
Yeah, it's pretty weird, it works neither on my phone nor my PC. I'll post my guesses here. However, I also don't have access to the rules, would be great if you could post them here (or PM me).
#1707
I now tried at different times on different days but I always get a server not found error ???
#1708
I think an editor without the need to register an account somewhere is a must.
#1709
Quote from: tzachs on Tue 22/05/2018 15:00:43
Done ("LoadSprite" and "LoadSpriteAsync").
Already saw it this afternoon and used it in my code - thanks :)

Quote
Quote
One more (not exactly MonoAGS) issue I have: I installed the VS Community Edition, which I thought was free? But now VS says that my 30 days trial license will expire in a few days ???
It is free, but you need to sign in, see here: https://www.visualstudio.com/vs/support/community-edition-expired-buy-license/
Ah, I thought it might be something like that :-\ Well, can't complain too much about a free product. I assume when the MonoAGS editor is finished, people will not need VS installed, right?
#1710
Wow, great looking entries, I need to give them a try.
dkh hasn't been around here for ages - I hope he is doing fine?
#1711
Quote from: tzachs on Mon 21/05/2018 16:03:26
I pushed fixes to master for both the camera panning issue and the character speaking.
Nice! It's working now :)

Quote
Note that I removed Character.Say, SayAsync should be used instead, that's because the blocking say can't work in all scenarios
Right, better remove it than having a half-broken version.

Quote
Also, I saw that there's a bug with how the fade transition works in your loading screen (instead of fading in the new room, it's fading in the splash screen). Not yet sure what's going on there, it seems more complicated, I will look at it after I finish my current work.
For the mean time, if it bothers you as it bothers me, you can remove the fade transition from the game load event, and move it to after your first (non splash screen) room fades in. Note that this will also reduce the time of the splash screen (by default the fade transition is 1 second fade in and 1 second fade out).
Wow, it's really much quicker that way.

Quote
You can also create a private repository. It costs money on github, but it's free on both VSTS and BitBucket.
Thanks, I'll think about it.

Quote
This is because ICharacter doesn't really contain ChangeRoomAsync, it's composed out of components (like IHasRoomComponent) which contain the actual behaviors.
I understand that, but the whole interface composition will be too complicated for the regular game developer. The documentation needs to have an article where everything you can do with a character is explained in the style of the old AGS doc.

Quote
Quote
Right, I checked again and I see a null reference exception in output. However, the program doesn't crash but nothing else happens and the game is stuck.
Can you describe what changes I need to make to reproduce this? Also, if possible can you share the stacktrace of the null reference exception?
Thanks.
For example, during character creation, I assign an outfit only for left:
IOutfit outfit = await game.Factory.Outfit.LoadOutfitFromFoldersAsync(_baseFolder, walkLeftFolder: "Walk", speakLeftFolder: "Walk", idleLeftFolder: "Walk");
and then I start the idle animation for down (because I didn't pay attention):
_character.StartAnimation(_character.Outfit[AGSOutfit.Idle].Down);
The problem is, the game gets stuck on the loading screen and the exception is only visible in output.

Quote
An outfit is a collection of directional animations (idle/walk/etc)...
Thanks! It would be great to have a shortcut, like factory.LoadSpriteFromFile or similar. Especially when doing multiple animations manually, it creates lots of code atm. Can I safely reuse a sprite for different frames or should I create/clone a new one?
Oh well :(. I tried creating the animation manually but didn't get it to work, yet. The viewport jumps weirdly and I just have flickering and no proper animation. I need to investigate further.


One more (not exactly MonoAGS) issue I have: I installed the VS Community Edition, which I thought was free? But now VS says that my 30 days trial license will expire in a few days ???
#1712
Nice competition and entries! I hope some of the games will be made :)

Next time I'll join the competition with a pitch as well.
#1713
Quote from: tzachs on Sun 20/05/2018 06:06:37
Would it be possible for you to share a copy of your project with me?
Without it it's going to be much harder to help.
Sure, I'll send you a link. I know it would be easier to make a public github repo for it, I'm just not sure I really want to make it all public (not because of the code but the general copyright to the game and assets).

Quote
I don't know. How big is the background (file size)?
Actually, it's pretty big, ~3MB png. It's a high-res photo.
Quote
You can try commenting out the line that loads the background and comparing the time differences.
A bit faster, but not much. But today it seems to start quicker than yesterday. Who knows what Windows was doing yesterday (mining bitcoins? :P)
It's not a big issue anyway, I was just curious.

Quote
It should fade directly to the position when you change room. Are you changing the viewport positions manually? Or are you moving the character in "after fade in"? Because if you move the character after the room fades in then the camera will not change at once but will do a smooth movement so maybe that's what happenning?
I just did what is shown in the code I posted, i.e. set the character as player and then call ChangeRoomAsync

Quote
Docs for Character.ChangeRoomAsync is here (though there's not much there).
And you can access it directly from the ICharacter page.
A tip if you tried using the search: there's currently a bug in DocFX that the search misses things. You can work around it by searching for "ChangeRoomAsync*" instead of "ChangeRoomAsync".
Here's a link to the bug. If you (or anybody) wants to comment on it and maybe put some more pressure on them to fix it already it would be nice.
Ah, that's why I didn't find it in the doc. Btw, when searching for ChangeRoomAsync* only IHasRoomComponent is in the result, not ICharacter.

Quote
If you're running in "Debug" from visual studio there's printouts to the output tab. Did you look there for errors?
Otherwise, not sure, I'll need to reproduce and see what went on there.
Right, I checked again and I see a null reference exception in output. However, the program doesn't crash but nothing else happens and the game is stuck. When I press the pause button, execution seems to be in AGSGamesWindow at line 65 public void SwapBuffers() => _gameWindow.SwapBuffers(); I think it might be better to let the game crash (at least in debug mode) instead of being just stuck.

Quote
Besides having the character in the same room, you also need to start the idle animation (or any animation, or set an image). You just need to do it the first time, it will then transition back to idle automatically after walk animations.
Thanks, that did it.

Quote
Quote from: cat on Sat 19/05/2018 21:55:51
I tried to say something after the room change, but the game crashes on me:
System.AccessViolationException: 'Attempted to read or write protected memory. This is often an indication that other memory is corrupt.' at AGS.Engine.OpenGLBackend line 30.
Can you share the complete stacktrace of the exception?
Also, can you try changing from "Characters.Cornelius.Say("Hello, here I am.");" to "await Characters.Cornelius.SayAsync("Hello, here I am.");" and see if it helps?
If it doesn't help, you can also try doing the say (or say async) in the "after fade in" event of the "stage" room instead of the splash screen room and see if that works.
With SayAsync it does not crash but I also don't see text.
Spoiler

Stacktrace (local paths obscured)

at OpenTK.Graphics.OpenGL.GL.Clear(ClearBufferMask mask)
   at AGS.Engine.OpenGLBackend.ClearScreen()
   at AGS.Engine.AGSGame.onRenderFrame(Object sender, FrameEventArgs e) in <local>\CorneliusCat\MonoAGS\Source\Engine\AGS.Engine\Game\AGSGame.cs:line 203
   at AGS.Engine.Desktop.AGSGameWindow.onRenderFrame(Object sender, FrameEventArgs args)
   at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   at OpenTK.GameWindow.OnRenderFrame(FrameEventArgs e)
   at OpenTK.GameWindow.OnRenderFrameInternal(FrameEventArgs e)
   at OpenTK.GameWindow.RaiseRenderFrame(Double elapsed, Double& timestamp)
   at OpenTK.GameWindow.DispatchUpdateAndRenderFrame(Object sender, EventArgs e)
   at OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second)
   at OpenTK.GameWindow.Run(Double updateRate)
   at AGS.Engine.Desktop.AGSGameWindow.Run(Double updateRate)
   at AGS.Engine.AGSGame.Start(IGameSettings settings) in <local>\CorneliusCat\MonoAGS\Source\Engine\AGS.Engine\Game\AGSGame.cs:line 142
   at CorneliusCat.GameStarter.Run() in <local>\CorneliusCat\CorneliusCat\GameStarter.cs:line 16
   at CorneliusCat.Desktop.Program.Main(String[] args) in <local>\CorneliusCat\CorneliusCat.Desktop\Program.cs:line 10
[close]

Btw, is there another way of setting the character outfit? I want to reuse some frames for an animation and not copy them several times in resources. I'd like to build the animation manually.
#1714
Ok, I finally got the first background shown. I'm still not done with setup, but I want to find a way to make it cleaner than in the demo game.

I have basically just one huge scrolling background for the game and a few questions:

  • It's just one background, no objects, music and stuff - yet, the loading screen is shown for a full second or so. Why does it take so long? Is it because of the big background?
  • When the background is shown, after fade in, it quickly pans to the location which is undesired. Is this done automatically? I think it should fade directly to the position where I call change room. Or is it something different here?
  • I couldn't find documentation for Character.ChangeRoomAsync, especially how the coordinates work (i.e. where is 0,0)
  • It's hard to find/understand errors that occur. When resources for the walkcycle were not there, loading wouldn't work and I was stuck on splash screen, I only found the cause of the error when stepping through initialization with the debugger.
  • My character is not visible yet. Do I have to do something special to show it? I changed the room and the screen is on the correct position.
  • I tried to say something after the room change, but the game crashes on me:
    System.AccessViolationException: 'Attempted to read or write protected memory. This is often an indication that other memory is corrupt.' at AGS.Engine.OpenGLBackend line 30.

Here is my init code:
Code: ags

private async Task loadGameData(IGame game)
        {
            Debug.WriteLine("Startup: Initializing Splash Screen");
            IRoom splashScreen = new AGSSplashScreen().Load(game);
            game.State.Rooms.Add(splashScreen);
            splashScreen.Events.OnAfterFadeIn.SubscribeToAsync(async () =>
            {
                await Rooms.LoadAsync(game);
                await Characters.LoadAsync(game);
                game.State.Player = Characters.Cornelius;
                await game.State.Player.ChangeRoomAsync(Rooms.Stage, 2000, 500);
                Characters.Cornelius.Say("Hello, here I am.");
            });
            await game.State.ChangeRoomAsync(splashScreen);
        }



#1715
Nice! Thanks for sharing!
#1716
Yes, it's working now.

Edit: And another question about LoadOutfitFromFolders:
I see in the demo game that only speakLeftFolder for talk and walkLeftFolder and walkDownFolder for walk are used. How does the engine decide which one to use for what, e.g do I always have to provide speakLeftFolder when I want to have the same animation for all talk animations or could I also use speakRightFolder? This is missing in the code comments/documentation (or did I just not find it?)
#1717
Nice! I haven't been coding for a year now (and at work I was limited to older script versions) so it's about time for me to get up-to-date :)
#1718
No worries, I spent the evening learning about async/await (https://docs.microsoft.com/en-us/dotnet/csharp/async). It a bit mind-bending because I'm used to JS promises, but I think I start to understand it.
#1719
I pulled the latest version but I get an exception when starting DemoQuest.Desktop at AGS.Engine.FileSystemResourcePack.autoDetectAssetsFolder line 104

System.ArgumentException: 'URI formats are not supported.'
#1720
Quote from: Monsieur OUXX on Mon 14/05/2018 15:08:23
If you don't feel too confortable with that weird room, I'd say that you may skip the splash screen altogether and just go directly to an actual room. It will take a few seconds to load, but for a small game it's no big deal.
I'm comfortable enough to use it, I just want to point out issues that may confuse other game developers. Like the missing documentation or the unused graphic in the assets folder.
SMF spam blocked by CleanTalk