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

#341
Eureka - may have discovered the walkable area error.
1. I run the game in debug.
2. I edit one of the rooms, widening a walkable area.
3. save, but of course it doesn't save while game is running.
4. I close game, save everything, close the room, start running game in debug again.
5. The walkable area is now 100% all the way through, despite being 100% at bottom, 15% at top.

The problem could be with saving of the game while running.
Here is my room code with the wrecked walkable area. Let me know if you need anything else.
https://redrom.ltd/img/room11.zip
#342
I may need a proofreader...
Anyone interested in doing 3800 lines worth?
#343
Last to know, the full game is 1/3rd larger, I shrunk them down to fit all the images on one screen.
#344
Laura true, it is a giant homage to Lucasarts games that I liked; but that's exactly what it is. I agree I could redo the car and Julius's animations - except this would cost more money, and require a lot of time replacing a lot of views.
Anyway the writing is dissimilar from Lucasarts, and also, despite the references, it so insane that it hopefully *will* stand on its out two feet, rather than being a pale comparison. And ps the 'arch nemesis controlling everything' is revealed at the end and makes the whole game make sense.
Better to ask for forgiveness than permission, at this point ;P
#345
I asked the animator to ‘be inspired' by the Guybrush Threepwood - he went a little too far :p  I checked with mike Stemmle, he said it's okay, let's hope Disney agrees.
Last to Know - I may change the font, what about it don't you like?
#346
AGS Games in Production / Lost on Cow Island
Thu 22/08/2019 09:32:01
DEMO
v1.3 added end-game state and speech-skipping on mouse click

'Lost on Cow Island' is a comedy adventure game about being on a desert island after a time-travelling accident strands you there.

You play as a nervous art-student named Julius, with drunk but reliable friend Dr Braun (pronounced Brown) diligently fixing the broken time-machine. Julius must find car parts throughout the island, and get them back to their own time...



[imgzoom]https://bluekeystudios.com/img/preview/prev1.png[/imgzoom]
[imgzoom]https://bluekeystudios.com/img/preview/prev2.png[/imgzoom]
[imgzoom]https://bluekeystudios.com/img/preview/prev3.png[/imgzoom]
[imgzoom]https://bluekeystudios.com/img/preview/prev4.png[/imgzoom]
[imgzoom]https://bluekeystudios.com/img/preview/prev6.png[/imgzoom]
[imgzoom]https://bluekeystudios.com/img/preview/prev7.png[/imgzoom]

Features:

-1366x768 (16:9) resolution of 50+ painterly backgrounds
-3,600+ lines of dialogue
-Full English voice acting directed by Ben Rich through irregular emails
-Original soundtrack by composer VanillaPear Sound comprising 18+ songs

The Team:

Ben Rich - Development, Writing, Puzzles, Coding, Project Management
MichaЂ Bukowy - Art, Animation (secondary characters)
Rocky Wahyudi - Animation (Julius and Dr Braun)
VanillaPear Sound - Music, SFX, VO Leveling
and a tonne of voice actors from around the world! (but mostly America)

Story/Puzzles - 100%
Scripting - 100%
Animation - 100%
SFX/Music - 99%
Voice Samples - 90%

Notes:

Developed by Blue Key Studios.
Release due in mid-2022, or publisher schedule.
#347
Okay, I've attempted to copy this function (now called oulinedMessage) from speechbubble, and transplant my own outlineDrawStringWrappedAA into the function:

I've reduced the number of arguments, and supplanted default values hard-coded - these items will never change:

GlobalScript.asc
Code: ags

