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 - eri0o

#61
Uhm, from looking just at the code I can't really tell how it should work... That SetProperty won't work in the new version if you do it after the room has been setup. :/ You would need to go the manual route for doing that (added in 0.3.3). Is it really necessary?

The other thing, is there is Rellax.TweenDuration and also there is a easing type property too, if the target character is stopped, it will use tween when moving the camera in position, and if the target character is moving, it will instead rely in the Rellax LERP factors properties.
#62
Quick 0.3.3 update, added two new things to the top post, a function and a new attribute.

static attribute bool AutomaticallySetupOnRoomLoad
Gets/sets whether to automatically setup on room load. It defaults to yes (true).
Leave as this unless you really need it.

static void SetupRoomManually()
You should not call this, unless AutomaticallySetupOnRoomLoad is false.
Then call this at the end of your room_Load, after you are done setting things up.

Because there isn't an event that triggers after room_Load but before room_AfterFadeIn, if you need to setup things at your room_Load, use Rellax.AutomaticallySetupOnRoomLoad = false; before you call your player.ChangeRoom and then in the once in the room there, you should use Rellax.SetupRoomManually(), as the last function you call in your room_Load. If this is a one time thing, you can use Rellax.AutomaticallySetupOnRoomLoad = true; when you go to your other rooms.

@AndreasBlack I wouldn't mind an extra demo room! :D (or a character!)

Ah, there is a technique to make the camera smoother in pixel art games @AndreasBlack , the camera width/height would be the intended one (say 320x180) and then the game resolution would be either twice or four times (so either 640x360 or 1280x720) and then I would modify both the camera position and the viewport position to be smoother. Of course the price for this is that AGS has no way to scale GUIs, so their art and fonts would need to be manually scaled and redone - though this gives opportunity to use slightly more resolution for texts if desired. Result looks like the videos here. I haven't merged this on rellax yet for the lack of people to test it.
#63
There should not be lagginess. Is it possible to export this one room that you experience it and shove into a new game project that has said lag so I can test it? I only have my own stuff to test it. :/

Edit: Finally figured the character height bug!! I had a wrong sign in a place and this cause the vertical offset of the camera to be weird!!!!

Released new 0.3.1 release with the fix!

Edit2: quick 0.3.2 release with minor performance improvement by avoiding GetProperty repeatedly, instead we only read those once at room load now.
#64
Release 0.3.0! Updated the first post with the links! Changes are the following
  • Removes the standstill property, it's supposedly more useful for platforms, may add later if necessary.
  • The main change here is once the character stops, it will instead switch from plain Lerp to a Tween like behavior so that the camera slides in to whatever should be it's target. Additionally, now it defaults for `AdjustCameraOnRoomLoad` being true.
  • A lot of rewrites in the code

I will later looking into optimizing it more and making the code a little better. I stoled Edmundito's Tween math shamelessly, I will add a mention to this somewhere at some point. There is something in the vertical axis, that maybe isn't always right but I will look into this later, I have been rewriting too much code in this for a the last month. :/

@Dave Gilbert , what you are looking into is the AdjustCameraOnRoomLoad property, it defaults to true now, so it should not be a problem. If it turns out to be a problem still, let me know. There is an issue that a player.ChangeRoom in the same room doesn't trigger a eEventEnterRoomBeforeFadein, so if you find yourself in this edge case I will look into how to figure something for this.

@TheVolumeRemote I think this new version could fix the issue you had. If it doesn't, let me know. Sorry, I tried lots of things before, not sure if this really fix it though.

@AndreasBlack sorry, I can't figure it out if you have a problem or not, if there's, can you explain again? :)
#65
I have been just getting a general feel on what is the status of video codecs today - this is only tangentially related, but still.

So I found the following:

pl_mpeg: this is mpeg-1 codec, which is very outdated, but has expired patents,  and the code for it is also very small and builds to few kB.

dav1d: this is an AV1 codec written mostly in assembly with a bit of C, it's cross platform and requires nasm and meson to build. The built lib dav1d.dll is around 3MB and using strip gets it down to 2MB. License is not GPL, so we can use on iOS. Plus, AV1 has no patent license requirements or royalties!

libgav1: this is the AV1 library that is available in Android, but it can be built cross platform too as it's used in Google Chrome too. It's not as fast as dav1d - 1920x1080@60 is definitely heavy for it, even on my desktop. But it uses CMake and doesn't require nasm, can be built with any compiler with C++11 support! It's also smaller in size. And it has permissable license and as AV1, no patent license/royalties are necessary.

