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

#81
Hi everyone
I'd like to present to you Bake Off Italia - The Graphic Adventure, my first game made with AGS.

It's a simple and short graphic adventure set in the world of my favorite tv show: Bake Off Italy. Your task is to prepare a Sacher Torte to save the show from.. well... the aliens :)

The backgrounds are taken from real pictures of the TV show, modified with Graphics Gale. The sprites are made from scratch. Music found on freesound.org
For sure the game is more appealing for Italians since they know the stars of the show, but the game is fully translated into English.
There are a lot of animations still missing, but the dialogs, puzzles, and story are complete.

I hope you will enjoy it.

Some screenshots









Where to download

I created the versions for Windows, Mac, and Linux.
You can download them from https://emabolo.itch.io/bake-off-the-graphic-adventure

Or from the AGS Games DB:
https://www.adventuregamestudio.co.uk/site/games/game/2537-bake-off-italy-the-graphic-adventure

Update 0.9.6
I fixed a small bug in the dialogs and adjusted the scores so that the max score is now 1000.
I also changed the font, dropping the C64 one, for a new one that it's much more readable.
Finally, if you had problems with the Mac version, now you can try again, it should be ok.

If you try it, I'd love to receive your feedback
#82
I just tested it and it works perfectly! Thank you!
I have one question regarding the config file. After I run the game once, I modified the file acsetup.cfg in the Resources folder, to switch from fullscreen to windowed mode. But the change didn't produce any effect. Is the config file saved in the user directory and the default config is ignored the second time you run the game, like the Windows version?. If this is the case, where is the config file saved?

And another question. Can I rename AGS.app to mygame.app? Or this will break something?

Thanks a lot!
#83
Quote from: Crimson Wizard on Mon 17/05/2021 00:57:09
Yes, I confirm, the Editor does not save "\x" sequences correctly for translations, only sequences like "\\" and "\"".
I will add this fix to 3.5.1 beta.

That's great! I'm glad I helped to spot a bug.
Maybe it could be a good idea also to comment all the unused lines. So, when I select "update translation", all the file is checked and if a string is not found in the entire game, the line and corresponding translation are commented. This would help to keep the translation file clean. The reason why I suggest commenting instead of removing the lines is that this way you can copy and paste the translation from the unused lines.
#84
Quote from: Crimson Wizard on Sun 16/05/2021 15:36:49
Yes. But of course you can also edit acsetup.cfg by hand. There are instructions to what may be inside:
https://github.com/adventuregamestudio/ags-manual/wiki/RuntimeEngine#configuration-file-options

All clear, thanks a lot!
#85
Quote from: Crimson Wizard on Sun 16/05/2021 15:25:03
The config file in Compiled folders is called "default config", and its options are set up using "Default Setup" panel in the Editor. This config is never changed by running the game.

I see, ok. So if I want to distribute two versions of the game, one with default English and another one with another default, I can change the Default Setup, then build all files, zip the files and name the archive -en.zip, then change the Default again, and re-build all files, and zip a second version, right?
#86
Quote from: Crimson Wizard on Sun 16/05/2021 14:48:25
Sorry, I did not mean that you should be testing, I meant the AGS developers should investigate this out to see what's wrong.

Ah ok, no problem  :)

Last question. When I zip the Windows folder and I send it to someone else. Will this person start the game in the Default language, or it will be in the last language I played the game? Are the last settings saved in the config file?
#87
Quote from: Crimson Wizard on Sun 16/05/2021 11:34:36
Frankly this sounds like a bug... I'd rather test this through and find out why "\n" does not work.
In all the lines with \n, the game only shows the original version, not the translation. I replaced all of them with "[" and it works. Not sure what I should test. Seems like a bug of AGS, or \n was not supposed to be used.

Quote from: Crimson Wizard on Sun 16/05/2021 11:34:36
Yes unfortunately that's how it's made to work at the moment.

I think it's safe to delete unused lines, so long as you delete a pair of lines each time to keep TRS format correct (odd lines are original and even lines are translations). It's just that this may become tiresome as your game text grows.

