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

#601
@Volcan, sure, why not? As long as it's a background, nothing else matters.


EDIT: Just thought of a caveat. Probably the animated gif should not be more than 5 frames, as that is the limit AGS will let you have in an animated background. I may decide not to be super strict about that though, if we end up with very few entries.
#602
UPDATE: CONGRATS to this month's winner, @lorenzo!

We have 5 entries, below:

@Creamy : Museum
@Hannah_Banana : Mayan-style sacrifice
@newwaveburritos : The bar
@lorenzo : Church
@Volcan : Artifact

Please pick your favorite in each of the following categories:

Concept: What is the background about? What sort of mood does it spark? What is, as it were, the big idea?
Playability: What is its opportunity for gameplay like? Walkable areas, hot-spots, dialogues, and so forth?
Artistic Execution: How well does the picture convey an atmosphere? How well is it executed?


-------------------------------------------------------------------
I thought of an idea quickly, so here we go -- RITUAL / CEREMONY. Trying to keep it vague in hopes of more entries.

It could be religious, magical, creepy, sentimental, celebratory, heroic. Anything goes.

Background can be a place where these things happen, a view of it happening, a set of items to be used in it -- whatever you like.


#603
Thanks, @newwaveburritos -- I'm definitely happy to have gotten a good background to play with as a result of the theme. I'll think on it and post a new theme today or tomorrow.
#604
Thought I'd post another update since I've been spending all of my free time on this project and am now well past the halfway point (percentages updated above).

I just finished coding and testing the second-to-last playable room. It feels like each new room has gone exponentially more quickly than the last--I've finally gotten the hang of using the AGS programming language.

Greatest achievement so far is probably that I was able to jury-rig a very crude faux-3d-movement (composed entirely of 2d sprites moving around) for a room on the roof of the train. I spent many hours figuring out how to make it run right, and am a much better programmer for having figured it out.

Here's a screenshot:



And a link to a video clip below if you want to see it in motion.

https://i.imgur.com/DDwROfe.mp4

If I can continue at the pace I've been going, I expect the game to be ready for play-testing in the next couple of months (fingers VERY crossed, knock on wood, life events permitting, et cetera).

 :)



#605
@vertigoaddict Love the art style of your map! I would definitely play such a demo.
#606
Looks like two entries is it! I added the poll above, so vote for your favorite. Thanks for entering, both of you!
#607
One week left until voting! Any more entries, please ideally get them in by the 18th--but also, if you're working on something and need an extension, let me know. Thanks very much!
#609
@Creamy Wonderful! I like the nice clean line work. Thanks for the entry and for making this a legit competition now!
#610
Finished! Put a lot more work into it than I originally intended. Very happy with the result though... enough that I now want to make a game to use it. Thanks for the prompt! This was a great exercise in creating something I wouldn't otherwise have made, and I tried using different art techniques than I have in the past, so it was a fun and useful process. Hope you enjoy.

#611
Two weeks to go! Would love to see more entries if anyone has them.
#612
I'm working on something. Uncertain whether I'll have time to polish it, but I'll at least have a rough version.
#613
@ZapZap that's great! I like how much texture you've achieved with so few colors, and the shapes and poses of the birds make it very realistic. Nice entry.
#614
UPDATE: VOTING CLOSED. WINNER BELOW.
-----------------------------------

Hey all - my first time hosting Sprite Jam. This should be fun!

This time the theme is BIRDS - it could be a character, an enemy, a part of a setting's mythos, a detail of an animated background, a logo for a secret organization - think as far inside or outside the box as you like.

Contributions open until FEBRUARY 18TH, followed by a week of voting.

Looking forward to seeing all of your entries!

#615
Oh wow, thanks everyone! This made my day.  :-D

I'll post a new challenge ASAP.

Great job to everyone who entered!
#616
Hey Khris, I didn't see this before now. Thanks for the simplified code! It's great to have more experienced people to help make me a better coder. Much appreciated.
#617
Hi Snarky,

Thanks so much for your response! I changed the general settings as you suggested which fixed the blinking issue. Much appreciated.

Changing the ZOrder on the floating label unfortunately did nothing, but I managed to fix it somehow by moving the code block from rep_exec to rep_exec_always. I have no idea what was blocking it before, but I'm not complaining.