SDL3: it's not added yet, but there are talks of adding an API for SDL to access system libraries. Interesting to follow up.


All in all the general idea is to have some plugin interface for adding more codecs more easily, but I wanted to take a look on how is the current situation for video codecs regarding patents, licenses and royalties - h264 and similar are out of the picture as libraries because of those.
#66
@Snarky uhm, does getting the time of the voice clip in milliseconds would be better? Because I think you can get it from it's audio channel.

I saw this in the manual,

QuoteOne channel is always reserved for the speech voice-over and you cannot change that, so you have 15 at your disposal.

I wonder if this means the voiceclip AudioChannel is fixed. The other approach is to ask the player to pass this audio channel and let them figure it out.
#67
I don't think you can get system clock from the API today, but like, does getting the elapsed time in milliseconds from when the game started running something that would help there?
#68
About being the 3D modeling stuff, what I use, just to have a general idea and to draw on top later is Wings3D, which is a very old-school software but the modeling concept in it is simple and similar to SketchUp - which still exists btw but now runs in some web environment.

But there are other approaches, for having a basis, like making a simple real model and taking photos - or more easily, going to a physical place you find interesting and just taking real photos in different places (or even just using Google Street View for this).
#69
https://civitai.com/models/151539/lucasarts-style-1990s-pc-adventure-games-sdxl-lora-dreambooth-trained

Saw this recently - I have alerts for Adventure Game Studio in search engines that I occasionally get.

Btw from the examples it doesn't look like it is useful beyond static images, and it's all very lifeless, but I could see perhaps using it for some text game where you navigate a place and polishing whatever is generated later in Aseprite by hand - adjusting colors, palette, resolution, clean up of the hallucinations, ... Still could be a really fast pipeline if you are working in intense time restrictions - like Ludum Dare, where you must work solo and output something in 48hours.
#70
It looks re-released!
#71
@abstauber , hey the new update in the GitHub project then, can I push it to ags? Just to clear this for new games!

Spoiler
The git diff is like ten thousand lines so this is why I am anxious to push it because I can't tell what's different in there exactly.
[close]
#72
Engine Development / Re: AGS engine Web port
Fri 29/09/2023 02:24:11
@uma , your game use a very high frequency graphics with alternating black and white pixels at full hd, what is happening is in browsers that advertise a lower resolution than their real resolution, the game is rendered in that resolution instead, so the discrete pixels are decimated (or downsampled). This is like, if you go from 1920x1080 to a 960x540 resolution, you get only the even (or odd) set o pixels, but because you use alternated black/white pixels, you will get either only the black or only the white pixels - which makes some graphics disappear. This means that your game will only really work if run at the EXACT resolution it's made - or bigger, but then some moiré pattern occurs when the pixels are resized. I don't have a solution for this, perhaps using bilinear will help - but this means the graphics won't be sharp or look exact like you want it to.

I have an idea to get the full resolution of the device the browser is running ignoring what it advertises, that could maybe help, but this would work by fully getting rid of the in-engine (script API) for alternating between windowed and Fullscreen, instead this would only work by using the external button (the gear engine). What I would do is I would directly use the JavaScript API for Fullscreen instead of SDL and Emscripten (which currently are very buggy).

Now the issue is you mentioned you have the issue on macOS, and this kinda should not happen. Do you get this issue on Safari in macOS? Can you tell me the exact model of your MacBook? Is this using an external monitor? Can you tell me the specific resolution of the monitor?
#73
Myst was rendered from 3D, so by using cameras and re-rendering I imagine new screens weren't that hard.

If you are drawing your scenes by hand, have you considered using some 3D software to create at least a basis of the map and then render from it?