Yes in fact it's quite annoying. It would be better at this point to manage all texts in an external file, not just the additional languages. Maybe there should be a feature to replace all the hardcoded text with placeholders/variable names such as %STRING1%, and then you change both languages in the trs file. Just an idea.
#88
Quote from: eri0o on Sun 16/05/2021 09:15:03
can you check if replacing \n with [ for one of you're cases fixes it?

Yes, it works! Thanks a lot!

I noticed another thing. If I change a text in the game, then I select "update translation", I can see new lines are added to translation.trs. The original lines are still there, even if they won't be used anymore. Is it normal? Should I delete them manually?
#89
I finally finished translating my first game. The problem is every time the string has a "\n", for example:

Code: ags

INSTRUCTIONS\n\nClick anywhere to move the character


the translation is ignored and the default language appears. How to make translations work when there is a \n ?
#90
Quote from: timebandit on Wed 27/01/2021 11:19:35
Could you write a step-by-step guide of what you do when creating the variable "hasBeenExamined" and making it work? Like, first you click "create global variable" or what it now says on the sidebar. What do you do after that?

Sorry for the delay, I didn't see your post, I hope you have already solved it. Anyway, just in case, here you have some more info

First, you have to define your new custom property. You do it by selecting an object (or hotspot, or inventory item) and accessing the Properties grid on the bottom right of the screen. Double-click "(Properties)" to open the definition of the custom properties. Initially, you won't see anything, so click  "Edit Schema" and then with a right-click, Add New Property. You can choose the type (for example "bool") and the default value (use "0", not "false").

What is important to understand, is that the properties are shared. If you create a property "hasBeenExamined" for the oKettle object, all the other objects can start using a new property called "hasBeenExamined", not just the kettle. But you can choose if the property applies only to objects, or also to hotspots for example. I normally select both inventory items and objects.

Now, in your code, you can do something like this:

Code: ags

oKettle_Look() {
 if (oKettle.GetProperty("hasBeenExamined") == 1) {
  player.Say("I already examined the kettle.");
 }
 else {
  player.Say("What a nice kettle!");
  oKettle.SetProperty("hasBeenExamined", 1);
 }
}


It's a bit ugly that you have to use double quotes, and the fact that there is no autocomplete, but you just need to be careful. Also, since the definition is shared, it's not a good idea to do something like "maxSpeed" for the object "car", "numBullets" for the object "gun", "inkColor" for the object "pencil"  and things like that. But for generic properties, especially boolean, like "isEmpty", "hasBeenUsed", "hasBeenExamined", and so on, I believe it's a good choice.

#91
Quote from: timebandit on Tue 19/01/2021 16:36:45
But how do I tell AGS that the variable "has_looked_at_object" is supposed to relate to the player looking at the object? How do I define what the variable actually relates to?

I know that people more expert than me will disagree, but this is why I prefer to use the custom properties of the objects. In my case I have defined a new boolean property called "hasBeenExamined" and it applies to all objects. This way I can do something like:

Code: ags

if (oNotebook.GetProperty("hasBeenExamined")) {
   dDialog1.Start();
}
else {
   cCharacter.Say("Can't talk right now");
}


I believe it's more readable even thought the fact that there is no autocomplete/syntax check on the name of the property is annoying.
#92
Quote from: Crimson Wizard on Tue 19/01/2021 01:59:20
If it's done with the default method (like in most game templates), it does so when you set "player.ActiveInventory = someitem" and undoes when you set "player.ActiveInventory = null".

It works perfectly, thanks!
The only minor issue is that after using gInventory.Visible = false, the icons bar cannot be reopened, but I solved it by setting Visible to true once I gave the feedback. In the end, it makes sense to show again the inventory.
#93
"gInventory.Visible = false" works, while "btnInvOK.Click(eMouseLeft)" does not work. It simply does not have any effect. Do you know why?

Also, I'd like to hide the selected object, the one attached to the mouse cursor. Is it possible?

Thanks a lot
#94
Quote from: Khris on Sun 17/01/2021 23:46:50
You could hide the inventory GUI and play a short animation of the character combining something from their pockets?

I realized that this suggestion is probably the simplest :)

To close the inventory window do I need to use "GUIControl.Visible=false"?
Is there a way to simulate the click on the close button?


#95
Thanks, I'll have a look at the Tween module.
#96
You are right, in fact, I'm not totally sure what could be the solution. I was looking for suggestions also from this point of view, not just technical.

If I have to ignore the technical part, what I would like to see is the inventory screen disappear, and nice animation, of the objects merging together and forming a new object, plays in the middle of the screen (while the room is still visible in the background, maybe just a bit darker). Then the new object "flows" nicely to the top of the screen, to show that it will become available in the inventory.

Actually, this last thing would be useful in general. It would be nice to have an animation of the object "entering" the inventory each time the player gets a new object. Or at least a notification on the inventory icon. Especially useful when you don't collect the object, but it's given to you during a dialog for example.

#97
In my game I want the player to combine two objects to create a new one. Right now my solution is the following:
- inside iObject_UseInv() I check if the active inventory is the other object, and if this is the case:
- I use player.LoseInventory to remove the old objects
- I use player.AddInventory to add the new object
- I use Display to show a message like "Cool, I combined X and Y to get Z".

The problem is this solution is quite ugly because everything happens on the inventory screen, the room and the characters are not visible, and I cannot show any animation. If one of the objects was in the room, I could have shown an animation of the character doing something. But these are two objects that the player can collect, and it makes sense that he can combine them at any time.

Any suggestion?
#98
I tried to comment StartCutscene and EndCutscene and it's the same. The room fades in and fades out, the character doesn't even start talking.

I discovered that the reason is the room has the property ShowPlayerCharacter = FALSE. If I set it to TRUE, everything works normally (apart from the fact that I didn't want the character to appear :)
With False, it seems the code ignores everything and goes to the end.

EDIT: I solved it by setting ShowPlayerCharacter = TRUE, and adding "cEgo.on=0;" inside room_Load(). Now it's perfect!

I hope you will continue working on it, this is a great way to distribute the games, for small ones like mine, probably the best way.
Thanks a lot!
#99
Ok, now I get it. Calling the file "ags" from the mac command line, with the proper parameters, should make the job, right? I'll try it.

Anyway, I also tested the js version and it's a great solution. I just have a minor problem with the cutscene, but it looks very promising.

I started this thread maybe with the wrong topic, but in the end, it was very useful for me :)
#100
Hi @eri0o
This is simply fantastic! I just tried my (work-in-progress) mini-game, I played it for a while and it works perfectly.
I just have one problem with the initial cutscene. It seems like the js version does not wait when the characters are talking, and it just skips to the end of the cutscene.

The code is like that:

Code: ags

function room_AfterFadeIn()
StartCutscene(eSkipESCOrRightButton);
cBene.SayAt(10, 40, 300, "bla bla bla");
cBene.SayAt(10, 40, 300, "bla bla bla");
 ...
EndCutscene();
mouse.Visible=true;
gIconbar.Visible=true;
gStatusline.Visible=true;
player.ChangeRoom(1, 164, 170);
cBene.ChangeRoom(1, 280, 170);


On Windows, it's working: room appears, the character says everything, and then the game opens the main room. But on the JS version, the cutscene room appears for a second, and then the characters go room#1, you don't see her talking. Do you know why? Is there any workaround?
Thanks!
SMF spam blocked by CleanTalk