Also, thanks for your code to simplify the timer -- it seems so simple reading it, but my brain goes to needlessly complicated logic before it goes to simple math.   :)    Also I didn't know about the automatic 0-padding which is awesome.

Thanks again for your help! You and the others who've helped me out here will get a mention in the acknowledgements for sure.


#618
Hey all. Wish I weren't posting for help again so soon after the last time, but here we are. :(

I have been testing out small blocks of code in a mostly empty default template game, and those block work perfectly there. Unfortunately, when I write the same code in my actual game, they don't work anymore.

Here are the issues, which I theorize are related because they both have to do with the custom inventory GUI:

1. I have a speech-based countdown timer running. In the test game it works perfectly. In my real game it causes the inventory GUI to flicker once per second as the timer counts down. I know it's the timer that causes it because when I remove the timer block, the blinking stops. There's no such behavior in the test game, however.

2. There's also a hovering text label that follows the cursor and gives the name of whatever inventory item is under the cursor. It runs perfectly in the test game. In the real game the hover text does not show up at all (the label is marked enabled, visible, and clickable in settings).


I have scanned the code multiple times trying to figure out what the discrepancy is. The settings for the inventory and hovertext GUIs are identical. The code itself, other than character names (cTimer vs. cRoger), inventory item names (iKey vs. iTest1) and GUI label numbers (Label1 vs. Label11), is also nearly identical. The timer is nested within an if statement in the real game (if dying == true), but removing that made no difference.

I then commented out every piece of the room script until I was left with only the relevant code, which still looks identical.