// Draw a string with outline (make sure the canvas has at least outlineWidth pixels on each side of the string)
function outlinedMessage(this DrawingSurface*, int x, int y, int width, String message)
{
  
  // This is what we draw on (because we might need to copy with transparency)
  DynamicSprite* outlineSprite = DynamicSprite.Create(this.Width, this.Height, true);
  DrawingSurface* outlineSurface = outlineSprite.GetDrawingSurface();
  
  // This holds multiple horizontal copies of the text
  // We copy it multiple times (shifted vertically) onto the outlineSprite to create the outline
  DynamicSprite* outlineStripSprite = DynamicSprite.Create(this.Width, this.Height, true);
  DrawingSurface* outlineStripSurface = outlineStripSprite.GetDrawingSurface();
  
  // This is our "text stamp" that we use to draw the outline, we copy it onto outlineStripSprite
  DynamicSprite* textSprite = DynamicSprite.Create(this.Width, this.Height, true);
  DrawingSurface* textSurface = textSprite.GetDrawingSurface();
  
  // Draw our text stamp
  textSurface.DrawingColor = 682;
  textSurface.DrawStringWrapped(x, y, width, 1, 2, message);
  textSurface.Release();
  
  // Draw Circular outline
  int maxSquare = 2*2+1; // Add 1 for rounding purposes, to avoid "pointy corners" 
  int maxWidth = 0;
  outlineStripSurface.DrawImage(0, 0, textSprite.Graphic);
  
  // We loop from top and bottom to the middle, making the outline wider and wider, to form circular outline
  for(int i = 2; i > 0; i--)
  {
    // Here's the circular calculation...
    while(i*i + maxWidth*maxWidth <= maxSquare)
    {
      // Increase width of the outline if necessary
      maxWidth++;
      outlineStripSurface.DrawImage(-maxWidth, 0, textSprite.Graphic);
      outlineStripSurface.DrawImage(maxWidth, 0, textSprite.Graphic);
      outlineStripSurface.Release();
      outlineStripSurface = outlineStripSprite.GetDrawingSurface();
    }
    // Draw outline strip above and below
    outlineSurface.DrawImage(0, -i, outlineStripSprite.Graphic);
    outlineSurface.DrawImage(0, i, outlineStripSprite.Graphic);
  }
  // Finally the middle strip
  outlineSurface.DrawImage(0, 0, outlineStripSprite.Graphic);
  
  textSprite.Delete();
  outlineStripSurface.Release();
  outlineStripSprite.Delete();
  
  /// Now draw the text itself on top of the outline
  outlineSurface.DrawingColor = this.DrawingColor;
  
  //BEGIN OUTLINE DRAW STRING WRAPPED AA
  
  DynamicSprite* atextSprite = DynamicSprite.Create(this.Width, this.Height, true);
  DrawingSurface* atextSurface = atextSprite.GetDrawingSurface();
  atextSurface.DrawingColor = this.DrawingColor;
  atextSurface.DrawStringWrapped(x, y, width, 1, 2, message);
  atextSurface.Release();
  this.DrawImage(0, 0, atextSprite.Graphic, 0);
  atextSprite.Delete();
  
  //END OUTLINE DRAW STRING WRAPPED AA
  
  outlineSurface.Release();
  // ... And copy it onto our canvas
  this.DrawImage(100, 100, outlineSprite.Graphic, 0);
  outlineSprite.Delete();
}


GlobalScript.ash:
Code: ags

import function outlinedMessage(this DrawingSurface*, int x, int y, int width, String message);


in room2.asc:
Code: ags

function room_AfterFadeIn()
{
  ...

  outlinedMessage(100, 100, 100, "checking this out");
}


But I get the error:
Failed to save room room2.crm; details below
room2.asc(5): Error (line 5): Undefined token 'outlinedMessage'

oulinedMessage() is at the top of GlobalScript.asc
The definition is at the top of the function definitions in GlobalScript.ash (after some #define's and enums)

...wtf has happened? It must be something incredibly obvious, but I can't see how room2 can't see GlobalScript.
#348
To be clear, I mean the black colour around the font (the Stroke, for any photoshop aficionados), that fits the front perfectly like tight fitting clothing, not the rounded square frame around the speech bubble. Does anyone know which functions constitute this in speechbubble?
#349
I'm hoping to do a MacOS port of my game, which is unfortunately designed in 3.5.0 in Windows.
Is MacOS a fairly up-to-date channel? Is it likely that 3.5.0 might be released for MacOS in the next 6mo?
#350
I have this:



It displays the current Description of a hotspot, object etc. at the top of the screen.
Then I learned about this:




Which allows custom borders for everything inside of it.
However - How do I make the 1st one the 2nd?

There is no option for adding a text label in the text window gui.
#351
I see, thanks :)
#352
This is a extremely dumb question, but I can't get my head around it.

1. Change compile targets to Windows (and DataFile)
2. Compile the MacOS engine on a Mac
3. Take datafile...to Mac??
4. ???
5. Your game runs in MacOS

Could someone explain 3+4 to me? If there is no editor for Mac, and there is no compile target, how is the game running on Mac?
#353
Cool, got it, changed and works.