The other approach is to create some structure in the rooms with some in-game excuse for it (e.g. it's a dungeon!) and then re-use things like doors and other things you can use to compose the door - and maybe also changing the hue of things so they are tinted differently.

But for your point, I think that if there is verticality and you need to look in the opposite direction you will invariably want two different views of the scene.

Is there a specific style you are using for the game? Or some specific story constraint? I would think maybe there's some room at the design stage to leverage these for resource usage.

My usual technique of reusing rooms (in general) is to have it have things and later remove things from it (like a character there) and have the player pass in that same room but now that something is different the logical part of the room is different.
#74
I think you are hitting a new bug in the template of something that used to work

It was reported here:

https://www.adventuregamestudio.co.uk/forums/modules-plugins-tools/template-tumbleweed-verbs-1-4/msg636657693/#msg636657693

I think it's best to maybe ask in that thread - just check if I haven't misinterpreted and it's indeed the same issue.
#75
Uhm, yeah, perhaps such thumbnail is best stored outside so it's easy to get all of them and present fast.

The thing with rooms that I have been thinking about is that it's a little hard in projects with lots of rooms to navigate and have a grasp of how your game "map" is looking. I usually maintain external images where I copy paste all rooms backgrounds in either Gimp or PureRef so I can get a feeling of the general of the game. I don't expect this overview map if generate in AGS to have the same flexibility but I was thinking what could be done on the cheap that would enable you to click and load a room but also have a general overview of how the game is coming together.

Of course I don't have an answer for this, I thought about looking into the room script object to collect all ChangeRoom calls and see if they point a number and also to create a three color palette of the most used colors on each room and then using distance between colors and the change rooms that happens to use direct numbers to estimate how to best position the rooms in such overview. But this looks hard to pull in algorithms and expensive to calculate and keep updated. So I am leaning towards just icons in squares side by side in room number order.

Anyway, went really away from the original thing, just because I have been thinking about this for some time now and haven't got any ideas.
#76
About the room file format, it would be nice if it could include a 32x32 icon or if there was an easy way to read it and generate some sort of thumbnail for it (maybe with multiple rectangles overlapping), just thinking it would be nice to have an alternative view to browse game rooms through images, even if very small that only hints the colors used in it, as a visual reference to which room is it. Perhaps this is something that can be done through the editor. This would be useless for non adventure games or games that use other strategies for their scenes but for adventure games using rooms it would give a nice overview of what the game has.

About the icon for the room, I was thinking about what is shown when creating a new room from a template, so that if your template has a background it would get picked up as icon too. But these ideas are not fully formed.
#77
I am trying to think here, does installing ags 3.5.0 with the installer and later installing 3.5.1, keeps the 3.5.0 name in the Windows start menu? I think we only made the installer use the three top numbers on the version number when naming the directory in AGS 3.6.0.

Just trying to figure it out where the confusion might be. The AGS version number may be checked by either looking into the about menu under the help in the Editor or I think also right clicking the acwin.exe or the AGS editor in the properties for the version you think it's 3.5.0 - maybe because the old installer did something wrong in naming the dir.
#78
OK, I have been thinking about the issue of making the camera smooth and also make sure it slides in perfectly, without forgetting some pixels, and make sure the vertical axis also works correctly. I have looked into physics, how elastics work, planet gravity and gravity well and things didn't actually worked well. I think I came up with a really simple concept that appears to work well that is the following:

  • If the character is moving, LERP (default rellax implementation)
  • If the character is stopped, Tween the camera

The results appear good so I need to make a pretty code for this that is self contained - I was using edmundito's module in my experiments. After this is adjusted - I think I will make it as an option for people that may want the old method for whatever reason. Then I will look into other bug fixes. Sorry for the long delay.
#79
Holy, you are the Gobliins developer! That's amazing!  8-0

OK, so it's a RELEASED project! I guess version is more sensitive then because of save files of the players.

I am trying to think how the 3.5.1.17 version number would appear in the error message if it's not read directly from the version of the file but I am coming empty. If you didn't had that version installed at any point, the only other thing I can come up now would be sharing the game project files with someone that had that version. I checked the AGS Editor source code and this error message indeed ???  is in LoadUserDataFile and it's called to load the Game.agf.user file only.

QuoteI tested the User files, without result.

What does this means? My understanding is if you remove Game.agf.user file at minimum the new error message must be a different one.  ???
#80
I have been thinking on the design of room CRM files.

For some reason room files uses sprites stored in itself instead of reading the spritefile, these are the masks (Walkable areas, Regions, Hotspots and Walkbehinds) and the room backgrounds (up to 5). My guess is this is made so it's easy to share them and directly use them as room templates.

Is it better for resource management in the engine side to keep these in the room file instead of the spritefile (you never need the background/mask from one room in the other room)?

Now for a more practical question.

Recently Deflate was added as a compression option for sprites. Let's say I select deflate in the general setting. Are the sprites in the room files using deflate or do they use something else? Is it possible to detect if any of these room sprites is just empty black with all zeroes and instead store a hint there?
SMF spam blocked by CleanTalk