I am well and truly stumped. :(

I honesty can't find where the two rooms are significantly diverging, or what could be causing these issues. Many thanks and a place in the game credits for anyone who can help me solve this.

This is the room script where everything works perfectly:

Code: ags

// room script file

int min;
int sec;
String TimerText;
bool timeout;

function room_load()
{
  min = 2; //set number of minutes before timeout
  sec = 15; // set number of seconds before end of current minute
  timeout = false; //timer has not run out yet
    
  SetGameSpeed(40); // game loops per second
  
  SetTimer(1, 600);  // set minutes timer (seconds * 40) and whether initial minute expires in less than 59 seconds
  SetTimer(2, 40);  // set seconds timer
  
  cRoger.y = 100;
  
  cRoger.AddInventory(iCup);
  InvItemTotal ++;
  cRoger.AddInventory(iKey);
  InvItemTotal++;
}

function repeatedly_execute_always()
{
if (IsTimerExpired(1))                              //check minutes timer
  {
  min -=1;   // decrease counter by 1 minute
  SetTimer(1,  2360); //reset timer for another minute
  
    if (min == -1) // keep minutes from going below 0
    {
    min = 0;
    }
  }
  
  if (IsTimerExpired(2))   // check seconds timer
  {
    sec -=1;
    
    if (sec >=10)
    {
      TimerText = String.Format("%d:%d", min,  sec); // countdown from 60 to 10
      cRoger.SayBackground(TimerText);
      SetTimer(2,  40); //trigger next code block
    }
    else if (sec <10 && sec >-1)
    {
      TimerText = String.Format("%d:0%d", min,  sec);   // count from 9 to 0 and switch format from "9" to "09" etc.
      cRoger.SayBackground(TimerText);
      SetTimer(2,  40);
      if (sec == 0 && min == 0 && timeout == false)
      {
        sec +=1; // cancel out seconds countdown
        timeout = true; // time has run out
        SetTimer(3,  180); // how long to display final second of timer (0:00)
      }
      if (sec == 0 && min == 0 && timeout == true && IsTimerExpired(3) == false)
      {
        sec +=1;
      }
      
    }
    if (sec == -1 && timeout == false)
    {
    sec = 59;  // reset to keep seconds from counting into negative numbers and change format back to 2 digits
    TimerText = String.Format("%d:%d", min,  sec);
    cRoger.SayBackground(TimerText);
    SetTimer(2, 40);
    }
  }
  
}
function room_AfterFadeIn()
{

}

function oHandbag_AnyClick()
{
  if (gInventory.Visible == false)
    {
        gInventory.Visible = true;
        gInventory.Y = oHandbag.Y;
        gInventory.X = (oHandbag.X -1) - (InvItemTotal * 26);
    }
  else if (gInventory.Visible == true) 
      {
        gInventory.Visible = false ;
      }
}

function room_RepExec()
{
  InventoryItem *InvUnderMouse;
  InvUnderMouse = InventoryItem.GetAtScreenXY(mouse.x, mouse.y);

  if (InventoryItem.GetAtScreenXY(mouse.x, mouse.y) == null)
  {
    gInvLabel.Visible = false;
  }
  else
  {
    gInvLabel.Visible = true;
    gInvLabel.X = mouse.x;
    gInvLabel.Y = mouse.y - 20;
    Label1.Text = InvUnderMouse.Name;
  }
}



And this is the code from the room with problems:

Code: ags

// room script file
int min;
int sec;
String TimerText;
bool timeout;

function room_Load()
{
  Mouse.Mode = eModePointer;
  
  min = 1; //set number of minutes before timeout
  sec = 31; // set number of seconds before end of current minute
  timeout = false; //timer has not run out yet
    
  SetTimer(1, 1300);  // set minutes timer (seconds * 40) and whether initial minute expires in less than 59 seconds
  SetTimer(2, 40);  // set seconds timer
  
  cRoomController.AddInventory(iTest1);
  cRoomController.AddInventory(iTest2);
  cRoomController.AddInventory(iTest3);
  InvItemTotal +=3;
}

function repeatedly_execute_always()
{
 
  
    if (IsTimerExpired(1))                              //check minutes timer
    {
      min -=1;   // decrease counter by 1 minute
      SetTimer(1,  2360); //reset timer for another minute
  
      if (min == -1) // keep minutes from going below 0
      {
      min = 0;
      }
    }
  
    if (IsTimerExpired(2))   // check seconds timer
    {
      sec -=1;
    
      if (sec >=10)
      {
      TimerText = String.Format("%d:%d", min,  sec); // countdown from 60 to 10
      cTimer.SayBackground(TimerText);
      SetTimer(2,  40);
      }
      else if (sec <10 && sec >-1)
      {
        TimerText = String.Format("%d:0%d", min,  sec);   // count from 9 to 0 and switch format from "9" to "09" etc.
        cTimer.SayBackground(TimerText);
        SetTimer(2,  40);
      
        if (sec == 0 && min == 0 && timeout == false)
        {
          sec +=1; // cancel out seconds countdown
          timeout = true; // time has run out
          SetTimer(3,  180); // how long to display final second of timer (0:00)
          DisplayAtY(10, "Crap, what is... Feels like I'm falling.");
        }
        if (sec == 0 && min == 0 && timeout == true && IsTimerExpired(3) == false)
        {
        s  ec +=1;
        }
      
      }
      if (sec == -1 && timeout == false)
        {
        sec = 59;  // reset to keep seconds from counting into negative numbers 
        TimerText = String.Format("%d:%d", min,  sec);  //change format back to 2 digits
        cTimer.SayBackground(TimerText);
        SetTimer(2, 40);
        }
   
    }
  
}




function oHandbag_AnyClick()
{
  if (gInventory.Visible == false)
  {
    gInventory.Visible = true;
    gInventory.Y = oHandbag.Y;
    gInventory.X = (oHandbag.X -1) - (InvItemTotal * 28);
  }
  else if (gInventory.Visible == true) 
    {
      gInventory.Visible = false ;
    }
}

function room_RepExec()
{
  InventoryItem *InvUnderMouse;
  InvUnderMouse = InventoryItem.GetAtScreenXY(mouse.x, mouse.y);

  if (InventoryItem.GetAtScreenXY(mouse.x, mouse.y) == null)
  {
    gInvLabel.Visible = false;
  }
  else
  {
    gInvLabel.Visible = true;
    gInvLabel.X = mouse.x;
    gInvLabel.Y = mouse.y - 20;
    Label11.Text = InvUnderMouse.Name;
  }
}
  



What am I missing?  ???
#619
AGS Games in Production / Re: TUNNEL VISION
Tue 17/01/2023 18:10:44
ANOTHER UPDATE:

I've finished animating the opening cutscene! It was a ton of work, but very fulfilling to see it play through.

Here's a tiny piece of it (it's not embedding, so here's a link):

https://i.imgur.com/7joyiPw.mp4

It's nice to feel like I'm making progress.  :)

#620
Looks amazing. I love the premise, art, and atmosphere!
SMF spam blocked by CleanTalk