I have a question for Snarky (or anyone if they know the answer).
SpeechBubble has a border of custom thickness and colour to text in the speech bubble. How do I do this elsewhere in the game?
I have an item description as a GUI with a label containig '@OVERHOTSPOT@', positioned at the top-centre of screen. How can I make this text with a 2px thickness black border, just as text in SpeechBubble?
#355
I've added this piece of code - it's supposed to transfer inventory items from cDummy to player (cJulius):

Code: ags

  //lose playerstartswith items from inventory - now it's totally empty
  cJulius.LoseInventory(iKnife);
  cJulius.LoseInventory(iRope);
  cJulius.LoseInventory(iNotepad);
  
  cDummy.AddInventory(iCarCoolant); //4
  cDummy.AddInventory(iCarPetrol);  //5
  cDummy.AddInventory(iFacePlate);  //6
  cDummy.AddInventory(iFuzzyDice);  //8
 
  cJulius.AddInventory(iFurstPrize);    //68

  //get all other inventory items
  for (int i = 1; i <= 10; i++) {
    player.InventoryQuantity[i] = cDummy.InventoryQuantity[i];

    //the below 2 lines report that items 4, 5, 6, and 8 are '1' for both
    Display("dummy %d inventory %d",i, cDummy.InventoryQuantity[i]);
    Display("julius %d inventory %d",i, player.InventoryQuantity[i]);

    //set dummy inventory quantity to 0 - delete this item from the inventory
    cDummy.InventoryQuantity[i] = 0;
  }


Then I have a look at the inventory - only iFurstPrize (68) is in there, not items 4, 5, 6, and 8.
Same thing happens if I put 'cJulius' instead of 'player'.

What's going on?

This is a modified version of the code used in the game, given to me by CrimsonWizard a while ago, to transfer items between 2 inventories.
#356
Increase the size of individual frames in a view. Resolutions are much bigger; frames are still 20px wide. Perhaps a slider for size?
It's possible to work with at the moment, though I have to scan through frames on preview->animate to see them properly, takes a bit of extra time.
#357
Also, I'd like to make a feature request (if I may be so bold, though probably not).
Increase the size of the frames in an animation (a View). At the moment, they're still 20px wide. Perhaps a slider for size?
If it's more complex to add than just an increased window element size (for example if it's hand-drawn and not a simple built-in component), save it or ignore, up to you. It's possible to work with at the moment, though I have to scan through frames on preview->animate to see them properly, takes a bit of extra time.
#358
QuoteSince AGS beta there's a new setting in General Settings which let you type real name of binary to use, regardless of the folder name.
Please check what is it set to. Also, please delete all old files from Compiled and try again.

Done and done. The other, older, pre-beta ones keep regenerating on compile. I've set the name to LoCI; these files work fine (LoCI.exe, LoCI.001 etc) and are the latest build, as it should be.
However, the LOCI_GAME_FILE.00x keep being regenerated, with an old modified date no less.
#359
Real bug possibly #2:
On compile, the compiler produces 2 sets of files, depending on whether you've set a game name as different to game directory.
I delete them every time, and each time I compile, they're recreated.

I used to have a directory called 'LOCI_GAME_FILES' (containing Game.agf), which would make LOCI_GAME_FILES.exe and LOCI_GAME_FILES.001 and .002 resource files.
I renamed the game and made it separate from the directory; My .exe etc is 'LoCI', though the directory it and Game.agf are in is still called LOCI_GAME_FILES.

Although the .exe name is correct (LoCI.exe) and not doubled, the segmented files (containing the game sprites etc. LoCI.001 and LoCI.002) are doubled.
The doubles are LOCI_GAME_FILES.001 and .002, edited when I was using pre 3.5.0 betas, and also date as such - 27/July; and the other two are the current LoCI sprite etc. files
They are both different sizes; LOCI_GAME_FILES.00# is smaller as sprites were compressed.



Is this a bug or a Window's thing?
#360
Another error or god knows; I get this quiet a lot, even if compile is fine, and I compile again with no errors:

'Unable to register for Windows Game Explorer: Unable to replace resource: EndUpdateResource for __GDF_XML failed: 0000006E'

I thought pre-win-2000 was deprecated, hence why Game Explorer?

No other processes seem to be interfering with game during compile eg. Spideroak
SMF spam blocked by CleanTalk